Messages in this thread Patch in this message | | | Date | Wed, 07 Dec 2005 21:32:53 +1100 | From | Nick Piggin <> | Subject | Re: [PATCH 13/16] mm: fix minor scan count bugs |
| |
Wu Fengguang wrote: > - in isolate_lru_pages(): reports one more scan. Fix it. > - in shrink_cache(): 0 pages taken does not mean 0 pages scanned. Fix it. >
This looks good, although in the first hunk it might be nicer to turn it into the more familiar for-loop.
for (scan = 0; scan < nr_to_scan && !list_empty(src); scan++) {
> Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> > --- > > mm/vmscan.c | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > --- linux.orig/mm/vmscan.c > +++ linux/mm/vmscan.c > @@ -864,7 +864,8 @@ static int isolate_lru_pages(int nr_to_s > struct page *page; > int scan = 0; > > - while (scan++ < nr_to_scan && !list_empty(src)) { > + while (scan < nr_to_scan && !list_empty(src)) { > + scan++; > page = lru_to_page(src); > prefetchw_prev_lru_page(page, src, flags); > > @@ -911,14 +912,15 @@ static void shrink_cache(struct zone *zo > update_zone_age(zone, nr_scan); > spin_unlock_irq(&zone->lru_lock); > > - if (nr_taken == 0) > - return; > - > sc->nr_scanned += nr_scan; > if (current_is_kswapd()) > mod_page_state_zone(zone, pgscan_kswapd, nr_scan); > else > mod_page_state_zone(zone, pgscan_direct, nr_scan); > + > + if (nr_taken == 0) > + return; > + > nr_freed = shrink_list(&page_list, sc); > if (current_is_kswapd()) > mod_page_state(kswapd_steal, nr_freed); >
-- SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |