This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Ping: [PATCH v4] faster strlen on x64
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: Carlos O'Donell <carlos at redhat dot com>, Carlos O'Donell <carlos at systemhalted dot org>, GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 19 Jun 2014 23:15:17 +0200
- Subject: Re: Ping: [PATCH v4] faster strlen on x64
- Authentication-results: sourceware.org; auth=none
- References: <CAHjhQ91Ao-6eT3L2cxfeQJenbpf00ijv6Z9XZw4jo=sv5cUDVg at mail dot gmail dot com> <5138ADA7 dot 7040706 at suse dot com> <20130307203745 dot GA26467 at domone dot kolej dot mff dot cuni dot cz> <513982A1 dot 20008 at suse dot com> <20130311091527 dot GA6921 at domone dot kolej dot mff dot cuni dot cz> <513F2C77 dot 6090606 at redhat dot com> <20130315114958 dot GA19760 at domone dot kolej dot mff dot cuni dot cz> <5143305D dot 1030707 at redhat dot com> <20130318064250 dot GA5157 at domone dot kolej dot mff dot cuni dot cz> <CAMe9rOr+RcrW0Jq-CvLzfUXCPTSmxZt2VSx=zV+dVF3W8zbxLg at mail dot gmail dot com>
On Thu, Jun 19, 2014 at 01:43:09PM -0700, H.J. Lu wrote:
> On Sun, Mar 17, 2013 at 11:42 PM, OndÅej BÃlka <neleai@seznam.cz> wrote:
> > On Fri, Mar 15, 2013 at 10:29:49AM -0400, Carlos O'Donell wrote:
> >> On 03/15/2013 07:49 AM, OndÅej BÃlka wrote:
> >> > On Tue, Mar 12, 2013 at 09:24:07AM -0400, Carlos O'Donell wrote:
> >> >> On 03/11/2013 05:15 AM, OndÅej BÃlka wrote:
> >> >>> Carlos, what is you opinion?
> >> >>
> >> >> The patch looks good. I have one last question though.
> >> >>
> >> >> We remove some interesting code in the existing strlen implementations
> >> >> that ensure that strlen calls from libc itself do not go through the PLT.
> >> >>
> >> >> Have you verified that after your changes there are no testsuite regressions
> >> >> in the plt check test or that the internal calls to strlen avoid the PLT?
> >> >>
> >> >> OK to checkin after this additional validation with posted result.
> >> >>
> >> >
> >> > I ran http://sourceware.org/glibc/wiki/Testing/Check-localplt
> >> > elf/checklocalplt.out is empty. I guess this means no regressions.
> >>
> >> Correct.
> >>
> >> Cheers,
> >> Carlos.
> >
> > Commited with obvious resolution of merge conflict in
> > sysdeps/x86-64/multiarch/Makefile.
>
> This commit:
>
> commit 37bb363f03d75e5e6f2ca45f2c686a3a0167797e
> Author: Ondrej Bilka <neleai@seznam.cz>
> Date: Mon Mar 18 07:39:12 2013 +0100
>
> Faster strlen on x64.
>
> sysdeps/x86_64/multiarch/Makefile | 6 +-
> sysdeps/x86_64/multiarch/ifunc-impl-list.c | 13 -
> sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S | 232 +++++++-
> sysdeps/x86_64/multiarch/strcat-ssse3.S | 316 ++++++++++-
> sysdeps/x86_64/multiarch/strlen-sse2-no-bsf.S | 685 -----------------------
> sysdeps/x86_64/multiarch/strlen-sse2-pminub.S | 259 ---------
> sysdeps/x86_64/multiarch/strlen-sse4.S | 84 ---
> sysdeps/x86_64/multiarch/strlen.S | 68 ---
> sysdeps/x86_64/multiarch/strnlen-sse2-no-bsf.S | 3 -
> sysdeps/x86_64/multiarch/strnlen.S | 57 --
> sysdeps/x86_64/strcat.S | 1 +
> sysdeps/x86_64/strlen.S | 272 ++++++---
> sysdeps/x86_64/strnlen.S | 67 +--
>
> has no ChangeLog entries. Since it removed sysdeps/x86_64/multiarch/strlen.S,
> sysdeps/x86_64/multiarch/rtld-strlen.S became unnecessary and should also
> be removed.
>
>
> --
> H.J.
A changelog entry is here. You cannot remove
sysdeps/x86_64/multiarch/rtld-strlen.S as we cannot now use sse2 in
rtld. I had patch that removed that restriction, when I return back on
it and it will be commited then it could be removed.
2013-03-18 Ondrej Bilka <neleai@seznam.cz>
* sysdeps/x86_64/strlen.S: Replace with new SSE2 based
implementation which is faster on all x86_64 architectures.
Tested on AMD, Intel Nehalem, SNB, IVB.
* sysdeps/x86_64/strnlen.S: Likewise.