This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug string/16830] memset performance regression


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]