Glauber Costa
6ccfb5bcf5
slab: annotate on-slab caches nodelist locks
...
We currently provide lockdep annotation for kmalloc caches, and also
caches that have SLAB_DEBUG_OBJECTS enabled. The reason for this is that
we can quite frequently nest in the l3->list_lock lock, which is not
something trivial to avoid.
My proposal with this patch, is to extend this to caches whose slab
management object lives within the slab as well ("on_slab"). The need for
this arose in the context of testing kmemcg-slab patches. With such
patchset, we can have per-memcg kmalloc caches. So the same path that led
to nesting between kmalloc caches will could then lead to in-memcg
nesting. Because they are not annotated, lockdep will trigger.
Signed-off-by: Glauber Costa <glommer@parallels.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Frederic Weisbecker <fweisbec@redhat.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: JoonSoo Kim <js1304@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Rik van Riel <riel@redhat.com>
Cc: Suleiman Souhlal <suleiman@google.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-12-18 15:02:13 -08:00
..
backing-dev.c
Revert "bdi: add a user-tunable cpu_list for the bdi flusher threads"
2012-12-17 11:29:09 -08:00
balloon_compaction.c
mm: introduce a common interface for balloon pages mobility
2012-12-11 17:22:26 -08:00
bootmem.c
mm/bootmem.c: remove unused wrapper function reserve_bootmem_generic()
2012-12-12 17:38:35 -08:00
bounce.c
cleancache.c
compaction.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
debug-pagealloc.c
dmapool.c
dmapool: make DMAPOOL_DEBUG detect corruption of free marker
2012-12-11 17:22:24 -08:00
fadvise.c
failslab.c
filemap.c
readahead: fault retry breaks mmap file read random detection
2012-10-09 16:22:47 +09:00
filemap_xip.c
mm: move all mmu notifier invocations to be done outside the PT lock
2012-10-09 16:22:58 +09:00
fremap.c
remap_file_pages: correctly handle the case of a NULL vm_ops pointer
2012-10-19 13:37:57 -07:00
frontswap.c
highmem.c
mm, highmem: get virtual address of the page using PKMAP_ADDR()
2012-12-11 17:22:24 -08:00
huge_memory.c
mm: fix kernel BUG at huge_memory.c:1474!
2012-12-16 19:02:38 -08:00
hugetlb.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
hugetlb_cgroup.c
cgroup: rename ->create/post_create/pre_destroy/destroy() to ->css_alloc/online/offline/free()
2012-11-19 08:13:38 -08:00
hwpoison-inject.c
init-mm.c
internal.h
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
interval_tree.c
mm: add CONFIG_DEBUG_VM_RB build option
2012-10-09 16:22:42 +09:00
Kconfig
memory-hotplug: document and enable CONFIG_MOVABLE_NODE
2012-12-18 15:02:12 -08:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
kmemleak.c
kmemleak: use rbtree instead of prio tree
2012-10-09 16:22:39 +09:00
ksm.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
maccess.c
madvise.c
Makefile
mm: introduce a common interface for balloon pages mobility
2012-12-11 17:22:26 -08:00
memblock.c
x86, mm: Trim memory in memblock to be page aligned
2012-10-24 11:52:21 -07:00
memcontrol.c
memcg: execute the whole memcg freeing in free_worker()
2012-12-18 15:02:13 -08:00
memory-failure.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
memory.c
mm: use kbasename()
2012-12-17 17:15:17 -08:00
memory_hotplug.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
mempolicy.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
mempool.c
migrate.c
mm,numa: fix update_mmu_cache_pmd call
2012-12-17 19:37:03 -08:00
mincore.c
mlock.c
mm, thp: fix mlock statistics
2012-10-09 16:23:03 +09:00
mm_init.c
mmap.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
mmu_context.c
mmu_notifier.c
mm/mmu_notifier: allocate mmu_notifier in advance
2012-10-25 14:37:53 -07:00
mmzone.c
memcg: fix hotplugged memory zone oops
2012-11-16 14:33:04 -08:00
mprotect.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
mremap.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
msync.c
nobootmem.c
mm: introduce new field "managed_pages" to struct zone
2012-12-12 17:38:34 -08:00
nommu.c
mm: export a function to get vm committed memory
2012-11-15 15:41:22 -08:00
oom_kill.c
mm, oom: remove redundant sleep in pagefault oom handler
2012-12-12 17:38:34 -08:00
page-writeback.c
writeback: remove nr_pages_dirtied arg from balance_dirty_pages_ratelimited_nr()
2012-12-11 17:22:21 -08:00
page_alloc.c
mm: allocate kernel pages to the right memcg
2012-12-18 15:02:12 -08:00
page_cgroup.c
memcontrol: use N_MEMORY instead N_HIGH_MEMORY
2012-12-12 17:38:32 -08:00
page_io.c
page_isolation.c
memory-hotplug: skip HWPoisoned page when offlining pages
2012-12-11 17:22:22 -08:00
pagewalk.c
thp: change split_huge_page_pmd() interface
2012-12-12 17:38:31 -08:00
percpu-km.c
percpu-vm.c
percpu.c
mm, percpu: Make sure percpu_alloc early parameter has an argument
2012-12-02 06:23:04 -08:00
pgtable-generic.c
mm: Only flush the TLB when clearing an accessible pte
2012-12-11 14:28:34 +00:00
process_vm_access.c
quicklist.c
readahead.c
rmap.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00
shmem.c
lseek: the "whence" argument is called "whence"
2012-12-17 17:15:12 -08:00
slab.c
slab: annotate on-slab caches nodelist locks
2012-12-18 15:02:13 -08:00
slab.h
slab/slub: struct memcg_params
2012-12-18 15:02:13 -08:00
slab_common.c
mm/sl[aou]b: Common alignment code
2012-12-11 12:14:28 +02:00
slob.c
mm/sl[aou]b: Common alignment code
2012-12-11 12:14:28 +02:00
slub.c
Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
2012-12-18 10:56:07 -08:00
sparse-vmemmap.c
sparse.c
memory-hotplug, mm/sparse.c: clear the memory to store struct page
2012-12-11 17:22:23 -08:00
swap.c
mm: remove vma arg from page_evictable
2012-10-09 16:22:55 +09:00
swap_state.c
swapfile.c
mm, oom: fix race when specifying a thread as the oom origin
2012-12-11 17:22:27 -08:00
truncate.c
mm: use clear_page_mlock() in page_remove_rmap()
2012-10-09 16:22:56 +09:00
util.c
Merge branch 'master' into for-next
2012-10-28 19:29:19 +01:00
vmalloc.c
mm: use IS_ENABLED(CONFIG_NUMA) instead of NUMA_BUILD
2012-12-11 17:22:22 -08:00
vmscan.c
vmscan: use N_MEMORY instead N_HIGH_MEMORY
2012-12-12 17:38:33 -08:00
vmstat.c
Automatic NUMA Balancing V11
2012-12-16 15:18:08 -08:00