Re: [PATCH 01 of 12] Core of mmu notifiers

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrea Arcangeli
Date: Sunday, April 27, 2008 - 5:27 am

On Sat, Apr 26, 2008 at 08:17:34AM -0500, Robin Holt wrote:

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;
 out:
-	up_write(&mapping->i_mmap_sem);
+	up_read(&mapping->i_mmap_sem);
 	return ret;
 }
 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00 of 12] mmu notifier #v13, Andrea Arcangeli, (Tue Apr 22, 6:51 am)
[PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 22, 6:51 am)
[PATCH 07 of 12] Add a function to rw_semaphores to check ..., Andrea Arcangeli, (Tue Apr 22, 6:51 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Eric Dumazet, (Tue Apr 22, 7:56 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 22, 8:15 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Avi Kivity, (Tue Apr 22, 8:24 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Eric Dumazet, (Tue Apr 22, 8:37 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 22, 9:46 am)
Re: [PATCH 00 of 12] mmu notifier #v13, Robin Holt, (Tue Apr 22, 11:22 am)
Re: [PATCH 00 of 12] mmu notifier #v13, Andrea Arcangeli, (Tue Apr 22, 11:43 am)
Re: [PATCH 00 of 12] mmu notifier #v13, Robin Holt, (Tue Apr 22, 12:42 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Tue Apr 22, 1:19 pm)
Re: [PATCH 02 of 12] Fix ia64 compilation failure because ..., Christoph Lameter, (Tue Apr 22, 1:22 pm)
Re: [PATCH 03 of 12] get_task_mm should not succeed if mmp ..., Christoph Lameter, (Tue Apr 22, 1:23 pm)
Re: [PATCH 04 of 12] Moves all mmu notifier methods outsid ..., Christoph Lameter, (Tue Apr 22, 1:24 pm)
Re: [PATCH 05 of 12] Move the tlb flushing into free_pgtab ..., Christoph Lameter, (Tue Apr 22, 1:25 pm)
Re: [PATCH 10 of 12] Convert mm_lock to use semaphores aft ..., Christoph Lameter, (Tue Apr 22, 1:26 pm)
Re: [PATCH 00 of 12] mmu notifier #v13, Christoph Lameter, (Tue Apr 22, 1:28 pm)
Re: [PATCH 00 of 12] mmu notifier #v13, Christoph Lameter, (Tue Apr 22, 1:30 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Tue Apr 22, 1:31 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 22, 3:35 pm)
Re: [PATCH 02 of 12] Fix ia64 compilation failure because ..., Andrea Arcangeli, (Tue Apr 22, 3:43 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Tue Apr 22, 4:07 pm)
Re: [PATCH 03 of 12] get_task_mm should not succeed if mmp ..., Christoph Lameter, (Tue Apr 22, 4:13 pm)
Re: [PATCH 04 of 12] Moves all mmu notifier methods outsid ..., Christoph Lameter, (Tue Apr 22, 4:14 pm)
Re: [PATCH 10 of 12] Convert mm_lock to use semaphores aft ..., Christoph Lameter, (Tue Apr 22, 4:19 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Tue Apr 22, 4:20 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Jack Steiner, (Tue Apr 22, 5:28 pm)
Re: [PATCH 00 of 12] mmu notifier #v13, Jack Steiner, (Tue Apr 22, 5:31 pm)
Re: [PATCH 00 of 12] mmu notifier #v13, Andrea Arcangeli, (Wed Apr 23, 6:33 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 6:36 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Wed Apr 23, 7:47 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 8:59 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 9:26 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 9:37 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Jack Steiner, (Wed Apr 23, 10:09 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 10:24 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 10:45 am)
Re: [PATCH 04 of 12] Moves all mmu notifier methods outsid ..., Christoph Lameter, (Wed Apr 23, 11:02 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:09 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:15 am)
Re: [PATCH 04 of 12] Moves all mmu notifier methods outsid ..., Andrea Arcangeli, (Wed Apr 23, 11:16 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:19 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 11:19 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:21 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 11:25 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:27 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 11:34 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 11:37 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Wed Apr 23, 11:46 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 3:19 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed Apr 23, 11:49 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Thu Apr 24, 2:51 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Thu Apr 24, 8:39 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Thu Apr 24, 10:41 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Sat Apr 26, 6:17 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Sat Apr 26, 7:04 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Sun Apr 27, 5:27 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Mon Apr 28, 1:34 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Mon Apr 28, 5:10 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Christoph Lameter, (Mon Apr 28, 6:28 pm)
Re: [PATCH 01 of 12] Core of mmu notifiers, Hugh Dickins, (Tue Apr 29, 3:49 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 29, 6:32 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 29, 8:30 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Robin Holt, (Tue Apr 29, 8:50 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Tue Apr 29, 9:03 am)
Re: [PATCH 01 of 12] Core of mmu notifiers, Andrea Arcangeli, (Wed May 7, 8:00 am)