diff for duplicates of <20091027152118.GI8900@csn.ul.ie> diff --git a/a/1.txt b/N1/1.txt index 87ba84f..b88b304 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,5 +1,5 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: -> 2009/10/27 Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>: +> 2009/10/27 Mel Gorman <mel@csn.ul.ie>: > > On Mon, Oct 26, 2009 at 10:06:09PM +0100, Frans Pop wrote: > >> On Tuesday 20 October 2009, Mel Gorman wrote: > >> > I've attached a patch below that should allow us to cheat. When it's @@ -126,7 +126,7 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > still get an idea who is going to sleep and for how long when calling > > congestion_wait. thanks > > -> > Not-signed-off-hacket-job: Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org> +> > Not-signed-off-hacket-job: Mel Gorman <mel@csn.ul.ie> > > --- > > > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c diff --git a/a/content_digest b/N1/content_digest index d48de5f..02fa16d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -4,29 +4,28 @@ "ref\0200910262206.13146.elendil@planet.nl\0" "ref\020091027145435.GG8900@csn.ul.ie\0" "ref\02f11576a0910270816s3e1b268ah91b5f2d0cc0d562e@mail.gmail.com\0" - "ref\02f11576a0910270816s3e1b268ah91b5f2d0cc0d562e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" - "From\0Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>\0" + "From\0Mel Gorman <mel@csn.ul.ie>\0" "Subject\0Re: [Bug #14141] order 2 page allocation failures in iwlagn\0" "Date\0Tue, 27 Oct 2009 15:21:19 +0000\0" - "To\0KOSAKI Motohiro <kosaki.motohiro-+CUm20s59erQFUHtdCDX3A@public.gmane.org>\0" - "Cc\0Frans Pop <elendil-EIBgga6/0yRmR6Xm/wNWPw@public.gmane.org>" - Chris Mason <chris.mason-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> - David Rientjes <rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> - Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org> - Linux Kernel Mailing List <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - Kernel Testers List <kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - Pekka Enberg <penberg-bbCR+/B0CizivPeTLB3BmA@public.gmane.org> - Reinette Chatre <reinette.chatre-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> - Bartlomiej Zolnierkiewicz <bzolnier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Karol Lewandowski <karol.k.lewandowski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Mohamed Abbas <mohamed.abbas-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> - Jens Axboe <jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> - John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> - " linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org\0" + "To\0KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\0" + "Cc\0Frans Pop <elendil@planet.nl>" + Chris Mason <chris.mason@oracle.com> + David Rientjes <rientjes@google.com> + Rafael J. Wysocki <rjw@sisk.pl> + Linux Kernel Mailing List <linux-kernel@vger.kernel.org> + Kernel Testers List <kernel-testers@vger.kernel.org> + Pekka Enberg <penberg@cs.helsinki.fi> + Reinette Chatre <reinette.chatre@intel.com> + Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> + Karol Lewandowski <karol.k.lewandowski@gmail.com> + Mohamed Abbas <mohamed.abbas@intel.com> + Jens Axboe <jens.axboe@oracle.com> + John W. Linville <linville@tuxdriver.com> + " linux-mm@kvack.org\0" "\00:1\0" "b\0" "On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote:\n" - "> 2009/10/27 Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>:\n" + "> 2009/10/27 Mel Gorman <mel@csn.ul.ie>:\n" "> > On Mon, Oct 26, 2009 at 10:06:09PM +0100, Frans Pop wrote:\n" "> >> On Tuesday 20 October 2009, Mel Gorman wrote:\n" "> >> > I've attached a patch below that should allow us to cheat. When it's\n" @@ -153,7 +152,7 @@ "> > still get an idea who is going to sleep and for how long when calling\n" "> > congestion_wait. thanks\n" "> >\n" - "> > Not-signed-off-hacket-job: Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>\n" + "> > Not-signed-off-hacket-job: Mel Gorman <mel@csn.ul.ie>\n" "> > ---\n" "> >\n" "> > diff --git a/mm/page-writeback.c b/mm/page-writeback.c\n" @@ -188,4 +187,4 @@ "Part-time Phd Student Linux Technology Center\n" University of Limerick IBM Dublin Software Lab -d03f4a00b9709bca6ea160df31ee56dc61a352e51ac873f3e2273e737c0a428c +165c14e9fb0aecff667dfc5665423817ccdc495d15d403faea6e82b65658cac6
diff --git a/a/1.txt b/N2/1.txt index 87ba84f..dafc228 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,5 +1,5 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: -> 2009/10/27 Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>: +> 2009/10/27 Mel Gorman <mel@csn.ul.ie>: > > On Mon, Oct 26, 2009 at 10:06:09PM +0100, Frans Pop wrote: > >> On Tuesday 20 October 2009, Mel Gorman wrote: > >> > I've attached a patch below that should allow us to cheat. When it's @@ -22,12 +22,12 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > >> with no music skips at all even though it had a few SKB errors. > >> > >> Data for the tests: -> >> 1st kernel 2nd kernel 1 2nd kernel 2 -> >> end reading commits 1:15 1:00 0:55 -> >> "freeze" yes no no -> >> branch data shown 1:55 1:15 1:10 -> >> system quiet 2:25 1:50 1:45 -> >> # SKB allocation errors 10 53 5 +> >> 1st kernel 2nd kernel 1 2nd kernel 2 +> >> end reading commits 1:15 1:00 0:55 +> >> "freeze" yes no no +> >> branch data shown 1:55 1:15 1:10 +> >> system quiet 2:25 1:50 1:45 +> >> # SKB allocation errors 10 53 5 > >> > >> Note that the test is substantially faster with the 2nd kernel and that the > >> SKB errors don't really affect the duration of the test. @@ -38,10 +38,10 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > > >> > >> - without the revert 'background_writeout' is called a lot less frequently, -> >> but when it's called it gets long delays +> >> but when it's called it gets long delays > >> - without the revert you have 'wb_kupdate', which is relatively expensive > >> - with the revert 'shrink_list' is relatively expensive, although not -> >> really in absolute terms +> >> really in absolute terms > >> > > > > Lets look at the callers that waited in congestion_wait() for at least @@ -49,30 +49,30 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > > > 2.6.31.1-async-sync-congestion-wait i.e. vanilla kernel > > generated with: cat kern.log_1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c -> > 24 background_writeout congestion_wait sync=0 delay 25 timeout 25 -> > 203 kswapd congestion_wait sync=0 delay 25 timeout 25 -> > 5 shrink_list congestion_wait sync=0 delay 25 timeout 25 -> > 155 try_to_free_pages congestion_wait sync=0 delay 25 timeout 25 -> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25 -> > 2 kswapd congestion_wait sync=0 delay 26 timeout 25 -> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25 -> > 1 try_to_free_pages congestion_wait sync=0 delay 54 timeout 25 +> > 24 background_writeout congestion_wait sync=0 delay 25 timeout 25 +> > 203 kswapd congestion_wait sync=0 delay 25 timeout 25 +> > 5 shrink_list congestion_wait sync=0 delay 25 timeout 25 +> > 155 try_to_free_pages congestion_wait sync=0 delay 25 timeout 25 +> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25 +> > 2 kswapd congestion_wait sync=0 delay 26 timeout 25 +> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25 +> > 1 try_to_free_pages congestion_wait sync=0 delay 54 timeout 25 > > > > 2.6.31.1-write-congestion-wait i.e. kernel with patch reverted > > generated with: cat kern.log_2.1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c -> > 2 background_writeout congestion_wait rw=1 delay 25 timeout 25 -> > 188 kswapd congestion_wait rw=1 delay 25 timeout 25 -> > 14 shrink_list congestion_wait rw=1 delay 25 timeout 25 -> > 181 try_to_free_pages congestion_wait rw=1 delay 25 timeout 25 -> > 5 kswapd congestion_wait rw=1 delay 26 timeout 25 -> > 10 try_to_free_pages congestion_wait rw=1 delay 26 timeout 25 -> > 3 try_to_free_pages congestion_wait rw=1 delay 27 timeout 25 -> > 1 kswapd congestion_wait rw=1 delay 29 timeout 25 -> > 1 __alloc_pages_nodemask congestion_wait rw=1 delay 30 timeout 5 -> > 1 try_to_free_pages congestion_wait rw=1 delay 31 timeout 25 -> > 1 try_to_free_pages congestion_wait rw=1 delay 35 timeout 25 -> > 1 kswapd congestion_wait rw=1 delay 51 timeout 25 -> > 1 try_to_free_pages congestion_wait rw=1 delay 56 timeout 25 +> > 2 background_writeout congestion_wait rw=1 delay 25 timeout 25 +> > 188 kswapd congestion_wait rw=1 delay 25 timeout 25 +> > 14 shrink_list congestion_wait rw=1 delay 25 timeout 25 +> > 181 try_to_free_pages congestion_wait rw=1 delay 25 timeout 25 +> > 5 kswapd congestion_wait rw=1 delay 26 timeout 25 +> > 10 try_to_free_pages congestion_wait rw=1 delay 26 timeout 25 +> > 3 try_to_free_pages congestion_wait rw=1 delay 27 timeout 25 +> > 1 kswapd congestion_wait rw=1 delay 29 timeout 25 +> > 1 __alloc_pages_nodemask congestion_wait rw=1 delay 30 timeout 5 +> > 1 try_to_free_pages congestion_wait rw=1 delay 31 timeout 25 +> > 1 try_to_free_pages congestion_wait rw=1 delay 35 timeout 25 +> > 1 kswapd congestion_wait rw=1 delay 51 timeout 25 +> > 1 try_to_free_pages congestion_wait rw=1 delay 56 timeout 25 > > > > So, wb_kupdate and background_writeout are the big movers in terms of waiting, > > not the direct reclaimers which is what we were expecting. Of those big @@ -81,10 +81,10 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > $ cat kern.log_2.1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c | grep wb_kup > > [ no output ] > > $ $ cat kern.log_1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c | grep wb_kup -> > 1 wb_kupdate congestion_wait sync=0 delay 15 timeout 25 -> > 1 wb_kupdate congestion_wait sync=0 delay 23 timeout 25 -> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25 -> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25 +> > 1 wb_kupdate congestion_wait sync=0 delay 15 timeout 25 +> > 1 wb_kupdate congestion_wait sync=0 delay 23 timeout 25 +> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25 +> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25 > > > > The vanilla kernel is not waiting in wb_kupdate at all. > > @@ -93,7 +93,7 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > that are queued for writeback in the two page allocation failure reports. > > > > without-revert: writeback:65653 -> > with-revert: writeback:21713 +> > with-revert: writeback:21713 > > > > So, after the move to async/sync, a lot more pages are getting queued > > for writeback - more than three times the number of pages are queued for @@ -108,9 +108,9 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > If this makes a difference, I think the three main areas of trouble we > > are now seeing are > > -> > 1. page allocator regressions - mostly fixed hopefully -> > 2. page writeback change in timing - theory yet to be confirmed -> > 3. drivers using more atomics - iwlagn specific, being dealt with +> > 1. page allocator regressions - mostly fixed hopefully +> > 2. page writeback change in timing - theory yet to be confirmed +> > 3. drivers using more atomics - iwlagn specific, being dealt with > > > > Of course, the big problem is if the changes are due to major timing > > differences in page writeback, then mainline is a totally different @@ -126,7 +126,7 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > still get an idea who is going to sleep and for how long when calling > > congestion_wait. thanks > > -> > Not-signed-off-hacket-job: Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org> +> > Not-signed-off-hacket-job: Mel Gorman <mel@csn.ul.ie> > > --- > > > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c @@ -134,14 +134,14 @@ On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote: > > --- a/mm/page-writeback.c > > +++ b/mm/page-writeback.c > > @@ -787,7 +787,7 @@ static void wb_kupdate(unsigned long arg) -> > writeback_inodes(&wbc); -> > if (wbc.nr_to_write > 0) { -> > if (wbc.encountered_congestion || wbc.more_io) -> > - congestion_wait(BLK_RW_ASYNC, HZ/10); -> > + congestion_wait(BLK_RW_SYNC, HZ/10); -> > else -> > break; /* All the old data is written */ -> > } +> > writeback_inodes(&wbc); +> > if (wbc.nr_to_write > 0) { +> > if (wbc.encountered_congestion || wbc.more_io) +> > - congestion_wait(BLK_RW_ASYNC, HZ/10); +> > + congestion_wait(BLK_RW_SYNC, HZ/10); +> > else +> > break; /* All the old data is written */ +> > } > > Hmm, This doesn't looks correct to me. > @@ -160,3 +160,9 @@ according to the page allocation failure reports. Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab + +-- +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/N2/content_digest index d48de5f..a3d9622 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -4,29 +4,28 @@ "ref\0200910262206.13146.elendil@planet.nl\0" "ref\020091027145435.GG8900@csn.ul.ie\0" "ref\02f11576a0910270816s3e1b268ah91b5f2d0cc0d562e@mail.gmail.com\0" - "ref\02f11576a0910270816s3e1b268ah91b5f2d0cc0d562e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" - "From\0Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>\0" + "From\0Mel Gorman <mel@csn.ul.ie>\0" "Subject\0Re: [Bug #14141] order 2 page allocation failures in iwlagn\0" "Date\0Tue, 27 Oct 2009 15:21:19 +0000\0" - "To\0KOSAKI Motohiro <kosaki.motohiro-+CUm20s59erQFUHtdCDX3A@public.gmane.org>\0" - "Cc\0Frans Pop <elendil-EIBgga6/0yRmR6Xm/wNWPw@public.gmane.org>" - Chris Mason <chris.mason-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> - David Rientjes <rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> - Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org> - Linux Kernel Mailing List <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - Kernel Testers List <kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> - Pekka Enberg <penberg-bbCR+/B0CizivPeTLB3BmA@public.gmane.org> - Reinette Chatre <reinette.chatre-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> - Bartlomiej Zolnierkiewicz <bzolnier-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Karol Lewandowski <karol.k.lewandowski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - Mohamed Abbas <mohamed.abbas-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> - Jens Axboe <jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> - John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org> - " linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org\0" + "To\0KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\0" + "Cc\0Frans Pop <elendil@planet.nl>" + Chris Mason <chris.mason@oracle.com> + David Rientjes <rientjes@google.com> + Rafael J. Wysocki <rjw@sisk.pl> + Linux Kernel Mailing List <linux-kernel@vger.kernel.org> + Kernel Testers List <kernel-testers@vger.kernel.org> + Pekka Enberg <penberg@cs.helsinki.fi> + Reinette Chatre <reinette.chatre@intel.com> + Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> + Karol Lewandowski <karol.k.lewandowski@gmail.com> + Mohamed Abbas <mohamed.abbas@intel.com> + Jens Axboe <jens.axboe@oracle.com> + John W. Linville <linville@tuxdriver.com> + " linux-mm@kvack.org\0" "\00:1\0" "b\0" "On Wed, Oct 28, 2009 at 12:16:30AM +0900, KOSAKI Motohiro wrote:\n" - "> 2009/10/27 Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>:\n" + "> 2009/10/27 Mel Gorman <mel@csn.ul.ie>:\n" "> > On Mon, Oct 26, 2009 at 10:06:09PM +0100, Frans Pop wrote:\n" "> >> On Tuesday 20 October 2009, Mel Gorman wrote:\n" "> >> > I've attached a patch below that should allow us to cheat. When it's\n" @@ -49,12 +48,12 @@ "> >> with no music skips at all even though it had a few SKB errors.\n" "> >>\n" "> >> Data for the tests:\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 1st kernel \302\240 \302\240 \302\2402nd kernel 1 \302\240 \302\2402nd kernel 2\n" - "> >> end reading commits \302\240 \302\240 \302\240 \302\240 \302\240 1:15 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2401:00 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2400:55\n" - "> >> \302\240 \"freeze\" \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240yes \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 no \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240no\n" - "> >> branch data shown \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 1:55 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2401:15 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2401:10\n" - "> >> system quiet \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2402:25 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2401:50 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2401:45\n" - "> >> # SKB allocation errors \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 10 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\24053 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\2405\n" + "> >> 1st kernel 2nd kernel 1 2nd kernel 2\n" + "> >> end reading commits 1:15 1:00 0:55\n" + "> >> \"freeze\" yes no no\n" + "> >> branch data shown 1:55 1:15 1:10\n" + "> >> system quiet 2:25 1:50 1:45\n" + "> >> # SKB allocation errors 10 53 5\n" "> >>\n" "> >> Note that the test is substantially faster with the 2nd kernel and that the\n" "> >> SKB errors don't really affect the duration of the test.\n" @@ -65,10 +64,10 @@ "> >\n" "> >>\n" "> >> - without the revert 'background_writeout' is called a lot less frequently,\n" - "> >> \302\240 but when it's called it gets long delays\n" + "> >> but when it's called it gets long delays\n" "> >> - without the revert you have 'wb_kupdate', which is relatively expensive\n" "> >> - with the revert 'shrink_list' is relatively expensive, although not\n" - "> >> \302\240 really in absolute terms\n" + "> >> really in absolute terms\n" "> >>\n" "> >\n" "> > Lets look at the callers that waited in congestion_wait() for at least\n" @@ -76,30 +75,30 @@ "> >\n" "> > 2.6.31.1-async-sync-congestion-wait i.e. vanilla kernel\n" "> > generated with: cat kern.log_1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c\n" - "> > \302\240 \302\240 24 \302\240background_writeout \302\240congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240203 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240 \302\2405 \302\240shrink_list \302\240 \302\240 \302\240 \302\240 \302\240congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240155 \302\240try_to_free_pages \302\240 \302\240congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240145 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240 \302\2402 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 26 timeout 25\n" - "> > \302\240 \302\240 \302\2408 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 26 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240try_to_free_pages \302\240 \302\240congestion_wait sync=0 delay 54 timeout 25\n" + "> > 24 background_writeout congestion_wait sync=0 delay 25 timeout 25\n" + "> > 203 kswapd congestion_wait sync=0 delay 25 timeout 25\n" + "> > 5 shrink_list congestion_wait sync=0 delay 25 timeout 25\n" + "> > 155 try_to_free_pages congestion_wait sync=0 delay 25 timeout 25\n" + "> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25\n" + "> > 2 kswapd congestion_wait sync=0 delay 26 timeout 25\n" + "> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25\n" + "> > 1 try_to_free_pages congestion_wait sync=0 delay 54 timeout 25\n" "> >\n" "> > 2.6.31.1-write-congestion-wait i.e. kernel with patch reverted\n" "> > generated with: cat kern.log_2.1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c\n" - "> > \302\240 \302\240 \302\2402 \302\240background_writeout \302\240congestion_wait rw=1 delay 25 timeout 25\n" - "> > \302\240 \302\240188 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait rw=1 delay 25 timeout 25\n" - "> > \302\240 \302\240 14 \302\240shrink_list \302\240 \302\240 \302\240 \302\240 \302\240congestion_wait rw=1 delay 25 timeout 25\n" - "> > \302\240 \302\240181 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 25 timeout 25\n" - "> > \302\240 \302\240 \302\2405 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait rw=1 delay 26 timeout 25\n" - "> > \302\240 \302\240 10 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 26 timeout 25\n" - "> > \302\240 \302\240 \302\2403 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 27 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait rw=1 delay 29 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240__alloc_pages_nodemask congestion_wait rw=1 delay 30 timeout 5\n" - "> > \302\240 \302\240 \302\2401 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 31 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 35 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240kswapd \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait rw=1 delay 51 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240try_to_free_pages \302\240 \302\240congestion_wait rw=1 delay 56 timeout 25\n" + "> > 2 background_writeout congestion_wait rw=1 delay 25 timeout 25\n" + "> > 188 kswapd congestion_wait rw=1 delay 25 timeout 25\n" + "> > 14 shrink_list congestion_wait rw=1 delay 25 timeout 25\n" + "> > 181 try_to_free_pages congestion_wait rw=1 delay 25 timeout 25\n" + "> > 5 kswapd congestion_wait rw=1 delay 26 timeout 25\n" + "> > 10 try_to_free_pages congestion_wait rw=1 delay 26 timeout 25\n" + "> > 3 try_to_free_pages congestion_wait rw=1 delay 27 timeout 25\n" + "> > 1 kswapd congestion_wait rw=1 delay 29 timeout 25\n" + "> > 1 __alloc_pages_nodemask congestion_wait rw=1 delay 30 timeout 5\n" + "> > 1 try_to_free_pages congestion_wait rw=1 delay 31 timeout 25\n" + "> > 1 try_to_free_pages congestion_wait rw=1 delay 35 timeout 25\n" + "> > 1 kswapd congestion_wait rw=1 delay 51 timeout 25\n" + "> > 1 try_to_free_pages congestion_wait rw=1 delay 56 timeout 25\n" "> >\n" "> > So, wb_kupdate and background_writeout are the big movers in terms of waiting,\n" "> > not the direct reclaimers which is what we were expecting. Of those big\n" @@ -108,10 +107,10 @@ "> > $ cat kern.log_2.1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c | grep wb_kup\n" "> > [ no output ]\n" "> > $ $ cat kern.log_1_test | awk -F ] '{print $2}' | sort -k 5 -n | uniq -c | grep wb_kup\n" - "> > \302\240 \302\240 \302\2401 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 15 timeout 25\n" - "> > \302\240 \302\240 \302\2401 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 23 timeout 25\n" - "> > \302\240 \302\240145 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 25 timeout 25\n" - "> > \302\240 \302\240 \302\2408 \302\240wb_kupdate \302\240 \302\240 \302\240 \302\240 \302\240 congestion_wait sync=0 delay 26 timeout 25\n" + "> > 1 wb_kupdate congestion_wait sync=0 delay 15 timeout 25\n" + "> > 1 wb_kupdate congestion_wait sync=0 delay 23 timeout 25\n" + "> > 145 wb_kupdate congestion_wait sync=0 delay 25 timeout 25\n" + "> > 8 wb_kupdate congestion_wait sync=0 delay 26 timeout 25\n" "> >\n" "> > The vanilla kernel is not waiting in wb_kupdate at all.\n" "> >\n" @@ -120,7 +119,7 @@ "> > that are queued for writeback in the two page allocation failure reports.\n" "> >\n" "> > without-revert: writeback:65653\n" - "> > with-revert: \302\240 \302\240writeback:21713\n" + "> > with-revert: writeback:21713\n" "> >\n" "> > So, after the move to async/sync, a lot more pages are getting queued\n" "> > for writeback - more than three times the number of pages are queued for\n" @@ -135,9 +134,9 @@ "> > If this makes a difference, I think the three main areas of trouble we\n" "> > are now seeing are\n" "> >\n" - "> > \302\240 \302\240 \302\240 \302\2401. page allocator regressions - mostly fixed hopefully\n" - "> > \302\240 \302\240 \302\240 \302\2402. page writeback change in timing - theory yet to be confirmed\n" - "> > \302\240 \302\240 \302\240 \302\2403. drivers using more atomics - iwlagn specific, being dealt with\n" + "> > 1. page allocator regressions - mostly fixed hopefully\n" + "> > 2. page writeback change in timing - theory yet to be confirmed\n" + "> > 3. drivers using more atomics - iwlagn specific, being dealt with\n" "> >\n" "> > Of course, the big problem is if the changes are due to major timing\n" "> > differences in page writeback, then mainline is a totally different\n" @@ -153,7 +152,7 @@ "> > still get an idea who is going to sleep and for how long when calling\n" "> > congestion_wait. thanks\n" "> >\n" - "> > Not-signed-off-hacket-job: Mel Gorman <mel-wPRd99KPJ+uzQB+pC5nmwQ@public.gmane.org>\n" + "> > Not-signed-off-hacket-job: Mel Gorman <mel@csn.ul.ie>\n" "> > ---\n" "> >\n" "> > diff --git a/mm/page-writeback.c b/mm/page-writeback.c\n" @@ -161,14 +160,14 @@ "> > --- a/mm/page-writeback.c\n" "> > +++ b/mm/page-writeback.c\n" "> > @@ -787,7 +787,7 @@ static void wb_kupdate(unsigned long arg)\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240writeback_inodes(&wbc);\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240if (wbc.nr_to_write > 0) {\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240if (wbc.encountered_congestion || wbc.more_io)\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 congestion_wait(BLK_RW_ASYNC, HZ/10);\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 congestion_wait(BLK_RW_SYNC, HZ/10);\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240else\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\240break; \302\240/* All the old data is written */\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240}\n" + "> > writeback_inodes(&wbc);\n" + "> > if (wbc.nr_to_write > 0) {\n" + "> > if (wbc.encountered_congestion || wbc.more_io)\n" + "> > - congestion_wait(BLK_RW_ASYNC, HZ/10);\n" + "> > + congestion_wait(BLK_RW_SYNC, HZ/10);\n" + "> > else\n" + "> > break; /* All the old data is written */\n" + "> > }\n" "> \n" "> Hmm, This doesn't looks correct to me.\n" "> \n" @@ -186,6 +185,12 @@ "-- \n" "Mel Gorman\n" "Part-time Phd Student Linux Technology Center\n" - University of Limerick IBM Dublin Software Lab + "University of Limerick IBM Dublin Software Lab\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>" -d03f4a00b9709bca6ea160df31ee56dc61a352e51ac873f3e2273e737c0a428c +eac71596fa8b7460841d43c51dc274b65a0a7257aed71a1919043f9f5488bfca
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.