This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug string/16830] memset performance regression
- From: "cfester at tmriusa dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Fri, 16 Oct 2015 04:38:55 +0000
- Subject: [Bug string/16830] memset performance regression
- Auto-submitted: auto-generated
- References: <bug-16830-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=16830
--- Comment #5 from Chris Fester <cfester at tmriusa dot com> ---
We also have seen a performance regression in memset. Our previous
system software used eglibc 2.15. When we were evaluating Yocto 1.6, we
started using eglibc 2.19 and saw the problem. We continued to see it with
glibc 2.21 when using Yocto 1.8.
Our system software frequently uses memset to initialize large areas of
memory. We break up the memory area into chunks and dedicate all 16 cores
to memset-ing a chunk. This likely thrashes the caches quite a bit,
although I'll admit I haven't looked at any performance counters.
For Yocto 1.6 we patched eglibc to revert to the unrolled loop version of
memset.S. For Yocto 1.8, we actually produced a patch strikingly similar
to Michael Matz's patch to fix the regression.
Some hardware details:
CPU - 2 Sandy Bridge based Xeon CPUs, 16 cores total
Memory - 32 GB on each node
I attached a c source file to do some cycle counting for memset with
multiple threads. If I have time tomorrow I will attach an ODS spreadsheet
with a graph illustrating the data we collected, as well as the patch we're
currently using to work around the problem.
Please let us know how we can help with this issue.
Thanks,
Chris Fester
--
You are receiving this mail because:
You are on the CC list for the bug.