Recent times kvmalloc() begun widely be used in kernel. Some of such memory allocations have to be freed after rcu grace period, and this patchset introduces a generic primitive for doing this.
Actually, everything is made in [1/2]. Patch [2/2] is just added to make new kvfree_rcu() have the first user. The patch [1/2] transforms kfree_rcu(), its sub definitions and its sub functions into kvfree_rcu() form. The most significant change is in __rcu_reclaim(), where kvfree() is used instead of kfree(). Since kvfree() is able to have a deal with memory allocated via kmalloc(), vmalloc() and kvmalloc(); kfree_rcu() and vfree_rcu() may simply be defined through this new kvfree_rcu(). --- Kirill Tkhai (2): rcu: Transform kfree_rcu() into kvfree_rcu() mm: Use kvfree_rcu() in update_memcg_params() include/linux/rcupdate.h | 31 +++++++++++++++++-------------- include/linux/rcutiny.h | 4 ++-- include/linux/rcutree.h | 2 +- include/trace/events/rcu.h | 12 ++++++------ kernel/rcu/rcu.h | 8 ++++---- kernel/rcu/tree.c | 14 +++++++------- kernel/rcu/tree_plugin.h | 10 +++++----- mm/slab_common.c | 10 +--------- 8 files changed, 43 insertions(+), 48 deletions(-) -- Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>