Hi, On Thu, Jun 12, 2025 at 09:54:22PM +0800, Zhaoming Luo wrote: > On Wed, Jun 11, 2025 at 09:07:10PM +0200, Michael Banck wrote: > > On Mon, Mar 24, 2025 at 12:25:51PM +0800, Zhaoming Luo wrote: > > > Integrate HPET so host_get_time, host_get_time64, and host_get_uptime64 > > > are more precise. The highest precision can be 10ns when this patch is > > > applied. > > > > Is there something else besides this patch that needs to be > > done/patched/configured to get higher resolution timers? > > > > I am running the current gnumach Debian package which (to the best of my > > knowledge) includes this patch, but clock_getres() still reports > > 10000000 ns timer resolution and applications like PostgreSQL that rely > > on timing still have 10ms resolution. > > > The current higher resolution depends on HPET, and the HPET will be > enabled when APIC is enabled[0]. Therefore, please try to compile a > gnumach kernel with --enable-apic in the ./configure stage.
Alright, I tried that (rebuilding the current Debian unstable gnumach package), but (at least on i486) it hangs early on boot in KVM: |Loading GNU Mach ... |Loading the Hurd ... |ow:13148 high:21913 |vm_page: HIGHMEM: pages: 301024 (1175M), free: 0 (0M) |vm_page: HIGHMEM: min:15051 low:18061 high:30102 |ACPI v1.0 |HPET at physical address 0xfed00000 |ACPI: | rsdp = 0x47ffe1ac6 | rsdt/xsdt = 0xf8e90ac6 (n = 4) |8 bit APIC ids |APIC entry=0xf8e92a1a end=0xf8e92a66 |APIC entry=0xf8e92a1a end=0xf8e92a66 |APIC entry=0xf8e92a22 end=0xf8e92a66 |APIC entry=0xf8e92a2e end=0xf8e92a66 |APIC entry=0xf8e92a38 end=0xf8e92a66 |APIC entry=0xf8e92a42 end=0xf8e92a66 |APIC entry=0xf8e92a4c end=0xf8e92a66 |APIC entry=0xf8e92a56 end=0xf8e92a66 |APIC entry=0xf8e92a60 end=0xf8e92a66 |Unhandled APIC entry type 0x4 |CPUS: | CPU 0 - APIC ID 0 - addr=0xf8e96000 |IOAPICS: | IOAPIC 0 - APIC ID 0 - addr=0xf8e97000 |IOAPIC version 0x11 |IRQ override: pin=0 gsi=2 trigger=EDGE polarity=HIGH |IRQ override: pin=5 gsi=5 trigger=LEVEL polarity=HIGH |IRQ override: pin=9 gsi=9 trigger=LEVEL polarity=HIGH |IRQ override: pin=10 gsi=10 trigger=LEVEL polarity=HIGH |IRQ override: pin=11 gsi=11 trigger=LEVEL polarity=HIGH |IOAPIC 0 configured with GSI 0-23 Michael