Re: [PATCH]vmscan: handle underflow for get_scan_ratio

From: KOSAKI Motohiro
Date: Tue Apr 13 2010 - 04:56:01 EST


> > > I'm surprised this ack a bit. Rik, do you have any improvement plan about
> > > streaming io detection logic?
> > > I think the patch have a slightly marginal benefit, it help to<1% scan
> > > ratio case. but it have big regression, it cause streaming io (e.g. backup
> > > operation) makes tons swap.
> >
> > How? From the description I believe it took 16GB in
> > a zone before we start scanning anon pages when
> > reclaiming at DEF_PRIORITY?
> >
> > Would that casue a problem?
>
> Please remember, 2.6.27 has following +1 scanning modifier.
>
> zone->nr_scan_active += (zone_page_state(zone, NR_ACTIVE) >> priority) + 1;
> ^^^^
>
> and, early (ano not yet merged) SplitLRU VM has similar +1. likes
>
> scan = zone_nr_lru_pages(zone, sc, l);
> scan >>= priority;
> scan = (scan * percent[file]) / 100 + 1;
> ^^^
>
> We didn't think only one page scanning is not big matter. but it was not
> correct. we got streaming io bug report. the above +1 makes annoying swap
> io. because some server need big backup operation rather much much than
> physical memory size.
>
> example, If vm are dropping 1TB use once pages, 0.1% anon scanning makes
> 1GB scan. and almost server only have some gigabyte swap although it
> has >1TB memory.
>
> If my memory is not correct, please correct me.
>
> My point is, greater or smaller than 16GB isn't essential. all patches
> should have big worth than the downside. The description said "the impact
> sounds not a big deal", nobody disagree it. but it's worth is more little.
> I don't imagine this patch improve anything.

And now I've merged this patch into my local vmscan patch queue.
After solving streaming io issue, I'll put it to mainline.

Thanks.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/