mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-15 10:24:44 +08:00
924a11bd16
Since merged pages are copied every time they need to be modified, the write access time is different between shared and non-shared pages. Add ksm_cow_time() function which evaluates latency of these COW breaks. First, 4000 pages are allocated and the time, required to modify 1 byte in every other page, is measured. After this, the pages are merged into 2000 pairs and in each pair, 1 page is modified (i.e. they are decoupled) to detect COW breaks. The time needed to break COW of merged pages is then compared with performance of non-shared pages. The test is run as follows: ./ksm_tests -C The output: Total size: 15 MiB Not merged pages: Total time: 0.002185489 s Average speed: 3202.945 MiB/s Merged pages: Total time: 0.004386872 s Average speed: 1595.670 MiB/s Link: https://lkml.kernel.org/r/1d03ee0d1b341959d4b61672c6401d498bff5652.1629386192.git.zhansayabagdaulet@gmail.com Signed-off-by: Zhansaya Bagdauletkyzy <zhansayabagdaulet@gmail.com> Reviewed-by: Tyler Hicks <tyhicks@linux.microsoft.com> Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
.gitignore | ||
charge_reserved_hugetlb.sh | ||
check_config.sh | ||
compaction_test.c | ||
config | ||
gup_test.c | ||
hmm-tests.c | ||
hugepage-mmap.c | ||
hugepage-shm.c | ||
hugetlb_reparenting_test.sh | ||
khugepaged.c | ||
ksm_tests.c | ||
madv_populate.c | ||
Makefile | ||
map_fixed_noreplace.c | ||
map_hugetlb.c | ||
map_populate.c | ||
memfd_secret.c | ||
mlock2-tests.c | ||
mlock2.h | ||
mlock-random-test.c | ||
mremap_dontunmap.c | ||
mremap_test.c | ||
on-fault-limit.c | ||
pkey-helpers.h | ||
pkey-powerpc.h | ||
pkey-x86.h | ||
protection_keys.c | ||
run_vmtests.sh | ||
split_huge_page_test.c | ||
test_hmm.sh | ||
test_vmalloc.sh | ||
thuge-gen.c | ||
transhuge-stress.c | ||
userfaultfd.c | ||
va_128TBswitch.c | ||
virtual_address_range.c | ||
write_hugetlb_memory.sh | ||
write_to_hugetlbfs.c |