Home
last modified time | relevance | path

Searched refs:slab (Results 1 – 25 of 71) sorted by relevance

123

/linux/mm/
H A Dslab.h116 struct slab { struct
137 static_assert(offsetof(struct page, pg) == offsetof(struct slab, sl)) argument
147 static_assert(sizeof(struct slab) <= sizeof(struct page));
149 static_assert(IS_ALIGNED(offsetof(struct slab, freelist), sizeof(struct freelist_counters)));
164 const struct slab *: (const struct folio *)s, \
165 struct slab *: (struct folio *)s))
174 static inline struct slab *page_slab(const struct page *page) in page_slab()
180 return (struct slab *)page; in page_slab()
193 static inline void *slab_address(const struct slab *slab) in slab_address() argument
195 return folio_address(slab_folio(slab)); in slab_address()
[all …]
H A Dslub.c3 * SLUB: A slab allocator with low overhead percpu array caches and mostly
22 #include <linux/slab.h>
23 #include "slab.h"
65 * 3. slab_lock(slab) (Only on some arches)
71 * and to synchronize major metadata changes to slab cache structures.
82 * A. slab->freelist -> List of free objects in a slab
83 * B. slab->inuse -> Number of objects in use
84 * C. slab->objects -> Number of objects in slab
635 slab_test_pfmemalloc(const struct slab * slab) slab_test_pfmemalloc() argument
640 slab_set_pfmemalloc(struct slab * slab) slab_set_pfmemalloc() argument
645 __slab_clear_pfmemalloc(struct slab * slab) __slab_clear_pfmemalloc() argument
653 slab_lock(struct slab * slab) slab_lock() argument
658 slab_unlock(struct slab * slab) slab_unlock() argument
664 __update_freelist_fast(struct slab * slab,struct freelist_counters * old,struct freelist_counters * new) __update_freelist_fast() argument
677 __update_freelist_slow(struct slab * slab,struct freelist_counters * old,struct freelist_counters * new) __update_freelist_slow() argument
702 __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
728 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
818 obj_exts_size_in_slab(struct slab * slab) obj_exts_size_in_slab() argument
824 obj_exts_offset_in_slab(struct kmem_cache * s,struct slab * slab) obj_exts_offset_in_slab() argument
834 obj_exts_fit_within_slab_leftover(struct kmem_cache * s,struct slab * slab) obj_exts_fit_within_slab_leftover() argument
842 obj_exts_in_slab(struct kmem_cache * s,struct slab * slab) obj_exts_in_slab() argument
862 obj_exts_size_in_slab(struct slab * slab) obj_exts_size_in_slab() argument
868 obj_exts_offset_in_slab(struct kmem_cache * s,struct slab * slab) obj_exts_offset_in_slab() argument
874 obj_exts_fit_within_slab_leftover(struct kmem_cache * s,struct slab * slab) obj_exts_fit_within_slab_leftover() argument
879 obj_exts_in_slab(struct kmem_cache * s,struct slab * slab) obj_exts_in_slab() argument
902 slab_set_obj_exts_in_object(struct slab * slab) slab_set_obj_exts_in_object() argument
912 slab_set_obj_exts_in_object(struct slab * slab) slab_set_obj_exts_in_object() argument
941 validate_slab_ptr(struct slab * slab) validate_slab_ptr() argument
950 __fill_map(unsigned long * obj_map,struct kmem_cache * s,struct slab * slab) __fill_map() argument
1030 check_valid_pointer(struct kmem_cache * s,struct slab * slab,void * object) check_valid_pointer() argument
1148 print_slab_info(const struct slab * slab) print_slab_info() argument
1199 print_trailer(struct kmem_cache * s,struct slab * slab,u8 * p) print_trailer() argument
1242 object_err(struct kmem_cache * s,struct slab * slab,u8 * object,const char * reason) object_err() argument
1260 __slab_err(struct slab * slab) __slab_err() argument
1271 slab_err(struct kmem_cache * s,struct slab * slab,const char * fmt,...) slab_err() argument
1334 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
1424 check_pad_bytes(struct kmem_cache * s,struct slab * slab,u8 * p) check_pad_bytes() argument
1450 slab_pad_check(struct kmem_cache * s,struct slab * slab) slab_pad_check() argument
1494 check_object(struct kmem_cache * s,struct slab * slab,void * object,u8 val) check_object() argument
1579 check_slab(struct kmem_cache * s,struct slab * slab) check_slab() argument
1608 on_freelist(struct kmem_cache * s,struct slab * slab,void * search) on_freelist() argument
1665 trace(struct kmem_cache * s,struct slab * slab,void * object,int alloc) trace() argument
1687 add_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) add_full() argument
1696 remove_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) remove_full() argument
1736 setup_slab_debug(struct kmem_cache * s,struct slab * slab,void * addr) setup_slab_debug() argument
1747 alloc_consistency_checks(struct kmem_cache * s,struct slab * slab,void * object) alloc_consistency_checks() argument
1764 alloc_debug_processing(struct kmem_cache * s,struct slab * slab,void * object,int orig_size) alloc_debug_processing() argument
1791 free_consistency_checks(struct kmem_cache * s,struct slab * slab,void * object,unsigned long addr) free_consistency_checks() argument
2038 setup_slab_debug(struct kmem_cache * s,struct slab * slab,void * addr) setup_slab_debug() argument
2041 alloc_debug_processing(struct kmem_cache * s,struct slab * slab,void * object,int orig_size) alloc_debug_processing() argument
2044 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
2047 slab_pad_check(struct kmem_cache * s,struct slab * slab) slab_pad_check() argument
2048 check_object(struct kmem_cache * s,struct slab * slab,void * object,u8 val) check_object() argument
2054 add_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) add_full() argument
2056 remove_full(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab) remove_full() argument
2119 mark_failed_objexts_alloc(struct slab * slab) mark_failed_objexts_alloc() argument
2124 handle_failed_objexts_alloc(struct slab * slab,unsigned long obj_exts,struct slabobj_ext * vec) handle_failed_objexts_alloc() argument
2153 mark_failed_objexts_alloc(struct slab * slab) mark_failed_objexts_alloc() argument
2154 handle_failed_objexts_alloc(struct slab * slab,unsigned long obj_exts,struct slabobj_ext * vec) handle_failed_objexts_alloc() argument
2159 init_slab_obj_exts(struct slab * slab) init_slab_obj_exts() argument
2164 alloc_slab_obj_exts(struct slab * slab,struct kmem_cache * s,gfp_t gfp,unsigned int alloc_flags) alloc_slab_obj_exts() argument
2253 free_slab_obj_exts(struct slab * slab,bool allow_spin) free_slab_obj_exts() argument
2285 alloc_slab_obj_exts_early(struct kmem_cache * s,struct slab * slab) alloc_slab_obj_exts_early() argument
2332 init_slab_obj_exts(struct slab * slab) init_slab_obj_exts() argument
2336 alloc_slab_obj_exts(struct slab * slab,struct kmem_cache * s,gfp_t gfp,unsigned int alloc_flags) alloc_slab_obj_exts() argument
2342 free_slab_obj_exts(struct slab * slab,bool allow_spin) free_slab_obj_exts() argument
2347 alloc_slab_obj_exts_early(struct kmem_cache * s,struct slab * slab) alloc_slab_obj_exts_early() argument
2356 prepare_slab_obj_exts_hook(struct kmem_cache * s,struct slab * slab,gfp_t flags,unsigned int alloc_flags,void * p) prepare_slab_obj_exts_hook() argument
2381 struct slab *slab; __alloc_tagging_slab_alloc_hook() local
2431 __alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) __alloc_tagging_slab_free_hook() argument
2455 alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) alloc_tagging_slab_free_hook() argument
2490 alloc_tagging_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) alloc_tagging_slab_free_hook() argument
2532 memcg_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) memcg_slab_free_hook() argument
2559 struct slab *slab; memcg_slab_post_charge() local
2620 memcg_slab_free_hook(struct kmem_cache * s,struct slab * slab,void ** p,int objects) memcg_slab_free_hook() argument
3004 struct slab *slab = virt_to_slab(p[i]); __rcu_free_sheaf_prepare() local
3338 struct slab *slab; alloc_slab_page() local
3412 account_slab(struct slab * slab,int order,struct kmem_cache * s,gfp_t gfp,unsigned int alloc_flags) account_slab() argument
3426 unaccount_slab(struct slab * slab,int order,struct kmem_cache * s,bool allow_spin) unaccount_slab() argument
3445 struct slab *slab; allocate_slab() local
3516 __free_slab(struct kmem_cache * s,struct slab * slab,bool allow_spin) __free_slab() argument
3533 free_new_slab_nolock(struct kmem_cache * s,struct slab * slab) free_new_slab_nolock() argument
3544 struct slab *slab = container_of(h, struct slab, rcu_head); rcu_free_slab() local
3549 free_slab(struct kmem_cache * s,struct slab * slab) free_slab() argument
3565 discard_slab(struct kmem_cache * s,struct slab * slab) discard_slab() argument
3571 slab_test_node_partial(const struct slab * slab) slab_test_node_partial() argument
3576 slab_set_node_partial(struct slab * slab) slab_set_node_partial() argument
3581 slab_clear_node_partial(struct slab * slab) slab_clear_node_partial() argument
3590 set_node_partial_state(struct kmem_cache_node * n,struct slab * slab) set_node_partial_state() argument
3597 __add_partial(struct kmem_cache_node * n,struct slab * slab,enum add_mode mode) __add_partial() argument
3607 add_partial(struct kmem_cache_node * n,struct slab * slab,enum add_mode mode) add_partial() argument
3614 clear_node_partial_state(struct kmem_cache_node * n,struct slab * slab) clear_node_partial_state() argument
3621 remove_partial(struct kmem_cache_node * n,struct slab * slab) remove_partial() argument
3635 alloc_single_from_partial(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab,int orig_size) alloc_single_from_partial() argument
3693 build_slab_freelist(struct kmem_cache * s,struct slab * slab,struct slab_obj_iter * iter) build_slab_freelist() argument
3718 init_slab_obj_iter(struct kmem_cache * s,struct slab * slab,struct slab_obj_iter * iter,bool allow_spin) init_slab_obj_iter() argument
3754 alloc_single_from_new_slab(struct kmem_cache * s,struct slab * slab,const struct slab_alloc_context * ac) alloc_single_from_new_slab() argument
3819 struct slab *slab, *slab2; get_partial_node_bulk() local
3890 struct slab *slab, *slab2; get_from_partial_node() local
4263 count_free(struct slab * slab) count_free() argument
4275 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
4334 count_partial(struct kmem_cache_node * n,int (* get_count)(struct slab *)) count_partial() argument
4338 struct slab *slab; count_partial() local
4355 struct slab *slab; count_partial_free_approx() local
4426 pfmemalloc_match(struct slab * slab,gfp_t gfpflags) pfmemalloc_match() argument
4442 get_freelist_nofreeze(struct kmem_cache * s,struct slab * slab,unsigned int * count) get_freelist_nofreeze() argument
4478 alloc_from_new_slab(struct kmem_cache * s,struct slab * slab,void ** p,unsigned int count,bool allow_spin) alloc_from_new_slab() argument
4539 struct slab *slab; ___slab_alloc() local
5612 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
5685 __slab_try_return_freelist(struct kmem_cache * s,struct kmem_cache_node * n,struct slab * slab,void * head,int cnt) __slab_try_return_freelist() argument
5720 __slab_free(struct kmem_cache * s,struct slab * slab,void * head,void * tail,int cnt,unsigned long addr) __slab_free() argument
6230 can_free_to_pcs(struct slab * slab) can_free_to_pcs() argument
6370 struct slab *slab = virt_to_slab(p[i]); free_to_pcs_bulk() local
6435 struct slab *slab; deferred_percpu_work_fn() local
6502 slab_free(struct kmem_cache * s,struct slab * slab,void * object,unsigned long addr) slab_free() argument
6523 struct slab *slab = virt_to_slab(object); memcg_alloc_abort_single() local
6533 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
6554 struct slab *slab = virt_to_slab(object); slab_free_after_rcu_debug() local
6588 struct slab *slab; warn_free_bad_obj() local
6617 struct slab *slab; kmem_cache_free() local
6639 slab_ksize(struct slab * slab) slab_ksize() argument
6671 struct slab *slab; __ksize() local
6765 struct slab *slab = page_slab(page); kvfree_rcu_cb() local
6783 struct slab *slab; kfree() local
6816 struct slab *slab; kfree_nolock() local
6892 struct slab *slab = page_slab(page); __do_krealloc() local
7131 struct slab *slab; global() member
7157 struct slab *slab; build_detached_freelist() local
7269 struct slab *slab, *slab2; __refill_objects_node() local
7402 struct slab *slab; refill_objects() local
7762 struct slab *slab; early_kmem_cache_node_alloc() local
8078 list_slab_objects(struct kmem_cache * s,struct slab * slab) list_slab_objects() argument
8113 struct slab *slab, *h; free_partial() local
8173 __kmem_obj_info(struct kmem_obj_info * kpp,void * object,struct slab * slab) __kmem_obj_info() argument
8311 __check_heap_object(const void * ptr,unsigned long n,const struct slab * slab,bool to_user) __check_heap_object() argument
8367 struct slab *slab; __kmem_cache_do_shrink() local
8817 count_inuse(struct slab * slab) count_inuse() argument
8822 count_total(struct slab * slab) count_total() argument
8829 validate_slab(struct kmem_cache * s,struct slab * slab,unsigned long * obj_map) validate_slab() argument
8858 struct slab *slab; validate_slab_node() local
9061 process_slab(struct loc_track * t,struct kmem_cache * s,struct slab * slab,enum track_item alloc,unsigned long * obj_map) process_slab() argument
10045 struct slab *slab; slab_debug_trace_open() local
[all...]
H A Dusercopy.c168 struct slab *slab; in check_heap_object() local
194 slab = page_slab(page); in check_heap_object()
195 if (slab) { in check_heap_object()
197 __check_heap_object(ptr, n, slab, to_user); in check_heap_object()
H A Dslab_common.c623 static void kmem_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab) in kmem_obj_info() argument
625 if (__kfence_obj_info(kpp, object, slab)) in kmem_obj_info()
627 __kmem_obj_info(kpp, object, slab); in kmem_obj_info()
649 struct slab *slab; in kmem_dump_obj() local
656 slab = virt_to_slab(object); in kmem_dump_obj()
657 if (!slab) in kmem_dump_obj()
660 kmem_obj_info(&kp, object, slab); in kmem_dump_obj()
1281 struct slab *slab; in bpf_get_kmem_cache() local
1286 slab = virt_to_slab((void *)(long)addr); in bpf_get_kmem_cache()
1287 return slab ? slab->slab_cache : NULL; in bpf_get_kmem_cache()
[all …]
H A Dmemcontrol.c2922 struct mem_cgroup *mem_cgroup_from_obj_slab(struct slab *slab, void *p) in mem_cgroup_from_obj_slab() argument
2933 obj_exts = slab_obj_exts(slab); in mem_cgroup_from_obj_slab()
2937 if (!slab_needs_objcg(slab)) in mem_cgroup_from_obj_slab()
2941 obj_ext = slab_obj_ext(slab->slab_cache, slab, obj_exts, p); in mem_cgroup_from_obj_slab()
2942 objcg = slab_obj_ext_objcg(slab, obj_ext); in mem_cgroup_from_obj_slab()
2963 struct slab *slab; in mem_cgroup_from_virt() local
2968 slab = virt_to_slab(p); in mem_cgroup_from_virt()
2969 if (slab) in mem_cgroup_from_virt()
2970 return mem_cgroup_from_obj_slab(slab, p); in mem_cgroup_from_virt()
3604 struct slab *slab; in __memcg_slab_post_alloc_hook() local
[all …]
/linux/tools/mm/
H A Dslabinfo.c54 struct slabinfo *slab; member
114 "slabinfo [-aABDefhilLnoPrsStTUvXz1] [N=K] [-dafzput] [slab-regexp]\n" in usage()
246 snprintf(x, 128, "/sys/kernel/debug/slab/%s/%s", s->name, name); in read_debug_slab_obj()
351 * Find the shortest alias of a slab
359 if (a->slab == find && in find_one_alias()
797 fprintf(stderr, "%s can only enable trace for one slab at a time\n", s->name); in slab_debug()
818 /* Number of slabs in a slab cache */ in totals()
822 /* Size of the whole slab */ in totals()
826 /* Bytes used for object storage in a slab */ in totals()
833 /* Number of objects in a slab */ in totals()
1209 slab_mismatch(char * slab) slab_mismatch() argument
1218 struct slabinfo *slab = slabinfo; read_slab_dir() local
1326 struct slabinfo *slab; output_slabs() local
[all...]
/linux/Documentation/ABI/testing/
H A Dsysfs-kernel-slab1 What: /sys/kernel/slab
7 The /sys/kernel/slab directory contains a snapshot of the
13 What: /sys/kernel/slab/<cache>/aliases
22 What: /sys/kernel/slab/<cache>/align
31 What: /sys/kernel/slab/<cache>/alloc_calls
41 Documentation/admin-guide/mm/slab.rst).
43 What: /sys/kernel/slab/<cache>/alloc_fastpath
54 What: /sys/kernel/slab/<cache>/alloc_from_partial
60 The alloc_from_partial file shows how many times a cpu slab has
61 been full and it has been refilled by using a slab from the list
[all …]
/linux/mm/kasan/
H A Dcommon.c25 #include <linux/slab.h>
34 #include "../slab.h"
45 struct slab *kasan_addr_to_slab(const void *addr) in kasan_addr_to_slab()
166 void __kasan_poison_slab(struct slab *slab) in __kasan_unpoison_new_object()
168 struct page *page = slab_page(slab); in __kasan_unpoison_new_object()
190 * 1. A cache might have a constructor, which might save a pointer to a slab in assign_tag()
192 * each object in caches with constructors during slab creation and reuse in assign_tag()
213 * assign a random tag during slab creation, otherwise reuse in __kasan_init_slab_obj()
302 * If the object is put into quarantine, do not let slab pu in __kasan_slab_free()
155 __kasan_poison_slab(struct slab * slab) __kasan_poison_slab() argument
461 struct slab *slab; __kasan_krealloc() local
522 struct slab *slab; __kasan_mempool_poison_object() local
545 struct slab *slab; __kasan_mempool_unpoison_object() local
[all...]
H A Dgeneric.c541 struct slab *slab = kasan_addr_to_slab(addr); in kasan_record_aux_stack() local
546 if (is_kfence_address(addr) || !slab) in kasan_record_aux_stack()
549 cache = slab->slab_cache; in kasan_record_aux_stack()
550 object = nearest_obj(cache, slab, addr); in kasan_record_aux_stack()
/linux/scripts/gdb/linux/
H A Dslab.py38 def slab_folio(slab): argument
39 return slab.cast(gdb.lookup_type("struct folio").pointer())
41 def slab_address(slab): argument
43 folio = slab_folio(slab)
155 def __fill_map(obj_map, cache, slab): argument
156 p = slab['freelist']
157 addr = slab_address(slab)
165 for slab in lists.list_for_each_entry(slab_list, slab_ptr_type, "slab_list"):
167 __fill_map(obj_map, cache, slab)
168 addr = slab_address(slab)
[all …]
/linux/tools/cgroup/
H A Dmemcg_slabinfo.py73 for slab in list_for_each_entry('struct slab', n.partial.address_of_(),
75 nr_objs += fn(slab)
79 def count_free(slab): argument
80 return slab.objects - slab.inuse
194 for slab in for_each_slab(prog):
195 objcg_vec_raw = slab.memcg_data.value_()
198 cache = slab.slab_cache
/linux/Documentation/admin-guide/mm/
H A Dslab.rst2 Short users guide for the slab allocator
5 The slab allocator includes full debugging support (when built with
37 slab_debug=<Debug-Options>,<slab name1>,<slab name2>,...
44 of the first "select slabs" blocks that matches the slab's name are applied.
56 caused higher minimum slab orders
69 end of the slab name, in order to cover all slabs with the same prefix. For
75 Red zoning and tracking may realign the slab. We can just apply sanity checks
80 Debugging options may require the minimum possible slab order to increase as
82 sizes). This has a higher likelihood of resulting in slab allocation errors
88 You can apply different options to different list of slab names, using blocks
[all …]
/linux/lib/
H A Dsg_pool.c13 struct kmem_cache *slab; member
150 sgp->slab = kmem_cache_create(sgp->name, size, 0, in sg_pool_init()
152 if (!sgp->slab) { in sg_pool_init()
159 sgp->slab); in sg_pool_init()
174 kmem_cache_destroy(sgp->slab); in sg_pool_init()
/linux/include/linux/
H A Dkfence.h222 bool __kfence_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab);
246 static inline bool __kfence_obj_info(struct kmem_obj_info *kpp, void *object, struct slab *slab) in __kfence_obj_info() argument
/linux/Documentation/translations/zh_CN/dev-tools/
H A Dkasan.rst64 通用KASAN支持在所有的slab、page_alloc、vmap、vmalloc、堆栈和全局内存
67 基于软件标签的KASAN支持slab、page_alloc、vmalloc和堆栈内存。
69 基于硬件标签的KASAN支持slab、page_alloc和不可执行的vmalloc内存。
71 对于slab,两种软件KASAN模式都支持SLUB和SLAB分配器,而基于硬件标签的
89 要将受影响的slab对象的alloc和free堆栈跟踪包含到报告中,请启用
140 BUG: KASAN: slab-out-of-bounds in kmalloc_oob_right+0xa8/0xbc [kasan_test]
196 flags: 0x200000000000100(slab)
211 堆栈跟踪、所访问内存分配位置的堆栈跟踪(对于访问了slab对象的情况)以及对象
213 slab对象的描述以及关于访问的内存页的信息。
231 请注意,KASAN错误标题(如 ``slab-out-of-bounds`` 或 ``use-after-free`` )
/linux/net/dccp/
H A Dccid.c
/linux/tools/testing/selftests/cgroup/
H A Dtest_kmem.c356 long current, percpu, slab; in test_percpu_basic() local
386 slab = cg_read_key_long(parent, "memory.stat", "slab "); in test_percpu_basic()
388 if (current > 0 && percpu > 0 && slab >= 0 && in test_percpu_basic()
389 labs(current - (percpu + slab)) < MAX_VMSTAT_ERROR) in test_percpu_basic()
393 current, percpu, slab, current - (percpu + slab)); in test_percpu_basic()
/linux/tools/perf/Documentation/
H A Dperf-kmem.txt47 Sort the output (default: 'frag,hit,bytes' for slab and 'bytes,hit'
49 pingpong, frag' for slab and 'page, callsite, bytes, hit, order,
51 mode selection options - i.e. --slab, --page, --alloc and/or --caller.
60 --slab::
/linux/tools/testing/scatterlist/
H A DMakefile17 … $(OFILES) scatterlist.c linux/scatterlist.h linux/highmem.h linux/kmemleak.h linux/slab.h asm/io.h
31 @touch linux/slab.h
/linux/Documentation/translations/zh_CN/mm/
H A Dsplit_page_table_lock.rst62 确保架构不使用slab分配器来分配页表:slab使用page->slab_cache来分配其页
/linux/Documentation/translations/zh_CN/core-api/
H A Dmemory-allocation.rst131 如果你需要分配许多相同的对象,你可以使用slab缓存分配器。在使用缓存之前,应该用
137 和 `kvmalloc` 分配的内存。slab缓存应该用kmem_cache_free()来释放。不要忘记用
H A Dmm-api.rst49 include/linux/slab.h
51 mm/slab.c
/linux/tools/testing/memblock/
H A DMakefile11 DEP_OFILES = memblock.o lib/slab.o mmzone.o slab.o cmdline.o
/linux/block/
H A Dbio.c43 struct kmem_cache *slab; member
80 struct kmem_cache *slab; member
96 bslab->slab = kmem_cache_create(bslab->name, size, in create_bio_slab()
99 if (!bslab->slab) in create_bio_slab()
108 kmem_cache_destroy(bslab->slab); in create_bio_slab()
139 return bslab->slab; in bio_find_or_create_slab()
154 WARN_ON_ONCE(bslab->slab != bs->bio_slab); in bio_put_slab()
163 kmem_cache_destroy(bslab->slab); in bio_put_slab()
207 kmem_cache_free(biovec_slab(bio->bi_max_vecs)->slab, in bio_free()
579 bvecs = kmem_cache_alloc(bvs->slab, gfp); in bio_alloc_bioset()
[all …]
/linux/Documentation/mm/
H A Dslab.rst10 .. kernel-doc:: mm/slab.h

123