[PATCH v3 1/3] randomize_kstack: Maintain kstack_offset per task
Ryan Roberts
ryan.roberts at arm.com
Mon Jan 5 21:30:02 AEDT 2026
On 02/01/2026 22:44, David Laight wrote:
> On Fri, 2 Jan 2026 13:11:52 +0000
> Ryan Roberts <ryan.roberts at arm.com> wrote:
>
>> kstack_offset was previously maintained per-cpu, but this caused a
>> couple of issues. So let's instead make it per-task.
>>
>> Issue 1: add_random_kstack_offset() and choose_random_kstack_offset()
>> expected and required to be called with interrupts and preemption
>> disabled so that it could manipulate per-cpu state. But arm64, loongarch
>> and risc-v are calling them with interrupts and preemption enabled. I
>> don't _think_ this causes any functional issues, but it's certainly
>> unexpected and could lead to manipulating the wrong cpu's state, which
>> could cause a minor performance degradation due to bouncing the cache
>> lines. By maintaining the state per-task those functions can safely be
>> called in preemptible context.
>>
>> Issue 2: add_random_kstack_offset() is called before executing the
>> syscall and expands the stack using a previously chosen rnadom offset.
> <>
> David
Cheers; will fix in next version.
Thanks,
Ryan
More information about the Linuxppc-dev
mailing list