| H A D | slub.c | 3 * SLUB: A slab allocator that limits cache line use instead of queuing 6 * The allocator synchronizes using per slab locks or atomic operations 20 #include <linux/slab.h> 21 #include "slab.h" 59 * 4. slab_lock(slab) (Only on some arches) 65 * and to synchronize major metadata changes to slab cache structures. 76 * A. slab->freelist -> List of free objects in a slab 77 * B. slab->inuse -> Number of objects in use 78 * C. slab 429 struct slab *slab; /* The slab from which we are allocating */ global() member 734 slab_test_pfmemalloc(const struct slab * slab) slab_test_pfmemalloc() argument 739 slab_set_pfmemalloc(struct slab * slab) slab_set_pfmemalloc() argument 744 __slab_clear_pfmemalloc(struct slab * slab) __slab_clear_pfmemalloc() argument 752 slab_lock(struct slab * slab) slab_lock() argument 757 slab_unlock(struct slab * slab) slab_unlock() argument 763 __update_freelist_fast(struct slab * slab,struct freelist_counters * old,struct freelist_counters * new) __update_freelist_fast() argument 776 __update_freelist_slow(struct slab * slab,struct freelist_counters * old,struct freelist_counters * new) __update_freelist_slow() argument 800 __slab_update_freelist(struct kmem_cache * s,struct slab * slab,struct freelist_counters * old,struct freelist_counters * new,const char * n) __slab_update_freelist() argument 826 slab_update_freelist(struct kmem_cache * s,struct slab * slab,struct freelist_counters * old,struct freelist_counters * new,const char * n) slab_update_freelist() argument 895 validate_slab_ptr(struct slab * slab) validate_slab_ptr() argument 904 __fill_map(unsigned long * obj_map,struct kmem_cache * s,struct slab * slab) __fill_map() argument 1002 check_valid_pointer(struct kmem_cache * s,struct slab * slab,void * object) check_valid_pointer() argument 1120 print_slab_info(const struct slab * slab) print_slab_info() argument 1171 print_trailer(struct kmem_cache * s,struct slab * slab,u8 * p) print_trailer() argument 1211 object_err(struct kmem_cache * s,struct slab * slab,u8 * object,const char * reason) object_err() argument 1229 freelist_corrupted(struct kmem_cache * s,struct slab * slab,void ** freelist,void * nextfree) freelist_corrupted() argument 1243 __slab_err(struct slab * slab) __slab_err() argument 1254 slab_err(struct kmem_cache * s,struct slab * slab,const char * fmt,...) slab_err() argument 1317 check_bytes_and_report(struct kmem_cache * s,struct slab * slab,u8 * object,const char * what,u8 * start,unsigned int value,unsigned int bytes,bool slab_obj_print) check_bytes_and_report() argument 1388 check_pad_bytes(struct kmem_cache * s,struct slab * slab,u8 * p) check_pad_bytes() argument 1411 slab_pad_check(struct kmem_cache * s,struct slab * slab) slab_pad_check() argument 1447 check_object(struct kmem_cache * s,struct slab * slab,void * object,u8 val) check_object() argument 1532 check_slab(struct kmem_cache * s,struct slab * slab) check_slab() argument 1561 on_freelist(struct kmem_cache * s,struct slab * slab,void * search) on_freelist() argument 1618 trace(struct kmem_cache * s,struct slab * slab,void * object,int alloc) trace() argument 1640 add_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) add_full() argument 1649 remove_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) remove_full() argument 1689 setup_slab_debug(struct kmem_cache * s,struct slab * slab,void * addr) setup_slab_debug() argument 1700 alloc_consistency_checks(struct kmem_cache * s,struct slab * slab,void * object) alloc_consistency_checks() argument 1717 alloc_debug_processing(struct kmem_cache * s,struct slab * slab,void * object,int orig_size) alloc_debug_processing() argument 1744 free_consistency_checks(struct kmem_cache * s,struct slab * slab,void * object,unsigned long addr) free_consistency_checks() argument 1991 setup_slab_debug(struct kmem_cache * s,struct slab * slab,void * addr) setup_slab_debug() argument 1994 alloc_debug_processing(struct kmem_cache * s,struct slab * slab,void * object,int orig_size) alloc_debug_processing() argument 1997 free_debug_processing(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int * bulk_cnt,unsigned long addr,depot_stack_handle_t handle) free_debug_processing() argument 2000 slab_pad_check(struct kmem_cache * s,struct slab * slab) slab_pad_check() argument 2001 check_object(struct kmem_cache * s,struct slab * slab,void * object,u8 val) check_object() argument 2007 add_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) add_full() argument 2009 remove_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) remove_full() argument 2024 freelist_corrupted(struct kmem_cache * s,struct slab * slab,void ** freelist,void * nextfree) freelist_corrupted() argument 2063 mark_failed_objexts_alloc(struct slab * slab) mark_failed_objexts_alloc() argument 2087 mark_failed_objexts_alloc(struct slab * slab) mark_failed_objexts_alloc() argument 2093 init_slab_obj_exts(struct slab * slab) init_slab_obj_exts() argument 2098 alloc_slab_obj_exts(struct slab * slab,struct kmem_cache * s,gfp_t gfp,bool new_slab) alloc_slab_obj_exts() argument 2177 free_slab_obj_exts(struct slab * slab) free_slab_obj_exts() argument 2209 init_slab_obj_exts(struct slab * slab) init_slab_obj_exts() argument 2213 alloc_slab_obj_exts(struct slab * slab,struct kmem_cache * s,gfp_t gfp,bool new_slab) alloc_slab_obj_exts() argument 2219 free_slab_obj_exts(struct slab * slab) free_slab_obj_exts() argument 2230 struct slab *slab; prepare_slab_obj_exts_hook() local 2279 __alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) __alloc_tagging_slab_free_hook() argument 2301 alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) alloc_tagging_slab_free_hook() argument 2316 alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) alloc_tagging_slab_free_hook() argument 2352 memcg_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) memcg_slab_free_hook() argument 2373 struct slab *slab; memcg_slab_post_charge() local 2430 memcg_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) memcg_slab_free_hook() argument 2758 struct slab *slab = virt_to_slab(p[i]); __rcu_free_sheaf_prepare() local 3068 struct slab *slab; alloc_slab_page() local 3154 shuffle_freelist(struct kmem_cache * s,struct slab * slab) shuffle_freelist() argument 3192 shuffle_freelist(struct kmem_cache * s,struct slab * slab) shuffle_freelist() argument 3198 account_slab(struct slab * slab,int order,struct kmem_cache * s,gfp_t gfp) account_slab() argument 3208 unaccount_slab(struct slab * slab,int order,struct kmem_cache * s) unaccount_slab() argument 3225 struct slab *slab; allocate_slab() local 3306 __free_slab(struct kmem_cache * s,struct slab * slab) __free_slab() argument 3322 struct slab *slab = container_of(h, struct slab, rcu_head); rcu_free_slab() local 3327 free_slab(struct kmem_cache * s,struct slab * slab) free_slab() argument 3343 discard_slab(struct kmem_cache * s,struct slab * slab) discard_slab() argument 3349 slab_test_node_partial(const struct slab * slab) slab_test_node_partial() argument 3354 slab_set_node_partial(struct slab * slab) slab_set_node_partial() argument 3359 slab_clear_node_partial(struct slab * slab) slab_clear_node_partial() argument 3368 __add_partial(struct kmem_cache_node * n,struct slab * slab,int tail) __add_partial() argument 3379 add_partial(struct kmem_cache_node * n,struct slab * slab,int tail) add_partial() argument 3386 remove_partial(struct kmem_cache_node * n,struct slab * slab) remove_partial() argument 3401 alloc_single_from_partial(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab,int orig_size) alloc_single_from_partial() argument 3440 alloc_single_from_new_slab(struct kmem_cache * s,struct slab * slab,int orig_size,gfp_t gfpflags) alloc_single_from_new_slab() argument 3488 put_cpu_partial(struct kmem_cache * s,struct slab * slab,int drain) put_cpu_partial() argument 3500 struct slab *slab, *slab2, *partial = NULL; get_partial_node() local 3565 struct slab *slab; get_any_partial() local 3624 struct slab *slab; get_partial() local 3732 deactivate_slab(struct kmem_cache * s,struct slab * slab,void * freelist) deactivate_slab() argument 3853 struct slab *slab, *slab_to_discard = NULL; __put_partials() local 3926 put_cpu_partial(struct kmem_cache * s,struct slab * slab,int drain) put_cpu_partial() argument 3977 struct slab *slab; flush_slab() local 4001 struct slab *slab = c->slab; __flush_cpu_slab() local 4196 node_match(struct slab * slab,int node) node_match() argument 4206 count_free(struct slab * slab) count_free() argument 4218 free_debug_processing(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int * bulk_cnt,unsigned long addr,depot_stack_handle_t handle) free_debug_processing() argument 4277 count_partial(struct kmem_cache_node * n,int (* get_count)(struct slab *)) count_partial() argument 4281 struct slab *slab; count_partial() local 4298 struct slab *slab; count_partial_free_approx() local 4369 pfmemalloc_match(struct slab * slab,gfp_t gfpflags) pfmemalloc_match() argument 4397 get_freelist(struct kmem_cache * s,struct slab * slab) get_freelist() argument 4422 freeze_slab(struct kmem_cache * s,struct slab * slab) freeze_slab() argument 4466 struct slab *slab; ___slab_alloc() local 4791 struct slab *slab; __slab_alloc_node() local 5794 free_to_partial_list(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int bulk_cnt,unsigned long addr) free_to_partial_list() argument 5866 __slab_free(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int cnt,unsigned long addr) __slab_free() argument 6370 struct slab *slab = virt_to_slab(p[i]); free_to_pcs_bulk() local 6506 struct slab *slab; free_deferred_objects() local 6527 struct slab *slab = container_of(pos, struct slab, llnode); free_deferred_objects() local 6547 defer_deactivate_slab(struct slab * slab,void * flush_freelist) defer_deactivate_slab() argument 6584 do_slab_free(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int cnt,unsigned long addr) do_slab_free() argument 6662 slab_free(struct kmem_cache * s,struct slab * slab,void * object,unsigned long addr) slab_free() argument 6692 slab_free_bulk(struct kmem_cache * s,struct slab * slab,void * head,void * tail,void ** p,int cnt,unsigned long addr) slab_free_bulk() argument 6711 struct slab *slab = virt_to_slab(object); slab_free_after_rcu_debug() local 6741 struct slab *slab; virt_to_cache() local 6813 struct slab *slab; kvfree_rcu_cb() local 6859 struct slab *slab; kfree() local 6891 struct slab *slab; kfree_nolock() local 6968 struct slab *slab = page_slab(page); __do_krealloc() local 7262 struct slab *slab; global() member 7288 struct slab *slab; build_detached_freelist() local 7730 struct slab *slab; early_kmem_cache_node_alloc() local 8003 list_slab_objects(struct kmem_cache * s,struct slab * slab) list_slab_objects() argument 8038 struct slab *slab, *h; free_partial() local 8093 __kmem_obj_info(struct kmem_obj_info * kpp,void * object,struct slab * slab) __kmem_obj_info() argument 8231 __check_heap_object(const void * ptr,unsigned long n,const struct slab * slab,bool to_user) __check_heap_object() argument 8287 struct slab *slab; __kmem_cache_do_shrink() local 8679 count_inuse(struct slab * slab) count_inuse() argument 8684 count_total(struct slab * slab) count_total() argument 8691 validate_slab(struct kmem_cache * s,struct slab * slab,unsigned long * obj_map) validate_slab() argument 8720 struct slab *slab; validate_slab_node() local 8923 process_slab(struct loc_track * t,struct kmem_cache * s,struct slab * slab,enum track_item alloc,unsigned long * obj_map) process_slab() argument 8976 struct slab *slab; show_slab_objects() local 9208 struct slab *slab; slabs_cpu_partial_show() local 9223 struct slab *slab; slabs_cpu_partial_show() local 10008 struct slab *slab; slab_debug_trace_open() local [all...] |