Thread (139 messages) 139 messages, 12 authors, 2024-08-20

Re: [PATCH v4 18/29] arm64: add POE signal support

From: Dave Martin <Dave.Martin@arm.com>
Date: 2024-08-20 14:45:27
Also in: kvmarm, linux-arm-kernel, linux-fsdevel, linux-mm

On Tue, Aug 20, 2024 at 03:06:06PM +0100, Joey Gouly wrote:
On Tue, Aug 20, 2024 at 02:54:50PM +0100, Dave Martin wrote:
quoted
On Tue, Aug 20, 2024 at 10:54:41AM +0100, Joey Gouly wrote:
quoted
On Mon, Aug 19, 2024 at 06:09:06PM +0100, Catalin Marinas wrote:
quoted
On Thu, Aug 15, 2024 at 04:09:26PM +0100, Dave P Martin wrote:
quoted
On Thu, Aug 15, 2024 at 02:18:15PM +0100, Joey Gouly wrote:
quoted
That's a lot of words to say, or ask, do you agree with the approach of only
saving POR_EL0 in the signal frame if num_allocated_pkeys() > 1?

Thanks,
Joey
...So..., given all the above, it is perhaps best to go back to
dumping POR_EL0 unconditionally after all, unless we have a mechanism
to determine whether pkeys are in use at all.
Ah, I can see why checking for POR_EL0_INIT is useful. Only checking for
the allocated keys gets confusing with pkey 0.

Not sure what the deal is with pkey 0. Is it considered allocated by
default or unallocatable? If the former, it implies that pkeys are
already in use (hence the additional check for POR_EL0_INIT). In
principle the hardware allows us to use permissions where the pkeys do
not apply but we'd run out of indices and PTE bits to encode them, so I
think by default we should assume that pkey 0 is pre-allocated.
You can consider pkey 0 allocated by default. You can actually pkey_free(0), there's nothing stopping that.
Is that intentional?
I don't really know? It's intentional from my side in that it, I allow it,
because it doesn't look like x86 or PPC block pkey_free(0).

I found this code that does pkey_free(0), but obviously it's a bit of a weird test case:

	https://github.com/ColinIanKing/stress-ng/blob/master/test/test-pkey-free.c#L29
Of course, pkey 0 will still be in use for everything, and if the man
pages are to be believed, the PKRU bits for pkey 0 may no longer be
maintained after this call...

So this test is possibly a little braindead.  A clear use-case for
freeing pkey 0 would be more convincing.

In the meantime though, it makes most sense for arm64 to follow
the precedent set by other arches on this (as you did).

[...]

Cheers
---Dave
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help