Re: [PATCH 2/2] Drivers: hv: Add Hyper-V balloon driver

Andrew Morton
2012-10-10T01:13:20Z

On Wed, 10 Oct 2012 00:09:12 +0000 KY Srinivasan <kys@microsoft.com> wrote:

> > > + if (!pg) {
> > > + *alloc_error = true;
> > > + return i * alloc_unit;
> > > + }
> > > +
> > > + totalram_pages -= alloc_unit;
> >
> > Well, I'd consider totalram_pages to be an mm-private thing which drivers
> > shouldn't muck with. Why is this done?
>
> By modifying the totalram_pages, the information presented in /proc/meminfo
> correctly reflects what is currently assigned to the guest (MemTotal).

eh? /proc/meminfo:MemTotal tells you the total memory in the machine.
The only thing which should change it after boot is memory hotplug.

Modifying it in this manner puts the statistic into a state know as
"wrong". And temporarily modifying it in this fashion will cause the
tremendous amount of initialisation code which relies upon
totalram_pages for sizing to also enter the "wrong" state.

Why on earth do balloon drivers do this? If the amount of memory which
is consumed by balloons is interesting then it should be exported via a
standalone metric, not by mucking with totalram_pages.