diff for duplicates of <1472154243.2751.44.camel@redhat.com> diff --git a/a/1.txt b/N1/1.txt index 0924ce9..471afbd 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,9 +2,9 @@ On Thu, 2016-08-25 at 12:27 -0700, Huang, Ying wrote: > File pages use a set of radix tags (DIRTY, TOWRITE, WRITEBACK, etc.) > to > accelerate finding the pages with a specific tag in the radix tree -> during inode writeback.A A But for anonymous pages in the swap cache, -> there is no inode writeback.A A So there is no need to find the -> pages with some writeback tags in the radix tree.A A It is not +> during inode writeback. But for anonymous pages in the swap cache, +> there is no inode writeback. So there is no need to find the +> pages with some writeback tags in the radix tree. It is not > necessary > to touch radix tree writeback tags for pages in the swap cache. > @@ -12,34 +12,34 @@ On Thu, 2016-08-25 at 12:27 -0700, Huang, Ying wrote: > to > ~ 1.48GBps) in the vm-scalability swap-w-seq test case with 8 > processes. -> The test is done on a Xeon E5 v3 system.A A The swap device used is a +> The test is done on a Xeon E5 v3 system. The swap device used is a > RAM -> simulated PMEM (persistent memory) device.A A The improvement comes +> simulated PMEM (persistent memory) device. The improvement comes > from -> the reduced contention on the swap cache radix tree lock.A A To test +> the reduced contention on the swap cache radix tree lock. To test > sequential swapping out, the test case uses 8 processes, which > sequentially allocate and write to the anonymous pages until RAM and > part of the swap device is used up. > > Details of comparison is as follow, > -> baseA A A A A A A A A A A A A base+patch +> base base+patch > ---------------- -------------------------- -> A A A A A A A A A %stddevA A A A A %changeA A A A A A A A A %stddev -> A A A A A A A A A A A A A \A A A A A A A A A A |A A A A A A A A A A A A A A A A \ -> A A A 1207402 A+-A A 7%A A A A A +22.3%A A A A 1476578 A+-A A 6%A A vmstat.swap.so -> A A A 2506952 A+-A A 2%A A A A A +28.1%A A A A 3212076 A+-A A 7%A A vm- +> %stddev %change %stddev +> \ | \ +> 1207402 ± 7% +22.3% 1476578 ± 6% vmstat.swap.so +> 2506952 ± 2% +28.1% 3212076 ± 7% vm- > scalability.throughput -> A A A A A 10.86 A+- 12%A A A A A -23.4%A A A A A A A 8.31 A+- 16%A A perf-profile.cycles- +> 10.86 ± 12% -23.4% 8.31 ± 16% perf-profile.cycles- > pp._raw_spin_lock_irq.__add_to_swap_cache.add_to_swap_cache.add_to_sw > ap.shrink_page_list -> A A A A A 10.82 A+- 13%A A A A A -33.1%A A A A A A A 7.24 A+- 14%A A perf-profile.cycles- +> 10.82 ± 13% -33.1% 7.24 ± 14% perf-profile.cycles- > pp._raw_spin_lock_irqsave.__remove_mapping.shrink_page_list.shrink_in > active_list.shrink_zone_memcg -> A A A A A 10.36 A+- 11%A A A A -100.0%A A A A A A A 0.00 A+- -1%A A perf-profile.cycles- +> 10.36 ± 11% -100.0% 0.00 ± -1% perf-profile.cycles- > pp._raw_spin_lock_irqsave.__test_set_page_writeback.bdev_write_page._ > _swap_writepage.swap_writepage -> A A A A A 10.52 A+- 12%A A A A -100.0%A A A A A A A 0.00 A+- -1%A A perf-profile.cycles- +> 10.52 ± 12% -100.0% 0.00 ± -1% perf-profile.cycles- > pp._raw_spin_lock_irqsave.test_clear_page_writeback.end_page_writebac > k.page_endio.pmem_rw_page > @@ -53,8 +53,8 @@ On Thu, 2016-08-25 at 12:27 -0700, Huang, Ying wrote: > Cc: Dave Hansen <dave.hansen@intel.com> > Signed-off-by: "Huang, Ying" <ying.huang@intel.com> > --- -> A mm/page-writeback.c | 6 ++++-- -> A 1 file changed, 4 insertions(+), 2 deletions(-) +> mm/page-writeback.c | 6 ++++-- +> 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index 82e7252..599d2f9 100644 @@ -62,9 +62,9 @@ On Thu, 2016-08-25 at 12:27 -0700, Huang, Ying wrote: > +++ b/mm/page-writeback.c > @@ -2728,7 +2728,8 @@ int test_clear_page_writeback(struct page > *page) -> A int ret; -> A -> A lock_page_memcg(page); +> int ret; +> +> lock_page_memcg(page); > - if (mapping) { > + /* Pages in swap cache don't use writeback tags */ > + if (mapping && !PageSwapCache(page)) { @@ -79,10 +79,3 @@ for dirty/writeback/... tags. That use case would be DAX filesystems, where we do use a struct page, but that struct page points at persistent storage, and the tags are not necessary. - - --- -To unsubscribe, send a message with 'unsubscribe linux-mm' in -the body to majordomo@kvack.org. For more info on Linux MM, -see: http://www.linux-mm.org/ . -Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index 3ca2a65..14434cd 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -23,9 +23,9 @@ "> File pages use a set of radix tags (DIRTY, TOWRITE, WRITEBACK, etc.)\n" "> to\n" "> accelerate finding the pages with a specific tag in the radix tree\n" - "> during inode writeback.A A But for anonymous pages in the swap cache,\n" - "> there is no inode writeback.A A So there is no need to find the\n" - "> pages with some writeback tags in the radix tree.A A It is not\n" + "> during inode writeback.\302\240\302\240But for anonymous pages in the swap cache,\n" + "> there is no inode writeback.\302\240\302\240So there is no need to find the\n" + "> pages with some writeback tags in the radix tree.\302\240\302\240It is not\n" "> necessary\n" "> to touch radix tree writeback tags for pages in the swap cache.\n" "> \n" @@ -33,34 +33,34 @@ "> to\n" "> ~ 1.48GBps) in the vm-scalability swap-w-seq test case with 8\n" "> processes.\n" - "> The test is done on a Xeon E5 v3 system.A A The swap device used is a\n" + "> The test is done on a Xeon E5 v3 system.\302\240\302\240The swap device used is a\n" "> RAM\n" - "> simulated PMEM (persistent memory) device.A A The improvement comes\n" + "> simulated PMEM (persistent memory) device.\302\240\302\240The improvement comes\n" "> from\n" - "> the reduced contention on the swap cache radix tree lock.A A To test\n" + "> the reduced contention on the swap cache radix tree lock.\302\240\302\240To test\n" "> sequential swapping out, the test case uses 8 processes, which\n" "> sequentially allocate and write to the anonymous pages until RAM and\n" "> part of the swap device is used up.\n" "> \n" "> Details of comparison is as follow,\n" "> \n" - "> baseA A A A A A A A A A A A A base+patch\n" + "> base\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240base+patch\n" "> ---------------- --------------------------\n" - "> A A A A A A A A A %stddevA A A A A %changeA A A A A A A A A %stddev\n" - "> A A A A A A A A A A A A A \\A A A A A A A A A A |A A A A A A A A A A A A A A A A \\\n" - "> A A A 1207402 A+-A A 7%A A A A A +22.3%A A A A 1476578 A+-A A 6%A A vmstat.swap.so\n" - "> A A A 2506952 A+-A A 2%A A A A A +28.1%A A A A 3212076 A+-A A 7%A A vm-\n" + "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240%stddev\302\240\302\240\302\240\302\240\302\240%change\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240%stddev\n" + "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\\\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\\\n" + "> \302\240\302\240\302\2401207402 \302\261\302\240\302\2407%\302\240\302\240\302\240\302\240\302\240+22.3%\302\240\302\240\302\240\302\2401476578 \302\261\302\240\302\2406%\302\240\302\240vmstat.swap.so\n" + "> \302\240\302\240\302\2402506952 \302\261\302\240\302\2402%\302\240\302\240\302\240\302\240\302\240+28.1%\302\240\302\240\302\240\302\2403212076 \302\261\302\240\302\2407%\302\240\302\240vm-\n" "> scalability.throughput\n" - "> A A A A A 10.86 A+- 12%A A A A A -23.4%A A A A A A A 8.31 A+- 16%A A perf-profile.cycles-\n" + "> \302\240\302\240\302\240\302\240\302\24010.86 \302\261 12%\302\240\302\240\302\240\302\240\302\240-23.4%\302\240\302\240\302\240\302\240\302\240\302\240\302\2408.31 \302\261 16%\302\240\302\240perf-profile.cycles-\n" "> pp._raw_spin_lock_irq.__add_to_swap_cache.add_to_swap_cache.add_to_sw\n" "> ap.shrink_page_list\n" - "> A A A A A 10.82 A+- 13%A A A A A -33.1%A A A A A A A 7.24 A+- 14%A A perf-profile.cycles-\n" + "> \302\240\302\240\302\240\302\240\302\24010.82 \302\261 13%\302\240\302\240\302\240\302\240\302\240-33.1%\302\240\302\240\302\240\302\240\302\240\302\240\302\2407.24 \302\261 14%\302\240\302\240perf-profile.cycles-\n" "> pp._raw_spin_lock_irqsave.__remove_mapping.shrink_page_list.shrink_in\n" "> active_list.shrink_zone_memcg\n" - "> A A A A A 10.36 A+- 11%A A A A -100.0%A A A A A A A 0.00 A+- -1%A A perf-profile.cycles-\n" + "> \302\240\302\240\302\240\302\240\302\24010.36 \302\261 11%\302\240\302\240\302\240\302\240-100.0%\302\240\302\240\302\240\302\240\302\240\302\240\302\2400.00 \302\261 -1%\302\240\302\240perf-profile.cycles-\n" "> pp._raw_spin_lock_irqsave.__test_set_page_writeback.bdev_write_page._\n" "> _swap_writepage.swap_writepage\n" - "> A A A A A 10.52 A+- 12%A A A A -100.0%A A A A A A A 0.00 A+- -1%A A perf-profile.cycles-\n" + "> \302\240\302\240\302\240\302\240\302\24010.52 \302\261 12%\302\240\302\240\302\240\302\240-100.0%\302\240\302\240\302\240\302\240\302\240\302\240\302\2400.00 \302\261 -1%\302\240\302\240perf-profile.cycles-\n" "> pp._raw_spin_lock_irqsave.test_clear_page_writeback.end_page_writebac\n" "> k.page_endio.pmem_rw_page\n" "> \n" @@ -74,8 +74,8 @@ "> Cc: Dave Hansen <dave.hansen@intel.com>\n" "> Signed-off-by: \"Huang, Ying\" <ying.huang@intel.com>\n" "> ---\n" - "> A mm/page-writeback.c | 6 ++++--\n" - "> A 1 file changed, 4 insertions(+), 2 deletions(-)\n" + "> \302\240mm/page-writeback.c | 6 ++++--\n" + "> \302\2401 file changed, 4 insertions(+), 2 deletions(-)\n" "> \n" "> diff --git a/mm/page-writeback.c b/mm/page-writeback.c\n" "> index 82e7252..599d2f9 100644\n" @@ -83,9 +83,9 @@ "> +++ b/mm/page-writeback.c\n" "> @@ -2728,7 +2728,8 @@ int test_clear_page_writeback(struct page\n" "> *page)\n" - "> A \tint ret;\n" - "> A \n" - "> A \tlock_page_memcg(page);\n" + "> \302\240\tint ret;\n" + "> \302\240\n" + "> \302\240\tlock_page_memcg(page);\n" "> -\tif (mapping) {\n" "> +\t/* Pages in swap cache don't use writeback tags */\n" "> +\tif (mapping && !PageSwapCache(page)) {\n" @@ -99,13 +99,6 @@ "\n" "That use case would be DAX filesystems, where we do\n" "use a struct page, but that struct page points at\n" - "persistent storage, and the tags are not necessary.\n" - "\n" - "\n" - "--\n" - "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" - "the body to majordomo@kvack.org. For more info on Linux MM,\n" - "see: http://www.linux-mm.org/ .\n" - "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" + persistent storage, and the tags are not necessary. -e6fde9acfa9ca569d063d3fdeb902a55089a83091be2e358cb90b823493d6b04 +1df45921f610a2eee51a85e112d5e1eb16886ea0387efe3b756716108515c69e
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.