Re: [PATCH 2/2] mm: Add kvmalloc_ab_c and kvzalloc_struct

From: Matthew Wilcox
Date: Sun Apr 29 2018 - 16:52:08 EST


On Sun, Apr 29, 2018 at 09:59:27AM -0700, Kees Cook wrote:
> Did this ever happen?

Not yet. I brought it up at LSFMM, and I'll repost the patches soon.

> I'd also like to see kmalloc_array_3d() or
> something that takes three size arguments. We have a lot of this
> pattern too:
>
> kmalloc(sizeof(foo) * A * B, gfp...)
>
> And we could turn that into:
>
> kmalloc_array_3d(sizeof(foo), A, B, gfp...)

Are either of A or B constant? Because if so, we could just use
kmalloc_array. If not, then kmalloc_array_3d becomes a little more
expensive than kmalloc_array because we have to do a divide at runtime
instead of compile-time. that's still better than allocating too few
bytes, of course.

I'm wondering how far down the abc + ab + ac + bc + d rabbit-hole we're
going to end up going. As far as we have to, I guess.