Skip to content

mm: preemptibility -v2

Peter Zijlstra linux-arch lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest13 patches 82 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13powerpc: Add rcu_read_lock() to gup_fast() implementationarch/powerpc/mm/gup.c+3 -026 replies
2/13mm: Revalidate anon_vma in page_lock_anon_vma()mm/rmap.c+7 -020 replies
3/13x86: Remove last traces of quicklist usagearch/x86/mm/pgtable_32.c+0 -11 reply
4/13mm: Move anon_vma ref out from under CONFIG_KSMinclude/linux/rmap.h mm/ksm.c mm/rmap.c+5 -271 reply
5/13mm: Make use of the anon_vma ref countinclude/linux/rmap.h mm/ksm.c mm/migrate.c +1 more+44 -342 replies
6/13mm: Preemptible mmu_gatherfs/exec.c include/asm-generic/tlb.h include/linux/mm.h +2 more+53 -534 replies
7/13powerpc: Preemptible mmu_gatherarch/powerpc/include/asm/pgalloc.h arch/powerpc/include/asm/thread_info.h arch/powerpc/include/asm/tlb.h +6 more+76 -2410 replies
8/13sparc: Preemptible mmu_gatherarch/sparc/include/asm/pgalloc_64.h arch/sparc/include/asm/tlb_64.h arch/sparc/include/asm/tlbflush_64.h +2 more+51 -1120 replies
9/13mm, powerpc: Move the RCU page-table freeing into generic codearch/powerpc/include/asm/pgalloc.h arch/powerpc/include/asm/tlb.h arch/powerpc/mm/pgtable.c +5 more+153 -1462 replies
10/13lockdep, mutex: Provide mutex_lock_nest_lockinclude/linux/lockdep.h include/linux/mutex.h kernel/mutex.c+29 -81 reply
11/13mutex: Provide mutex_is_contendedinclude/linux/mutex.h+5 -01 reply
12/13mm: Convert i_mmap_lock and anon_vma->lock to mutexesarch/x86/mm/hugetlbpage.c fs/hugetlbfs/inode.c fs/inode.c +13 more+74 -740 replies
13/13mm: Optimize page_lock_anon_vmamm/rmap.c+67 -43 replies

Reviews trailers per patch

6 of 13 patches have a Reviewed-by or Acked-by.

PatchPaul E. McKenneyDavid MillerRik van Riel
1/13Requested-by R-b
2/13R-b
3/13R-b
4/13R-b
5/13
6/13
7/13
8/13
9/13Requested-by
10/13R-b
11/13R-b
12/13
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v1 thread

Cover letter [PATCH 00/13] mm: preemptibility -v2

Hi,

This (still incomplete) patch-set makes part of the mm a lot more preemptible. It converts i_mmap_lock and anon_vma->lock to mutexes. On the way there it also makes mmu_gather 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 we 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 be wanted by KSM as well as Mel's compaction work.

This patch-set seems to build and boot on my x86_64 machines and even builds a kernel. I've also attempted powerpc and sparc, which I've compile tested with their respective defconfigs, remaining are (afaikt the rest uses the generic tlb bits):

- s390
- ia64
- arm
- superh
- um

From those, s390 and ia64 look 'interesting', arm and superh seem very similar and should be relatively easy (-rt has a patchlet for arm iirc).

What kind of performance tests would people have me run on this to satisfy their need for numbers? I've done a kernel build on x86_64 and if anything that was slightly faster with these patches, but it was well within the noise levels so it might be heat noise I'm looking at ;-)