This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC PATCH 00/29] arm64: Scalable Vector Extension core support
- From: Dave Martin <Dave dot Martin at arm dot com>
- To: Szabolcs Nagy <szabolcs dot nagy at arm dot com>
- Cc: Florian Weimer <fweimer at redhat dot com>, linux-arm-kernel at lists dot infradead dot org, Torvald Riegel <triegel at redhat dot com>, libc-alpha at sourceware dot org, Ard Biesheuvel <ard dot biesheuvel at linaro dot org>, Marc Zyngier <Marc dot Zyngier at arm dot com>, gdb at sourceware dot org, Alan Hayward <alan dot hayward at arm dot com>, nd at arm dot com, Christoffer Dall <christoffer dot dall at linaro dot org>
- Date: Wed, 30 Nov 2016 14:06:32 +0000
- Subject: Re: [RFC PATCH 00/29] arm64: Scalable Vector Extension core support
- Authentication-results: sourceware.org; auth=none
- References: <1480102762-23647-1-git-send-email-Dave.Martin@arm.com> <7a35d1ae-73df-03a5-c9d6-1a52754acf25@redhat.com> <583EB285.5050305@arm.com>
On Wed, Nov 30, 2016 at 11:05:41AM +0000, Szabolcs Nagy wrote:
> On 30/11/16 10:08, Florian Weimer wrote:
> > On 11/25/2016 08:38 PM, Dave Martin wrote:
[...]
> >> * Discussion is needed on how userspace should detect/negotiate signal
> >> frame size in order for this expansion mechanism to be workable.
> >
> > I'm leaning towards a simple increase in the glibc headers (despite the ABI risk), plus a personality flag to
> > disable really wide vector registers in case this causes problems with old binaries.
> >
>
> if the kernel does not increase the size and libc
> does not add size checks then old binaries would
> work with new libc just fine..
> but that's non-conforming, posix requires the check.
>
> if the kernel increases the size then it has to be
> changed in bionic and musl as well and old binaries
> may break.
Or we need a personality flag or similar to distinguish the two cases.
[...]
> > A more elaborate mechanism will likely introduce more bugs than it makes existing applications working, due to
> > its complexity.
> >
> >> The remaining patches implement initial SVE support for Linux, with the
> >> following limitations:
> >>
> >> * No KVM/virtualisation support for guests.
> >>
> >> * No independent SVE vector length configuration per thread. This is
> >> planned, but will follow as a separate add-on series.
> >
> > Per-thread register widths will likely make coroutine switching (setcontext) and C++ resumable
> > functions/executors quite challenging.
> >
>
> i'd assume it's undefined to context switch to a different
> thread or to resume a function on a different thread
> (because the implementation can cache thread local state
> on the stack: e.g. errno pointer).. of course this does
> not stop ppl from doing it, but the practice is questionable.
I don't have a view on this.
Cheers
---Dave