[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87mu37xjhh.fsf@mpe.ellerman.id.au>
Date: Fri, 07 Aug 2020 12:44:42 +1000
From: Michael Ellerman <mpe@...erman.id.au>
To: Segher Boessenkool <segher@...nel.crashing.org>
Cc: Christophe Leroy <christophe.leroy@...roup.eu>,
Christophe Leroy <christophe.leroy@....fr>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>, nathanl@...ux.ibm.com,
linux-arch@...r.kernel.org, arnd@...db.de,
linux-kernel@...r.kernel.org,
Tulio Magno Quites Machado Filho <tuliom@...ux.ibm.com>,
luto@...nel.org, tglx@...utronix.de, vincenzo.frascino@....com,
linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH v8 5/8] powerpc/vdso: Prepare for switching VDSO to generic C implementation.
Segher Boessenkool <segher@...nel.crashing.org> writes:
> On Thu, Aug 06, 2020 at 12:03:33PM +1000, Michael Ellerman wrote:
>> Segher Boessenkool <segher@...nel.crashing.org> writes:
>> > On Wed, Aug 05, 2020 at 04:24:16PM +1000, Michael Ellerman wrote:
>> >> Christophe Leroy <christophe.leroy@...roup.eu> writes:
>> >> > Indeed, 32-bit doesn't have a redzone, so I believe it needs a stack
>> >> > frame whenever it has anything to same.
>
> ^^^
>
>> >> > fbb60: 94 21 ff e0 stwu r1,-32(r1)
>> >
>> > This is the *only* place where you can use a negative offset from r1:
>> > in the stwu to extend the stack (set up a new stack frame, or make the
>> > current one bigger).
>>
>> (You're talking about 32-bit code here right?)
>
> The "SYSV" ELF binding, yeah, which is used for 32-bit on Linux (give or
> take, ho hum).
>
> The ABIs that have a red zone are much nicer here (but less simple) :-)
Yep, just checking I wasn't misunderstanding your comment about negative
offsets.
>> >> At the same time it's much safer for us to just save/restore r2, and
>> >> probably in the noise performance wise.
>> >
>> > If you want a function to be able to work with ABI-compliant code safely
>> > (in all cases), you'll have to make it itself ABI-compliant as well,
>> > yes :-)
>>
>> True. Except this is the VDSO which has previously been a bit wild west
>> as far as ABI goes :)
>
> It could get away with many things because it was guaranteed to be a
> leaf function. Some of those things even violate the ABIs, but you can
> get away with it easily, much reduced scope. Now if this is generated
> code, violating the rules will catch up with you sooner rather than
> later ;-)
Agreed.
cheers
Powered by blists - more mailing lists