• Konstantin Khlebnikov's avatar
    selftests/vm/transhuge-stress: stress test for memory compaction · 0085d61f
    Konstantin Khlebnikov authored
    This tool induces memory fragmentation via sequential allocation of
    transparent huge pages and splitting off everything except their last
    sub-pages.  It easily generates pressure to the memory compaction code.
    
    $ perf stat -e 'compaction:*' -e 'migrate:*' ./transhuge-stress
    transhuge-stress: allocate 7858 transhuge pages, using 15716 MiB virtual memory and 61 MiB of ram
    transhuge-stress: 1.653 s/loop, 0.210 ms/page,   9504.828 MiB/s	7858 succeed,    0 failed, 2439 different pages
    transhuge-stress: 1.537 s/loop, 0.196 ms/page,  10226.227 MiB/s	7858 succeed,    0 failed, 2364 different pages
    transhuge-stress: 1.658 s/loop, 0.211 ms/page,   9479.215 MiB/s	7858 succeed,    0 failed, 2179 different pages
    transhuge-stress: 1.617 s/loop, 0.206 ms/page,   9716.992 MiB/s	7858 succeed,    0 failed, 2421 different pages
    ^C./transhuge-stress: Interrupt
    
     Performance counter stats for './transhuge-stress':
    
             1.744.051      compaction:mm_compaction_isolate_migratepages
                 1.014      compaction:mm_compaction_isolate_freepages
             1.744.051      compaction:mm_compaction_migratepages
                 1.647      compaction:mm_compaction_begin
                 1.647      compaction:mm_compaction_end
             1.744.051      migrate:mm_migrate_pages
                     0      migrate:mm_numa_migrate_ratelimit
    
           7,964696835 seconds time elapsed
    Signed-off-by: default avatarKonstantin Khlebnikov <koct9i@gmail.com>
    Cc: Rafael Aquini <aquini@redhat.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0085d61f
transhuge-stress.c 3.47 KB