Re: [v4 PATCH 1/2] mm: swap: check if swap backing device is congested or not

From: Yang Shi
Date: Thu Jan 03 2019 - 12:11:39 EST




On 1/2/19 3:00 PM, Daniel Jordan wrote:
On Sun, Dec 30, 2018 at 12:49:34PM +0800, Yang Shi wrote:
The test on my virtual machine with congested HDD shows long tail
latency is reduced significantly.

Without the patch
page_fault1_thr-1490 [023] 129.311706: funcgraph_entry: #57377.796 us | do_swap_page();
page_fault1_thr-1490 [023] 129.369103: funcgraph_entry: 5.642us | do_swap_page();
page_fault1_thr-1490 [023] 129.369119: funcgraph_entry: #1289.592 us | do_swap_page();
page_fault1_thr-1490 [023] 129.370411: funcgraph_entry: 4.957us | do_swap_page();
page_fault1_thr-1490 [023] 129.370419: funcgraph_entry: 1.940us | do_swap_page();
page_fault1_thr-1490 [023] 129.378847: funcgraph_entry: #1411.385 us | do_swap_page();
page_fault1_thr-1490 [023] 129.380262: funcgraph_entry: 3.916us | do_swap_page();
page_fault1_thr-1490 [023] 129.380275: funcgraph_entry: #4287.751 us | do_swap_page();

With the patch
runtest.py-1417 [020] 301.925911: funcgraph_entry: #9870.146 us | do_swap_page();
runtest.py-1417 [020] 301.935785: funcgraph_entry: 9.802us | do_swap_page();
runtest.py-1417 [020] 301.935799: funcgraph_entry: 3.551us | do_swap_page();
runtest.py-1417 [020] 301.935806: funcgraph_entry: 2.142us | do_swap_page();
runtest.py-1417 [020] 301.935853: funcgraph_entry: 6.938us | do_swap_page();
runtest.py-1417 [020] 301.935864: funcgraph_entry: 3.765us | do_swap_page();
runtest.py-1417 [020] 301.935871: funcgraph_entry: 3.600us | do_swap_page();
runtest.py-1417 [020] 301.935878: funcgraph_entry: 7.202us | do_swap_page();
Hi Yang, I guess runtest.py just calls page_fault1_thr? Being explicit about

Yes, runtest.py is the wrapper script of will-it-scale.

this may improve the changelog for those unfamiliar with will-it-scale.

Sure.


May also be useful to name will-it-scale and how it was run (#thr, runtime,
system cpus/memory/swap) for more context.

How about the below description:

The test with page_fault1 of will-it-scale (sometimes tracing may just show runtest.py that is the wrapper script of page_fault1), which basically launches NR_CPU threads to generate 128MB anonymous pages for each thread, on my virtual machine with congested HDD shows long tail latency is reduced significantly.

Without the patch
Âpage_fault1_thr-1490Â [023]ÂÂ 129.311706: funcgraph_entry: #57377.796 us |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.369103: funcgraph_entry: 5.642usÂÂ |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.369119: funcgraph_entry: #1289.592 us |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.370411: funcgraph_entry: 4.957usÂÂ |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.370419: funcgraph_entry: 1.940usÂÂ |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.378847: funcgraph_entry: #1411.385 us |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.380262: funcgraph_entry: 3.916usÂÂ |Â do_swap_page();
Âpage_fault1_thr-1490Â [023]ÂÂ 129.380275: funcgraph_entry: #4287.751 us |Â do_swap_page();

With the patch
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.925911: funcgraph_entry: #9870.146 us |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935785: funcgraph_entry: 9.802usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935799: funcgraph_entry: 3.551usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935806: funcgraph_entry: 2.142usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935853: funcgraph_entry: 6.938usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935864: funcgraph_entry: 3.765usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935871: funcgraph_entry: 3.600usÂÂ |Â do_swap_page();
ÂÂÂÂÂ runtest.py-1417Â [020]ÂÂ 301.935878: funcgraph_entry: 7.202usÂÂ |Â do_swap_page();


Thanks,
Yang