Messages in this thread | | | Date | Mon, 10 Oct 2011 08:45:36 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH v2] x86: Don't recursively acquire rtc_lock |
| |
* Matt Fleming <matt@console-pimps.org> wrote:
> On Tue, 2011-08-30 at 17:17 +0100, Matt Fleming wrote: > > (Adding Jan and Avi, apparently git send-email doesn't grok Acked-by's) > > > > On Tue, 2011-08-30 at 17:12 +0100, Matt Fleming wrote: > > > From: Matt Fleming <matt.fleming@intel.com> > > > > > > A deadlock was introduced on x86 in commit ef68c8f87ed1 ("x86: > > > Serialize EFI time accesses on rtc_lock") because efi_get_time() and > > > friends can be called with rtc_lock already held by > > > read_persistent_time(), e.g. > > > > > > timekeeping_init() > > > read_persistent_clock() <-- acquire rtc_lock > > > efi_get_time() > > > phys_efi_get_time() <-- acquire rtc_lock <DEADLOCK> > > > > > > To fix this let's push the locking down into the get_wallclock() and > > > set_wallclock() implementations. Only the clock implementations that > > > access the x86 RTC directly need to acquire rtc_lock, so it makes > > > sense to push the locking down into the rtc, vrtc and efi code. > > > > > > The virtualization implementations don't require rtc_lock to be held > > > because they provide their own serialization. > > > > > > Signed-off-by: Matt Fleming <matt.fleming@intel.com> > > > Acked-by: Jan Beulich <jbeulich@novell.com> > > > Acked-by: Avi Kivity <avi@redhat.com> [for the virtualization aspect] > > Ping? It's -rc8 and 32-bit EFI machines still don't boot.
Don't know the status of this - Thomas?
Thanks,
Ingo
| |