Re: [PATCH v1 0/4] Enable >0 order folio memory compaction

From: Ryan Roberts
Date: Wed Jan 03 2024 - 04:12:55 EST


On 02/01/2024 20:50, Zi Yan wrote:
> On 21 Nov 2023, at 12:11, Ryan Roberts wrote:
>
>> On 21/11/2023 16:45, Zi Yan wrote:
>>> On 21 Nov 2023, at 10:46, Ryan Roberts wrote:
>>>
>>>>>
>>>>> vm-scalability results
>>>>> ===
>>>>>
>>>>> =========================================================================================
>>>>> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
>>>>> gcc-13/defconfig/debian/300s/qemu-vm/mmap-xread-seq-mt/vm-scalability
>>>>>
>>>>> commit:
>>>>> 6.6.0-rc4-mm-everything-2023-10-21-02-40+
>>>>> 6.6.0-rc4-split-folio-in-compaction+
>>>>> 6.6.0-rc4-folio-migration-in-compaction+
>>>>> 6.6.0-rc4-folio-migration-free-page-split+
>>>>> 6.6.0-rc4-folio-migration-free-page-split-sort-src+
>>>>>
>>>>> 6.6.0-rc4-mm-eve 6.6.0-rc4-split-folio-in-co 6.6.0-rc4-folio-migration-i 6.6.0-rc4-folio-migration-f 6.6.0-rc4-folio-migration-f
>>>>> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
>>>>> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
>>>>> \ | \ | \ | \ | \
>>>>> 12896955 +2.7% 13249322 -4.0% 12385175 ± 5% +1.1% 13033951 -0.4% 12845698 vm-scalability.throughput
>>>>
>>>> Hi Zi,
>>>>
>>>> Are you able to add any commentary to these results as I'm struggling to
>>>> interpret them; Is a positive or negative change better (are they times or
>>>> rates?). What are the stddev values? The title suggests percent but the values
>>>> are huge - I'm trying to understand what the error bars look like - are the
>>>> swings real or noise?
>>>
>>> The metric is vm-scalability.throughput, so the larger the better. Some %stddev
>>> are not present since they are too small. For 6.6.0-rc4-folio-migration-in-compaction+,
>>> %stddev is greater than %change, so the change might be noise.
>>
>> Ahh got it - thanks!
>>
>>>
>>> Also, I talked to DavidH in last THP Cabal meeting about this. He suggested that
>>> there are a lot of noise in vm-scalability like what I have here and I should
>>> run more iterations and on bare metal. I am currently rerun them on a baremetal
>>> and more iterations on the existing VM and report the results later. Please
>>> note that the runs really take some time.
>>
>> Ahh ok, I'll wait for the bare metal numbers and will disregard these for now.
>> Thanks!
>
> It seems that the unexpected big mmap-pread-seq-mt perf drop came from the mistake I
> made in patch 1. After fixing that, mmap-pread-seq-mt perf only drops 0.5%. The new
> results on top of 6.7.0-rc1-mm-everything-2023-11-15-00-17 are at the end of the email.

Good news! I don't see the results for mmap-pread-seq-mt below - perhaps you
forgot to include it?

>
> I am preparing v2 and will send it out soon.
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/qemu-vm/mmap-xread-seq-mt/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 13041962 +16.1% 15142976 +5.0% 13690666 ± 6% +6.7% 13920441 +5.5% 13762582 vm-scalability.throughput

I'm still not sure I'm interpretting this correctly; is %change always relative
to 6.7.0-rc1-mm-everything-2023-11-15-00-17 or is it relative to the previous
commit?

If the former, then it looks like splitting the folios is actually faster than
migrating them whole?


>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/qemu-vm/mmap-pread-seq/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 14998168 -1.0% 14852803 -0.7% 14890569 -0.3% 14946766 -0.4% 14943302 vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/qemu-vm/lru-file-readtwice/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 6750930 ± 7% +41.5% 9549570 ± 2% +31.6% 8883545 ± 2% +33.1% 8982606 ± 2% +30.7% 8821667 ± 3% vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/qemu-vm/lru-file-mmap-read/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 5818610 ± 14% +43.1% 8329118 ± 2% +26.0% 7331427 ± 4% +23.2% 7170418 ± 4% +22.8% 7147458 ± 4% vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/qemu-vm/anon-r-rand/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 1973808 -0.2% 1969617 -0.5% 1964376 +0.3% 1979245 +1.0% 1993677 vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/512G/qemu-vm/anon-w-rand/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 479486 +0.3% 481036 +0.0% 479580 +2.3% 490310 +1.6% 487107 vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/512G/qemu-vm/anon-cow-rand/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 453237 +1.2% 458580 +0.5% 455455 +2.6% 464830 +2.6% 465211 vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/256G/qemu-vm/msync/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 1074404 ± 5% +78.7% 1920268 +78.7% 1920270 +77.2% 1903612 +78.0% 1912223 vm-scalability.throughput
>
> =========================================================================================
> compiler/kconfig/rootfs/runtime/size/tbox_group/test/testcase:
> gcc-13/defconfig/debian/300s/256G/qemu-vm/msync-mt/vm-scalability
>
> commit:
> 6.7.0-rc1-mm-everything-2023-11-15-00-17+
> 6.7.0-rc1-split-folio-in-compaction+
> 6.7.0-rc1-folio-migration-in-compaction+
> 6.7.0-rc1-folio-migration-free-page-split+
> 6.7.0-rc1-folio-migration-free-page-split-sort-src+
>
> 6.7.0-rc1-mm-eve 6.7.0-rc1-split-folio-in-co 6.7.0-rc1-folio-migration-i 6.7.0-rc1-folio-migration-f 6.7.0-rc1-folio-migration-f
> ---------------- --------------------------- --------------------------- --------------------------- ---------------------------
> %stddev %change %stddev %change %stddev %change %stddev %change %stddev
> \ | \ | \ | \ | \
> 2568988 +5.3% 2706227 +5.3% 2706214 +6.3% 2729716 +5.3% 2704539 vm-scalability.throughput
>
>
> --
> Best Regards,
> Yan, Zi