[lkml]   [2008]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: [PATCH 01 of 12] Core of mmu notifiers
    On Sat, Apr 26, 2008 at 08:17:34AM -0500, Robin Holt wrote:
    > the first four sets. The fifth is the oversubscription test which trips
    > my xpmem bug. This is as good as the v12 runs from before.

    Now that mmu-notifier-core #v14 seems finished and hopefully will
    appear in 2.6.26 ;), I started exercising more the kvm-mmu-notifier
    code with the full patchset applied and not only with
    mmu-notifier-core. I soon found the full patchset has a swap deadlock
    bug. Then I tried without using kvm (so with mmu notifier disarmed)
    and I could still reproduce the crashes. After grabbing a few stack
    traces I tracked it down to a bug in the i_mmap_lock->i_mmap_sem
    conversion. If you oversubscription means swapping, you should retest
    with this applied on #v14 i_mmap_sem patch as it would eventually
    deadlock with all tasks allocating memory in D state without this. Now
    the full patchset is as rock solid as with only mmu-notifier-core
    applied. It's swapping 2G memhog on top of a 3G VM with 2G of ram for
    the last hours without a problem. Everything is working great with KVM
    at least.

    Talking about post 2.6.26: the refcount with rcu in the anon-vma
    conversion seems unnecessary and may explain part of the AIM slowdown
    too. The rest looks ok and probably we should switch the code to a
    compile-time decision between rwlock and rwsem (so obsoleting the
    current spinlock).

    diff --git a/mm/rmap.c b/mm/rmap.c
    --- a/mm/rmap.c
    +++ b/mm/rmap.c
    @@ -1008,7 +1008,7 @@ static int try_to_unmap_file(struct page
    list_for_each_entry(vma, &mapping->i_mmap_nonlinear, shared.vm_set.list)
    vma->vm_private_data = NULL;
    - up_write(&mapping->i_mmap_sem);
    + up_read(&mapping->i_mmap_sem);
    return ret;

     \ /
      Last update: 2008-04-27 14:29    [W:0.020 / U:57.580 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site