Re: [PATCH]mmap: improve scalability for updating vm_committed_as

From: Andrew Morton
Date: Wed Mar 30 2011 - 23:06:20 EST


On Thu, 31 Mar 2011 10:57:19 +0800 Shaohua Li <shaohua.li@xxxxxxxxx> wrote:

> On Thu, 2011-03-31 at 10:34 +0800, Andrew Morton wrote:
> > On Thu, 31 Mar 2011 08:56:43 +0800 Shaohua Li <shaohua.li@xxxxxxxxx> wrote:
> >
> > > > This is a big change, and it wasn't even changelogged. It's
> > > > potentially a tremendous increase in the expense of a read from
> > > > /proc/meminfo, which is a file that lots of tools will be polling.
> > > > Many of those tools we don't even know about or have access to.
> > > Assume we don't read /proc/meminfo too often.
> >
> > That's a poor assumption. top(1) and vmstat(8) read it, for a start.
> > There will be zillions of locally-developed monitoring tools which read
> > meminfo.
> >
> > Now, it could be that something under meminfo reads _already_ does a
> > massive walk across all CPUs. If so then we'll have already trained
> > people to avoid reading /proc/meminfo and this change might be
> > acceptable.
> >
> > But if this isn't the case then it's quite likely that this change will
> > hurt some people quite a lot. And, unfortunately, the sort of people
> > who we will hurt tend to be people who don't run our stuff until a long
> > time (years) after we wrote it. By which time it's going to be quite
> > expensive to get a fix down the chain and into their hands.
> Just looked at the code. nr_blockdev_pages() of si_meminfo iterate all
> block devices. For people who care about the time, their system must
> have more block devices than CPUs.

How can we be sure of that?

> so this isn't a big issue?

Well it might be. Experience tells us that some people are likely to
get bitten by this.

It's far safer and saner to find a solution which doesn't have big fat
failure modes!

Also, we don't (yet) know what we're *gaining* for this big fat failure
mode.

--
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/