Re: [PATCH v4 0/3] mm, treewide: Rename kzfree() to kfree_sensitive()

Matthew Wilcox
2020-06-16T21:15:30Z

On Tue, Jun 16, 2020 at 11:53:50AM -0700, Joe Perches wrote:
> To this larger audience and last week without reply:
> https://lore.kernel.org/lkml/573b3fbd5927c643920e1364230c296b23e7584d.camel@perches.com/
>
> Are there _any_ fastpath uses of kfree or vfree?

I worked on adding a 'free' a couple of years ago. That was capable
of freeing percpu, vmalloc, kmalloc and alloc_pages memory. I ran into
trouble when I tried to free kmem_cache_alloc memory -- it works for slab
and slub, but not slob (because slob needs the size from the kmem_cache).

My motivation for this was to change kfree_rcu() to just free_rcu().

> To eliminate these mispairings at a runtime cost of four
> comparisons, should the kfree/vfree/kvfree/kfree_const
> functions be consolidated into a single kfree?

I would say to leave kfree() alone and just introduce free() as a new
default. There's some weird places in the kernel that have a 'free'
symbol of their own, but those should be renamed anyway.