diff for duplicates of <20090821112228.GA6457@localhost> diff --git a/a/1.txt b/N1/1.txt index d486bf4..d3ebe23 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,7 +2,7 @@ On Fri, Aug 21, 2009 at 07:09:17PM +0800, KOSAKI Motohiro wrote: > 2009/8/20 Wu Fengguang <fengguang.wu@intel.com>: > > shrink_inactive_list() won't be called to scan too much pages > > (unless in hibernation code which is fine) or too few pages (ie. -> > batching is taken care of by the callers). So we can just remove the +> > batching is taken care of by the callers). A So we can just remove the > > big loop and isolate the exact number of pages requested. > > > > Just a RFC, and a scratch patch to show the basic idea. @@ -13,10 +13,10 @@ On Fri, Aug 21, 2009 at 07:09:17PM +0800, KOSAKI Motohiro wrote: Mostly cleanups, but one behavior change here: -> > - nr_taken = sc->isolate_pages(sc->swap_cluster_max, -> > + nr_taken = sc->isolate_pages(nr_to_scan, -> > &page_list, &nr_scan, sc->order, mode, -> > zone, sc->mem_cgroup, 0, file); +> > - A A A A A A A nr_taken = sc->isolate_pages(sc->swap_cluster_max, +> > + A A A A A A A nr_taken = sc->isolate_pages(nr_to_scan, +> > A A A A A A A A A A A A A A &page_list, &nr_scan, sc->order, mode, +> > A A A A A A A A A A A A A A A A zone, sc->mem_cgroup, 0, file); The new behavior is to scan exactly the number of pages that shrink_zone() or other callers tell it. It won't try to "round it up" @@ -26,21 +26,21 @@ current status as well as shrink_zone()'s expectation. shrink_zone() may still submit scan requests for <32 pages, which is suboptimal. I'll try to eliminate that totally with more patches. -> > nr_active = clear_active_flags(&page_list, count); +> > A A A A A A A A nr_active = clear_active_flags(&page_list, count); > > @@ -1093,7 +1095,6 @@ static unsigned long shrink_inactive_lis > > -> > spin_unlock_irq(&zone->lru_lock); +> > A A A A A A A A spin_unlock_irq(&zone->lru_lock); > > -> > - nr_scanned += nr_scan; -> > nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC); +> > - A A A A A A A nr_scanned += nr_scan; +> > A A A A A A A A nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC); > > -> > /* +> > A A A A A A A A /* > > @@ -1117,7 +1118,7 @@ static unsigned long shrink_inactive_lis -> > PAGEOUT_IO_SYNC); -> > } +> > 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 PAGEOUT_IO_SYNC); +> > A A A A A A A A } > > -> > - nr_reclaimed += nr_freed; -> > + nr_reclaimed = nr_freed; +> > - A A A A A A A nr_reclaimed += nr_freed; +> > + A A A A A A A nr_reclaimed = nr_freed; > > maybe, nr_freed can be removed perfectly. it have the same meaning as > nr_reclaimed. @@ -49,3 +49,9 @@ Yes, good spot! Thanks, Fengguang + +-- +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 c4bc444..f3c945f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -29,7 +29,7 @@ "> 2009/8/20 Wu Fengguang <fengguang.wu@intel.com>:\n" "> > shrink_inactive_list() won't be called to scan too much pages\n" "> > (unless in hibernation code which is fine) or too few pages (ie.\n" - "> > batching is taken care of by the callers). \302\240So we can just remove the\n" + "> > batching is taken care of by the callers). A So we can just remove the\n" "> > big loop and isolate the exact number of pages requested.\n" "> >\n" "> > Just a RFC, and a scratch patch to show the basic idea.\n" @@ -40,10 +40,10 @@ "\n" "Mostly cleanups, but one behavior change here: \n" "\n" - "> > - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 nr_taken = sc->isolate_pages(sc->swap_cluster_max,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 nr_taken = sc->isolate_pages(nr_to_scan,\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 &page_list, &nr_scan, sc->order, mode,\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\240zone, sc->mem_cgroup, 0, file);\n" + "> > - A A A A A A A nr_taken = sc->isolate_pages(sc->swap_cluster_max,\n" + "> > + A A A A A A A nr_taken = sc->isolate_pages(nr_to_scan,\n" + "> > A A A A A A A A A A A A A A &page_list, &nr_scan, sc->order, mode,\n" + "> > A A A A A A A A A A A A A A A A zone, sc->mem_cgroup, 0, file);\n" "\n" "The new behavior is to scan exactly the number of pages that\n" "shrink_zone() or other callers tell it. It won't try to \"round it up\"\n" @@ -53,21 +53,21 @@ "shrink_zone() may still submit scan requests for <32 pages, which is\n" "suboptimal. I'll try to eliminate that totally with more patches.\n" "\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240nr_active = clear_active_flags(&page_list, count);\n" + "> > A A A A A A A A nr_active = clear_active_flags(&page_list, count);\n" "> > @@ -1093,7 +1095,6 @@ static unsigned long shrink_inactive_lis\n" "> >\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240spin_unlock_irq(&zone->lru_lock);\n" + "> > A A A A A A A A spin_unlock_irq(&zone->lru_lock);\n" "> >\n" - "> > - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 nr_scanned += nr_scan;\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC);\n" + "> > - A A A A A A A nr_scanned += nr_scan;\n" + "> > A A A A A A A A nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC);\n" "> >\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240/*\n" + "> > A A A A A A A A /*\n" "> > @@ -1117,7 +1118,7 @@ static unsigned long shrink_inactive_lis\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\240PAGEOUT_IO_SYNC);\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240}\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 PAGEOUT_IO_SYNC);\n" + "> > A A A A A A A A }\n" "> >\n" - "> > - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 nr_reclaimed += nr_freed;\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 nr_reclaimed = nr_freed;\n" + "> > - A A A A A A A nr_reclaimed += nr_freed;\n" + "> > + A A A A A A A nr_reclaimed = nr_freed;\n" "> \n" "> maybe, nr_freed can be removed perfectly. it have the same meaning as\n" "> nr_reclaimed.\n" @@ -75,6 +75,12 @@ "Yes, good spot!\n" "\n" "Thanks,\n" - Fengguang + "Fengguang\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>" -f71fccd2d7b4ae5af5d5c00a75603b51c428f3a35a86ec2482a3d22118bb71ac +e9154db408e3028357e29d9e6af08c3fd6f788cd803a4f5a30ab0d4aeefa65e3
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.