ip_vs_rht_w...ets_safe_rcu(9)
β¨ ip_vs_rht_walk_buckets_safe_rcu β¨
okay bestie, so this one is a lil' function from the Kernel API Manual and honestly? it's giving "walk the buckets but make it RCU-safe" energy π let's get into it.
πΈ NAME πΈ
ip_vs_rht_walk_buckets_safe_rcu β walk all the buckets while holding the RCU read lock π«Ά
π SYNOPSIS π
ip_vs_rht_walk_buckets_safe_rcu (table , head );
π¦ ARGUMENTS π¦
tableβ it's astruct ip_vs_rht __rcu *table, yep the whole table, RCU-flavoured and everything β¨headβ bucket address, used as a cursor, and its type isstruct hlist_bl_head *varβ that's your lil' pointer to point at where you're at π
π DESCRIPTION π
So like, you can totally use this while other people are out here adding and deleting entries β but moving is disabled. no cap, that's the deal π
Using cond_resched_rcu should be safe if the tables do not change. like, if. read that again bestie π
fr fr, the "tables don't change" part is doing a lot of heavy lifting in that sentence β don't sleep on it π
π SEE ALSO π
- Kernel file
./include/net/ip_vs.h ip_vs_rht_for_each_table(9)ip_vs_rht_for_each_table_rcu(9)ip_vs_rht_for_each_bucket(9)ip_vs_rht_for_bucket_retry(9)DECLARE_IP_VS_RHT_WALK_BUCKETS_RCU(9)ip_vs_rht_walk_buckets_rcu(9)DECLARE_IP_VS_RHT_WALK_BUCKET_RCU(9)ip_vs_rht_walk_bucket_rcu(9)DECLARE_IP_VS_RHT_WALK_BUCKETS_SAFE_RCU(9)DECLARE_IP_VS_RHT_WALK_BUCKETS(9)ip_vs_rht_walk_buckets(9)
like, that's the whole friend group right there, go say hi π
and that's a wrap, bestie π this lil' page lives in ./include/net, dated October 2026, and it's part of the Kernel API Manual β iconic, no notes π
π¦ 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