Messages in this thread | | | Date | Fri, 13 Nov 2009 09:10:37 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH RFC] [X86] performance improvement for memcpy_64.S by fast string. |
| |
* H. Peter Anvin <hpa@zytor.com> wrote:
> On 11/12/2009 11:33 PM, Ingo Molnar wrote: > > > > * Pavel Machek <pavel@ucw.cz> wrote: > > > >>> Ling, if you are interested, could you send a user-space test-app to > >>> this thread that everyone could just compile and run on various older > >>> boxes, to gather a performance profile of hand-coded versus string ops > >>> performance? > >>> > >>> ( And i think we can make a judgement based on cache-hot performance > >>> alone - if then the strings ops will perform comparatively better in > >>> cache-cold scenarios, so the cache-hot numbers would be a conservative > >>> estimate. ) > >> > >> Ugh, really? I'd expect cache-cold performance to be not helped at all > >> (memory bandwidth limit) and you'll get slow down from additional > >> i-cache misses... > > > > That's my point - the new code is shorter, which will run comparatively > > faster in a cache-cold environment. > > > > memcpy_c by itself is by far the shortest variant, of course.
yep. The argument i made was when a long function was compared to a short one. As you noted we dont actually enable the long function all that often - which inverts the same argument.
> The question is if it makes sense to use the long variants for short > (< 1024 bytes) copies.
I'd say not - the kernel executes in a icache-cold environment most of the time (as user-space is far more cache intense in the majority of workloads and kernel processing starts with a cold icache), so optimizing the kernel for code size is very important. (but numbers done on real workloads can convince me of the opposite.)
Ingo
| |