From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <52A9E5B2.8040702@oracle.com> Date: Thu, 12 Dec 2013 11:34:58 -0500 From: Sasha Levin MIME-Version: 1.0 To: John Stultz , LKML CC: Thomas Gleixner , Prarit Bhargava , Richard Cochran , Ingo Molnar , stable Subject: Re: [RFC][PATCH 3/5] timekeeping: Avoid possible deadlock from clock_was_set_delayed References: <1386789098-17391-1-git-send-email-john.stultz@linaro.org> <1386789098-17391-4-git-send-email-john.stultz@linaro.org> In-Reply-To: <1386789098-17391-4-git-send-email-john.stultz@linaro.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On 12/11/2013 02:11 PM, John Stultz wrote: > As part of normal operaions, the hrtimer subsystem frequently calls > into the timekeeping code, creating a locking order of > hrtimer locks -> timekeeping locks > > clock_was_set_delayed() was suppoed to allow us to avoid deadlocks > between the timekeeping the hrtimer subsystem, so that we could > notify the hrtimer subsytem the time had changed while holding > the timekeeping locks. This was done by scheduling delayed work > that would run later once we were out of the timekeeing code. > > But unfortunately the lock chains are complex enoguh that in > scheduling delayed work, we end up eventually trying to grab > an hrtimer lock. > > Sasha Levin noticed this in testing when the new seqlock lockdep > enablement triggered the following (somewhat abrieviated) message: [snip] This seems to work for me, I don't see the lockdep spew anymore. Tested-by: Sasha Levin Thanks, Sasha