Linux Slub Fast Allocate path
在 Linux 中,以字节为单位申请内存时,通常会使用 kmalloc()。对于适合对象缓存的分配请求,kmalloc() 会使用底层的 SLUB 对象分配器。 SLUB 的分配流程包含快速路径和慢速路径。本文主要分析所列代码中基于 per-CPU sheaves 的快速路径。 kmalloc 调用链 kmalloc() 会根据请求大小是否为编译期常量,选择不同的入口: flowchart TD...
Read moreMarkdown to HTML
A tiny, fast Markdown blog for GitHub Pages.
Posts grouped in this category.
在 Linux 中,以字节为单位申请内存时,通常会使用 kmalloc()。对于适合对象缓存的分配请求,kmalloc() 会使用底层的 SLUB 对象分配器。 SLUB 的分配流程包含快速路径和慢速路径。本文主要分析所列代码中基于 per-CPU sheaves 的快速路径。 kmalloc 调用链 kmalloc() 会根据请求大小是否为编译期常量,选择不同的入口: flowchart TD...
Read moreslub 快速分配路径 static __fastpath_inline void *slab_alloc_node(struct kmem_cache *s, gfp_t gfpflags, int node, const struct slab_alloc_context *ac) {} 在快速分配路径中,会使用 slab_pre_alloc_hook进行预检,通过在 m...
Read more