This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: RFC: Always-on elision with per-process opt-in using tunables.
- From: Torvald Riegel <triegel at redhat dot com>
- To: Carlos O'Donell <carlos at redhat dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 30 May 2017 08:46:40 +0200
- Subject: Re: RFC: Always-on elision with per-process opt-in using tunables.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=triegel at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 9AB2DC057EC9
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 9AB2DC057EC9
- References: <de358ecb-120d-a579-5998-cdbee930ba01@redhat.com>
On Thu, 2017-05-11 at 11:45 -0400, Carlos O'Donell wrote:
> I am going to propose the following:
>
> * Always build with elision support.
>
> * Elision disabled by default at runtime.
>
> * Use tunables to allow processes to opt-in to transparent elision.
>
> The benefit is that the elision support doesn't bit-rot, and we keep
> it working, and that distributions can conservatively backport elision
> and allow users to test enablement on a per-process basis.
>
> The elision is enabled with:
>
> GLIBC_TUNABLE=glibc.elision.enable=1
>
> The obvious set of patches are:
>
> (a) Split out some cleanups in this patch.
> (b) Always build with elision and us tunables to opt-in.
> (c) Extend tunables to allow modification of elision parameters
> (useful for upcoming rwlock elision re-enablement).
>
> I'm testing this on x86_64, ppc64le, and s390x.
>
> Thoughts?
I agree this would be useful.
Enabling elision by default for a specific target should require that we
have confidence that performance with elision is better overall (which
is affected by the default elision tuning parameters, for example). We
still need to find consensus on what "better overall" means, but I
believe it needs to be some mix of somewhat better performance overall
while not introducing cases in which elision can make things much worse
(so that we balance improvements in average performance against costs
caused by performance regressions (for the project and for users)).