STRUCT KFREE_RCU_CPU_WORK(9)
π¦ struct kfree_rcu_cpu_work(9) π¦
okay so this is a page straight out of the Kernel API Manual, and bestie, we're talking about struct kfree_rcu_cpu_work β literally the single batch of kfree_rcu() requests π
. That's the whole vibe. One struct, one batch, one grace period, no cap.
π NAME π
struct kfree_rcu_cpu_work β single batch of kfree_rcu() requests β¨
πΈ SYNOPSIS πΈ
like, here's the whole glow-up, exactly as written:
struct kfree_rcu_cpu_work {
struct rcu_work rcu_work;
struct kvfree_rcu_head *head_free;
struct rcu_gp_seq head_free_gp_snap;
struct list_head bulk_head_free[FREE_N_CHANNELS];
struct kfree_rcu_cpu *krcp;
};
π Members π
rcu_workβ this one's the plug β¨ it letsqueue_rcu_workinvoke the workqueue handler after a grace period. patient queen behavior honestly.head_freeβ the list ofkfree_rcuobjects that are just sitting there waiting for a grace period π«Άhead_free_gp_snapβ a grace-period snapshot, and its whole job is to check for attempted premature frees π like, don't free early babe, that's not the move.bulk_head_freeβ the bulk-list ofkvfree_rcuobjects waiting for a grace period π¦ (yes it's an array, yes it's iconic)krcpβ a pointer to thekfree_rcu_cpustructure π
β SEE ALSO β
go read these next, iykyk π₯ β Kernel file ./mm/slab_common.c __kmem_cache_create_args(9), kmem_buckets_create(9), kmem_cache_shrink(9), kmem_dump_obj(9), kfree_sensitive(9), struct kvfree_rcu_bulk_data(9), struct kfree_rcu_cpu(9), kvfree_rcu_barrier(9), kvfree_rcu_barrier_on_cache(9)
and that's the page bestie, no notes π this little gem lives in ./mm, and it's dated October 2026 β so like, future iconic ππ mwah, go touch some grace periods π§
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms