On Wed, 2024-08-21 at 01:19 +0100, Mark Brown wrote:
I think it's going to be strange one way or another, either you specify a size that we don't currently really use or you have two things both called stacks which are described differently.
I would guess users of raw clone3 calls would be able to handle that kind of variation.
I was just trying to figure out why there is both the pointer and size for normal stacks. It seems that one usage is that you don't have to worry about whether your arch's stack grows up or down. But otherwise, the previous clone's didn't need the size. Before clone3 the stack size users seem to be kernel threads, so when they unified the infrastructure behind kernel_clone_args, stack_size was needed for the struct. Could it be that it just leaked to userspace for that reason? I don't know, but I would think a tweak to such a fundamental syscall should have some purposeful design behind it.
I suppose we could call a single parameter shadow_stack_pointer? Though I do note that as you indicated we've been going for some time and this is the first time it came up...
Sorry for that. I looked through all the old threads expecting to find discussion, but couldn't find an answer. Is clone3 support a dependency for arm shadow stacks?