Re: [PATCH 1/2] mm: Export vm_committed_as

Michal Hocko
2012-11-06T14:46:48Z

On Mon 05-11-12 14:33:12, David Rientjes wrote:
> On Mon, 5 Nov 2012, KY Srinivasan wrote:
>
> > The Hyper-V host has a policy engine for managing available physical memory across
> > competing virtual machines. This policy decision is based on a number of parameters
> > including the memory pressure reported by the guest. Currently, the pressure calculation is
> > based on the memory commitment made by the guest. From what I can tell, the ratio of
> > currently allocated physical memory to the current memory commitment made by the guest
> > (vm_committed_as) is used as one of the parameters in making the memory balancing decision on
> > the host. This is what Windows guests report to the host. So, I need some measure of memory
> > commitments made by the Linux guest. This is the reason I want export vm_committed_as.
> >
>
> I don't think you should export the symbol itself to modules but rather a
> helper function that returns s64 that just wraps
> percpu_counter_read_positive() which your driver could use instead.

Agreed, we should rather make sure that nobody can manipulate the value
from modules.

> (And why percpu_counter_read_positive() returns a signed type is a
> mystery.)

Strange indeed. The last commit changed it from long to s64 to suport
values bigger than 2^31 but even the original long doesn't make much
sense to me.

--
Michal Hocko
SUSE Labs