Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Peter Zijlstra <a.p.zijlstra <at> chello.nl>
Subject: [PATCH 00/25] mm: Preemptibility -v7
Newsgroups: gmane.linux.kernel
Date: Tuesday 25th January 2011 17:31:11 UTC (over 5 years ago)
This patch-set makes part of the mm a lot more preemptible. It converts
i_mmap_lock and anon_vma->lock to mutexes and makes mmu_gather fully
preemptible.

The main motivation was making mm_take_all_locks() preemptible, since it
appears people are nesting hundreds of spinlocks there.

The side-effects are that can finally make mmu_gather preemptible,
something which lots of people have wanted to do for a long time.

It also gets us anon_vma refcounting, which seems to result in a nice
cleanup of the anon_vma lifetime rules wrt KSM and compaction.

This patch-set is build and boot-tested on x86_64 (a previous version was
also tested on Dave's Niagra2 machines, and I suppose s390 was too when
Martin provided the conversion patch for his arch).

There are no known architectures left unconverted.

Yanmin ran the -v3 posting through the comprehensive Intel test farm
and didn't find any regressions.

( Not included in this posting are the 4 Sparc64 patches that implement
  gup_fast, those can be applied separately after this series gets
  anywhere. )

The full series (including the Sparc64 gup_fast bits) also available in
-git
form from (against something post .38-rc2):

  git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-mmu_preempt.git


Changes since -v6:

Suggested by Hugh:
 - reordered the patches
 - changed to GFP_NOWAIT | __GFP_NOWARN to allocate mmu_gather pages
 - s/lock/mutex/ for the spinlock to mutex conversion
 - removed all DEFINE_PER_CPU(struct mmu_gather, mmu_gather) remnants
 - split the i_mmap_lock and anon_vma->lock conversion
 - removed some KSM wrappers
 - avoid tlb_flush_mmu() while holding pte_lock

Other:
 - remove the i_mmap_lock lockbreak in truncate (XXX)
 - arch/tile __pte_free_tlb() change

TODO:
 - decide if we want to actually remove the i_mmap_lock lockbreak
 - figure out if LOCK vs MB works or add a smp_mb() to patch #23
 - figure out what to do with sparc's tlb_batch lack of ->fullmm


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email:  email@kvack.org 
 
CD: 3ms