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

From: Matthew Wilcox
Date: Tue Jun 16 2020 - 17:15:29 EST


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@xxxxxxxxxxx/
>
> 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.