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

Re: [Xen-devel] [PATCH] sparse: makes dom0 boot on SMP

On 13 Oct 2005, at 00:13, Ryan Grimm wrote:

i assume the original motivation of changing NS_PER_TICK to a 64-bit value was for the jiffies_to_st function, since it includes a multiply, delta * NS_PER_TICK.

The only other function NS_PER_TICK seems to appear in is timer_interrupt(). i do not know why the original change from signed to unsigned would cause dom0 to fail on my smp machines. perhaps someone with more knowledge of time.c can shed some light?

Yes, that change is definitely broken. It can cause the kernel to spin in the following loops if delta is ever -ve (because s64 gets promoted to u64 by std C rules, -ve becomes *big* +ve):
  while ( delta > NS_PER_TICK )

I'll change it back -- the main thing was to make 'delta' a 64-bit quantity in jiffies_to_st(), which is independent of whether NS_PER_TICK is signed or not.

 -- Keir

Xen-devel mailing list



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