This is the mail archive of the
mailing list for the libc-ports project.
Re: [patch, mips] Improved memset for MIPS
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Steve Ellcey <sellcey at mips dot com>
- Cc: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-ports at sourceware dot org
- Date: Thu, 19 Sep 2013 11:25:17 -0400
- Subject: Re: [patch, mips] Improved memset for MIPS
- Authentication-results: sourceware.org; auth=none
- References: <93a232b5-9d0b-4a27-bbb5-16e3ae7c4b89 at BAMAIL02 dot ba dot imgtec dot org> <Pine dot LNX dot 4 dot 64 dot 1309061430150 dot 5886 at digraph dot polyomino dot org dot uk> <1378483039 dot 5770 dot 302 dot camel at ubuntu-sellcey> <Pine dot LNX dot 4 dot 64 dot 1309061603380 dot 8532 at digraph dot polyomino dot org dot uk> <1378486241 dot 5770 dot 327 dot camel at ubuntu-sellcey> <Pine dot LNX dot 4 dot 64 dot 1309061653280 dot 8532 at digraph dot polyomino dot org dot uk> <1379526035 dot 5770 dot 414 dot camel at ubuntu-sellcey>
On 09/18/2013 01:40 PM, Steve Ellcey wrote:
> Here is an updated version of my new MIPS memset.S routine. I fixed the
> format of the comments and the ifdef indenting and I ran 'make check'
> and 'make bench' on little endian and big endian systems with the o32,
> n32, and n64 ABIs. The testing did find a bug that my original testing
> missed and I have fixed that bug (it involved a negative value as the
> constant being set). Other then that, the only failures I saw were the
> expected check-localplt and check-execstack errors.
> I don't know if you want to see all the performance results from
> bench-memset.out since it has a lot of output, but looking at the
> average time for 131072 byte memsets, the original libc in o32 little
> endian mode averaged 43732 (seconds I guess) and the new one was
> 27365. n32 went from 21886 to 21881 and n64 went from 21882 to 21877.
> So the 64 bit numbers only improved a little, but the 32 bit version
> shows a very nice improvement.
> Steve Ellcey
> 2013-09-18 Steve Ellcey <firstname.lastname@example.org>
> * sysdeps/mips/memset.S: Change prefetching and add loop unrolling.
> * sysdeps/mips/mips64/memset.S: Remove.
This looks good to me.
I think Joseph Myers should give the final ACK.
Could you please post your *.out files so others
can have the raw data for the test run?