mm/slub: refactor deactivate_slab()
authorHyeonggon Yoo <42.hyeyoo@gmail.com>
Mon, 7 Mar 2022 07:40:56 +0000 (07:40 +0000)
committerVlastimil Babka <vbabka@suse.cz>
Wed, 9 Mar 2022 11:25:29 +0000 (12:25 +0100)
commit6d3a16d09bfac2883b8ea12a83d4420a4062d8c0
treea81c35118c8dae42e569586884ee6e2ee85bb475
parent5182f3c9180397b16d15981b385ecfad9249e527
mm/slub: refactor deactivate_slab()

Simplify deactivate_slab() by unlocking n->list_lock and retrying
cmpxchg_double() when cmpxchg_double() fails, and perform
add_{partial,full} only when it succeed.

Releasing and taking n->list_lock again here is not harmful as SLUB
avoids deactivating slabs as much as possible.

[ vbabka@suse.cz: perform add_{partial,full} when cmpxchg_double()
  succeed.

  count deactivating full slabs even if debugging flag is not set. ]

Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Link: https://lore.kernel.org/r/20220307074057.902222-3-42.hyeyoo@gmail.com
mm/slub.c