On 06/18/2012 06:55 AM, Ben Hutchings wrote: > On Sun, 2012-06-17 at 19:34 +0200, Richard Cochran wrote: >> On Sun, Jun 17, 2012 at 11:47:51AM -0500, Jonathan Nieder wrote: >>> Ben Hutchings wrote: >>> >>> 6b43ae8a619d (ntp: Fix leap-second hrtimer livelock) sounds important, >>> but the patch depends on bd3312681f69 (ntp: Add ntp_lock to replace >>> xtime_locking) which does not have a commit message explaining its >>> purpose (and that patch in turn depends on ea7cf49a7633). > If I understand the commit message for 6b43ae8a619d correctly, the > livelock results from ntp_lock and xtime_lock being acquired in opposite > orders in two threads. Which means it wasn't possible before ntp_lock > was introduced in bd3312681f69. Yes, I think Ben is right that before the ntp_lock split the potential deadlock couldn't happen. >>> John, is that bug present in 3.2.y and 3.0.y, too? Any hints for >>> fixing it? >> It looks like incrementing the TAI offset was wrong even before >> >> 6b43ae8a ntp: Fix leap-second hrtimer livelock v3.4-rc1~44^2~9 >> >> The offset should change upon entering state OOP, so something like >> the following (untested) patch should fix it for 3.2.9. > [...] > > It looks like this patch just changes the offset reported by adjtimex() > during an inserted second; is that right? Yep. It just makes sure the TAI offset is adjusted at the same point that the leapsecond is inserted (as opposed to a second late). > > Other than that, is 3.2.y likely to be OK? Is there a good way to test > that in advance; does > look > reasonable? Attached is a simple leap second test you can play with. thanks -john