linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: fweimer@redhat.com (Florian Weimer)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/5] arm64: Signal context expansion
Date: Fri, 16 Sep 2016 14:10:53 +0200	[thread overview]
Message-ID: <ad89f920-897c-47cb-d584-4b306bc24d1c@redhat.com> (raw)
In-Reply-To: <20160915164543.GB1574@e103592.cambridge.arm.com>

On 09/15/2016 06:45 PM, Dave Martin wrote:
> On Tue, Sep 13, 2016 at 06:02:45PM +0200, Florian Weimer wrote:
>> On 09/13/2016 05:52 PM, Dave Martin wrote:
>>
>>> Agreed.  I'll need to think some more about how this should work in
>>> general.
>>
>> Thanks.
>>
>> Depending on some SVE implementations details (which I know nothing about, I
>> only saw some public overview slides), we may also need additional storage
>> space to preserve SVE registers in the dynamic linker.  Due to lazy binding,
>> this code cn be called from a signal handler, so this needs to be factored
>> into stack size requirements as well.
>
> Yes and no.  The kernel SIGSTKSZ constants don't care about ld.so --
> that's userspace overhead, not kernel overhead.

Well yes, so is jmp_buf.  But I think you still should consider the full 
picture. :)

At least the lazy binding stack overhead can be avoided with LD_BIND_NOW=1.

>> Problematic are register width extensions used for argument passing and
>> callee-saved registers whose width has been extended.  Both are particularly
>> challenging to deal with if existing vector instructions clear the extension
>> part (which may be desirable for other reasons).
>>
>> The size of the jmp_buf type is a concern as well.
>
> The default PCS for SVE will not be introducing any extra save/restore
> requirements for SVE -- i.e., everything is caller-save at public
> interfaces, except for the FPSIMD register bits that are already callee-
> save under the existing PCS.

Is it possible to pass arguments in the register extension parts?  If 
existing non-SVE code can clobber these bits, we need some adjustments 
in libc to save and restore SVE state in some places (which may need 
further stack space).

Again, for lazy binding, LD_BIND_NOW=1 will help temporarily, but 
profiling code may need a separate fix.

Thanks,
Florian

  reply	other threads:[~2016-09-16 12:10 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09 14:15 [RFC PATCH 0/5] arm64: Signal context expansion Dave Martin
2016-09-09 14:15 ` [RFC PATCH 1/5] arm64: signal: Refactor sigcontext parsing in rt_sigreturn Dave Martin
2016-09-09 14:15 ` [RFC PATCH 2/5] arm64: signal: factor frame layout and population into separate passes Dave Martin
2016-09-09 14:15 ` [RFC PATCH 3/5] arm64: signal: factor out signal frame record allocation Dave Martin
2016-09-09 14:15 ` [RFC PATCH 4/5] arm64: signal: Allocate extra sigcontext space as needed Dave Martin
2016-09-09 14:15 ` [RFC PATCH 5/5] arm64: signal: Parse extra_context during sigreturn Dave Martin
2016-09-09 14:39 ` [RFC PATCH 0/5] arm64: Signal context expansion Florian Weimer
2016-09-09 15:21   ` Dave Martin
2016-09-09 17:01     ` Florian Weimer
2016-09-12 11:17       ` Dave Martin
2016-09-12 12:49         ` Florian Weimer
2016-09-12 15:21           ` Dave Martin
2016-09-12 15:01         ` Szabolcs Nagy
2016-09-12 15:30           ` Dave Martin
2016-09-12 16:44             ` Szabolcs Nagy
2016-09-12 17:24               ` Dave Martin
2016-09-13  9:28             ` Florian Weimer
2016-09-13 15:52               ` Dave Martin
2016-09-13 16:02                 ` Florian Weimer
2016-09-15 16:45                   ` Dave Martin
2016-09-16 12:10                     ` Florian Weimer [this message]
2016-09-16 17:39                       ` Dave Martin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ad89f920-897c-47cb-d584-4b306bc24d1c@redhat.com \
    --to=fweimer@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).