[RFC PATCH 2/2] arm64: Implement vmalloc based thread_info allocator

Catalin Marinas catalin.marinas at foss.arm.com
Mon May 25 15:36:29 PDT 2015


On 25 May 2015, at 23:29, Arnd Bergmann <arnd at arndb.de> wrote:
> On Monday 25 May 2015 19:47:15 Catalin Marinas wrote:
>> On 25 May 2015, at 13:01, Jungseok Lee <jungseoklee85 at gmail.com> wrote:
>>>> Could the stack size be reduced to 8KB perhaps?
>>> 
>>> I guess probably not.
>>> 
>>> A commit, 845ad05e, says that 8KB is not enough to cover SpecWeb benchmark.
>> 
>> We could go back to 8KB stacks if we implement support for separate IRQ 
>> stack on arm64. It's not too complicated, we would have to use SP0 for (kernel) threads 
>> and SP1 for IRQ handlers.
> 
> I think most architectures that see a lot of benchmarks have moved to
> irqstacks at some point, that definitely sounds like a useful idea,
> even if the implementation turns out to be a bit more tricky than
> what you describe.

Of course, it's more complicated than just setting up two stacks (but I'm away for a 
week and writing from a phone). We would need to deal with the initial per-CPU setup, 
rescheduling following an IRQ, CPU on following power management and maybe 
other issues. However, the architecture helps us a bit by allowing both SP0 and SP1 to be 
used at EL1. 

> There are a lot of workloads that would benefit from having lower
> per-thread memory cost.

If we keep the 16KB stack, is there any advantage in a separate IRQ one (assuming 
that we won't overflow 16KB)?

Catalin


More information about the linux-arm-kernel mailing list