lkml.org 
[lkml]   [2019]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v5] powerpc/irq: inline call_do_irq() and call_do_softirq() on PPC32
From
Date


Le 12/12/2019 à 13:52, Christoph Hellwig a écrit :
> On Sat, Dec 07, 2019 at 05:20:04PM +0000, Christophe Leroy wrote:
>> call_do_irq() and call_do_softirq() are simple enough to be
>> worth inlining.
>>
>> Inlining them avoids an mflr/mtlr pair plus a save/reload on stack.
>> It also allows GCC to keep the saved ksp_limit in an nonvolatile reg.
>>
>> This is inspired from S390 arch. Several other arches do more or
>> less the same. The way sparc arch does seems odd thought.
>
> Any reason you only do this for 32-bit and not 64-bit as well?
>

Yes ... There has been a long discussion on this in v4, see
https://patchwork.ozlabs.org/patch/1174288/

The problem is that on PPC64, r2 register is used as TOC pointer and it
is apparently not straithforward to make sure the caller and the callee
are using the same TOC.

On PPC32 it's more simple, r2 is current task_struct at all time, it
never changes.

Christophe

\
 
 \ /
  Last update: 2019-12-12 17:35    [W:0.045 / U:6.468 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site