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

From: Zi Yan
Date: Wed Jan 03 2024 - 10:52:00 EST


On 3 Jan 2024, at 4:12, Ryan Roberts wrote:

> 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?

The stats below only shows significant changes and mmap-pread-seq-mt delta is less
than 5%, thus it is not shown.

>
>>
>> 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?

The former, always relative to 6.7.0-rc1-mm-everything-2023-11-15-00-17.

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

Yes, I will look into it when I am preparing the next version.

>
>
>>
>> =========================================================================================
>> 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


--
Best Regards,
Yan, Zi

Attachment: signature.asc
Description: OpenPGP digital signature