[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [Patch] lower the frequency of HPET device model to 1/32 of TSC's


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Cui, Dexuan" <dexuan.cui@xxxxxxxxx>
  • Date: Mon, 19 Mar 2007 18:57:26 +0800
  • Cc: Keir Fraser <keir@xxxxxxxxxxxxx>
  • Delivery-date: Mon, 19 Mar 2007 03:56:35 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcbhNpSgnLlsyleeR3aZurd/xO5mYAAmjw1QAHpYsZANUy+bAAbmp7kgDVsWwlA=
  • Thread-topic: [Patch] lower the frequency of HPET device model to 1/32 of TSC's

The frequency of HPET device model is defined to be the same as TSC's,
but unluckily this doesn't work well with calibrate_tsc_hpet() in Linux
kernel 2.6.16-33, causing some IA32 Linux HVM guests can't boot
sometimes.

Calibrate_tsc_hpet() tries figuring out how many HPET ticks a TSC cycle
equals; it magnifies the result by scale of 2^32, trying to get a more
accurate result since it assumes the frequency of HPET in real world is
usually less than 1/100 of TSC, so the result of "(2^32 * hpet_freq) /
tsc_freq" may exceed 32bits, then a "divide error (overflow)" would
occur!

The result doesn't overflow every time because hpet_freq/tsc_freq may
less than 1.0 due to the little inaccuracy in the implementation of HVM
timer virtualization.

The patch lowers the frequency of HPET device mode to 1/32 of TSC's to
fix the issue.

 -- Dexuan

Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>

Attachment: lower_the_freq_of_hpet.diff
Description: lower_the_freq_of_hpet.diff

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.