Re: [PATCH] x86_64/lib: improve the performance of memmove

From: Miao Xie
Date: Thu Sep 16 2010 - 03:16:32 EST


On Thu, 16 Sep 2010 08:48:25 +0200 (cest), Andi Kleen wrote:
When the dest and the src do overlap and the memory area is large, memmove
of
x86_64 is very inefficient, and it led to bad performance, such as btrfs's
file
deletion performance. This patch improved the performance of memmove on
x86_64
by using __memcpy_bwd() instead of byte copy when doing large memory area
copy
(len> 64).


I still don't understand why you don't simply use a backwards
string copy (with std) ? That should be much simpler and
hopefully be as optimized for kernel copies on recent CPUs.

But according to the comment of memcpy, some CPUs don't support "REP" instruction,
so I think we must implement a backwards string copy by other method for those CPUs,
But that implement is complex, so I write it as a function -- __memcpy_bwd().

Thanks!
Miao
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/