This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PING][PATCHv3 1/2] aarch64: Hoist ZVA check out of the memset function
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, "siddhesh at sourceware dot org" <siddhesh at sourceware dot org>
- Cc: "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, nd <nd at arm dot com>, Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- Date: Wed, 11 Oct 2017 22:21:40 +0000
- Subject: Re: [PING][PATCHv3 1/2] aarch64: Hoist ZVA check out of the memset function
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- Nodisclaimer: True
- References: <DB6PR0801MB20531D1099A99E5A4DF1E042834A0@DB6PR0801MB2053.eurprd08.prod.outlook.com>,<ac874303-6330-1a84-6970-7768ea408e96@linaro.org>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Adhemerval Zanella wrote:
> My idea is to prevent have different code paths in different files that
> are 'injected' by macros or ifdefs. Getting all of them in one place is
> better imho than spread over multiple files. Now, what you are advocating
> is a different topic: whether the modifications of the generic
> implementation are valuable.
Well I'm talking about the patch as proposed. I can no longer understand
the order or the logic, and it is impossible to figure out which of the many
possible cases may have changed alignment of the code - whether by
accident or on purpose.
> Ideally it would prefer to have a more concise selection as:
>
> 1. A memset that reads dczid_el0 using mrs (as the default one).
> This will be selected as default and thus should not incur in any
> regression.
>
> 2. A memset that reads the zva size from global variable and is selected
> solely by falkor (and ideally it would handle 64 and 128 cacheline
> sizes).
>
> 3. no zva variant in the case of zva being 0.
I don't see how that makes sense. If we decide to use an ifunc, then you
no longer need to check the ZVA size. So I just don't understand why we
need a global at all...
Wilco