Skip to content

improve the performance of some memory copy functions

Miao Xie linux-btrfs linux-ext4 lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest1 of 3 patches 7 repliesIn review
  2. v13 patches 14 repliesSuperseded

Changes in v2 from the cover letter

- change the version of GPL from version 2.1 to version 2

1 of 3 patches is in this archive. The cover letter announces 3.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3lib: introduce some memory copy macros and functionsinclude/linux/memcopy.h lib/Makefile lib/memcopy.c+631 -14 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH V2 0/3] improve the performance of some memory copy functions

Changes from V1 to V2:
- change the version of GPL from version 2.1 to version 2

When I looked into the performance problem of the btrfs, I found some memory copy functions of the kernel(such as: x86_64's memmove)is very inefficient, but the glibc version is quite fast, in some cases it is 10 times faster than the kernel version.

This patchset introduced some macros and functions of the glibc, and improved memmove and memcpy of the generic version and memmove of x86_64 in the kernel.

I have tested this patchset by doing 500 bytes memory copy for 50000 times on x86_64:
memmove
2.6.36-rc1 2s 610445us
2.6.36-rc1 + patch 0s 257358us

After appling this patchset, the performance of the file creation and deletion on some filesystems also become better. I have tested the file creation and deletion performance with the following benchmark tool on my x86_64 box.
http://marc.info/?l=linux-btrfs&m=128212635122920&q=p3

Test steps:

# ./creat_unlink 50000

The result is following(Total time):
Ext4:

		2.6.36-rc1	2.6.36-rc1 + patchset

file creation 0.771240 0.698983 9.4%UP
file deletion 0.459065 0.425530 7.3%UP

Btrfs:

		2.6.36-rc1	2.6.36-rc1 + patchset

file creation 0.966807 0.947592 1.9%UP
file deletion 1.355671 1.217787 10.2%UP

BTW: I don't know the performance of the other architectures because I don't have the machine of those architectures, so I just improved the generic vesion and x86_64 version.

Who can help me to test the performance on the other architectures and compare it with the new generic version?