Re: [PATCH] regset: use vmalloc() for regset_get_alloc()

From: Al Viro
Date: Fri Feb 02 2024 - 11:55:51 EST


On Fri, Feb 02, 2024 at 04:49:47PM +0000, Al Viro wrote:
> > +folks from `./scripts/get_maintainer.pl -f arch/arm64/kernel/ptrace.c`
> >
> > Trying to follow the macros to see where "n" comes from is a maze of
> > twisty little passages, all alike. Hopefully someone from the ARM
> > world can help tell if the value of 17474 for n here is correct or if
> > something is wonky.
>
> It might be interesting to have it print the return value of __regset_get()
> in those cases; if *that* is huge, we really have a problem. If it ends up
> small enough to fit into few pages, OTOH...
>
> SVE_VQ_MAX is defined as 255; is that really in units of 128 bits? IOW,
> do we really expect to support 32Kbit registers? That would drive the
> size into that range, all right, but it would really suck on context
> switches.
>
> I could be misreading it, though - the macros in there are not easy to
> follow and I've never dealt with SVE before, so take the above with
> a cartload of salt.

Worse - it's SVE_VQ_MAX is 512; sorry about the confusion. OK, that would
certainly explain the size (header + 32 registers, each up to 512 * 16 bytes),
but... ouch.