Defined in 2 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/slub.c __kmem_cache_do_shrink() -> dec_slabs_node()

Type Parameter Key Value
PARAM_VALUE 0 s 4096-ptr_max
PARAM_VALUE 1 node 0-1024
PARAM_VALUE 2 objects 1-s16max
CAPPED_DATA 1 node 1
CAPPED_DATA 2 objects 1
DATA_SOURCE 0 s $0
CONSTRAINT 1 node <3016
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 objects unit_array_size
LOCK2 &n->list_lock
LOCK2 flags
HALF_LOCKED2 global &slab_mutex
TYPE_LOCK (struct kmem_cache_node)->list_lock

mm/slub.c discard_slab() -> dec_slabs_node()

Type Parameter Key Value
PARAM_VALUE 0 s 4096-ptr_max
PARAM_VALUE 1 node 0-1023
DATA_SOURCE 0 s $0
STR_LEN 0 s (-1)
STR_LEN 0 s (-1)
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 s->object_size
NO_OVERFLOW_SIMPLE 0 s->sheaf_capacity
UNITS 2 objects unit_array_size
HALF_LOCKED2 global &slab_mutex

mm/slub.c free_to_partial_list() -> dec_slabs_node()

Type Parameter Key Value
PARAM_VALUE 0 s 4096-ptr_max
PARAM_VALUE 1 node 0-1023
CAPPED_DATA 0 s 1
CAPPED_DATA 0 s->min_partial 1
DATA_SOURCE 0 s $0
STR_LEN 0 s (-1)
STR_LEN 0 s (-1)
BIT_INFO 0 s->flags 0x0,0xffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 s->object_size
NO_OVERFLOW_SIMPLE 0 s->sheaf_capacity
UNITS 2 objects unit_array_size
LOCK2 &n->list_lock
LOCK2 flags
TYPE_LOCK (struct kmem_cache_node)->list_lock