[lkml]   [2011]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] fix pgd_lock deadlock
    >>> On 24.02.11 at 05:22, Andrea Arcangeli <> wrote:
    > On Tue, Feb 22, 2011 at 02:22:53PM +0000, Jan Beulich wrote:
    >> >>> On 22.02.11 at 14:49, Andrea Arcangeli <> wrote:
    >> > On Tue, Feb 22, 2011 at 07:48:54AM +0000, Jan Beulich wrote:
    >> >> A possible alternative would be to acquire the page table lock
    >> >> in vmalloc_sync_all() only in the Xen case (perhaps by storing
    >> >> NULL into page->index in pgd_set_mm() when not running on
    >> >> Xen). This is utilizing the fact that there aren't (supposed to
    >> >> be - for non-pvops this is definitely the case) any TLB flush IPIs
    >> >> under Xen, and hence the race you're trying to fix doesn't
    >> >> exist there (while non-Xen doesn't need the extra locking).
    >> >
    >> > That's sure ok with me. Can we use a global runtime to check if the
    >> > guest is running under Xen paravirt, instead of passing that info
    >> > through page->something?
    >> If everyone's okay with putting a couple of "if (xen_pv_domain())"
    >> into mm/fault.c - sure. I would have thought that this wouldn't be
    >> liked, hence the suggestion to make this depend on seeing the
    >> backlink be non-NULL.
    > What about this? The page->private logic gets optimized away at
    > compile time with XEN=n.
    > The removal of _irqsave from pgd_lock, I'll delay it as it's no bugfix
    > anymore.
    > ===
    > Subject: xen: stop taking the page_table_lock with irq disabled
    > From: Andrea Arcangeli <>
    > It's forbidden to take the page_table_lock with the irq disabled or if there's
    > contention the IPIs (for tlb flushes) sent with the page_table_lock held will
    > never run leading to a deadlock.
    > Only Xen needs the page_table_lock and Xen won't need IPI TLB flushes hence
    > the deadlock doesn't exist for Xen.

    Looks reasonable to me, except for the implementation no longer
    matching subject and description (the lock still gets taken with
    IRQs disabled, just that - as far as we can tell so far - doesn't
    matter for Xen).

    With the conditional on the reader side I also wonder whether
    the conditional on the writer side is really a good thing to have,
    considering that generally distro kernels are likely to have XEN


     \ /
      Last update: 2011-02-24 09:25    [W:0.021 / U:2.636 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site