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

Reply via email to