Messages in this thread | | | Date | Thu, 11 Jun 2009 18:39:01 +0900 | Subject | Re: [PATCH 2/3] check unevictable flag in lumy reclaim v2 | From | Minchan Kim <> |
| |
On Thu, Jun 11, 2009 at 6:37 PM, Minchan Kim<minchan.kim@gmail.com> wrote: > On Thu, Jun 11, 2009 at 5:38 PM, KAMEZAWA > Hiroyuki<kamezawa.hiroyu@jp.fujitsu.com> wrote: >> How about this ? >> >> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> >> >> Lumpy reclaim check pages from their pfn. Then, it can find unevictable pages >> in its loop. >> Abort lumpy reclaim when we find Unevictable page, we never get a lump >> of pages for requested order. >> >> Changelog: v1->v2 >> - rewrote commet. >> >> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> >> --- >> mm/vmscan.c | 9 +++++++++ >> 1 file changed, 9 insertions(+) >> >> Index: lumpy-reclaim-trial/mm/vmscan.c >> =================================================================== >> --- lumpy-reclaim-trial.orig/mm/vmscan.c >> +++ lumpy-reclaim-trial/mm/vmscan.c >> @@ -936,6 +936,15 @@ static unsigned long isolate_lru_pages(u >> /* Check that we have not crossed a zone boundary. */ >> if (unlikely(page_zone_id(cursor_page) != zone_id)) >> continue; >> + /* >> + * We tries to free all pages in this range to create >> + * a free large page. Then, if the range includes a page >> + * never be reclaimed, we have no reason to do more. >> + * PageUnevictable page is not a page which can be >> + * easily freed. Abort this scan now. >> + */ >> + if (unlikely(PageUnevictable(cursor_page))) >> + break; > > __isolate_lru_pages already checked PageUnevictable to return error. > I want to remove repeated check although it is trivial. > > By your patch, It seems to remove PageUnevictable check in __isolate_lru_pages.
typo.
It seems we can remove PageUnevictable check in __isolate_lru_pages. Sorry for noise.
> But I know that. If we remove PageUnevictable check in > __isolate_lru_pages, it can't go into BUG in non-lumpy case. ( I > mentioned following as code) > > case -EBUSY: > /* else it is being freed elsewhere */ > list_move(&page->lru, src); > continue; > > default: > BUG(); > } > > > It means we can remove BUG in non-lumpy case and then add BUG into > __isolate_lru_pages directly. > > If we can do it, we can remove unnecessary PageUnevictable check in > __isolate_lru_page. > > I am not sure this is right in case of memcg. > > -- > Kinds regards, > Minchan Kim >
-- Kinds regards, Minchan Kim -- 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/
| |