Fix vmalloc memory usage parsing.

The size in /proc/vmallocinfo actually represents the size of
the virtual region and not the size of memory allocated for the same.
So, we have been over counting vmalloc memory usage in most cases
leading into negative "Lost RAM".

Moreover, as of kernel 4.14, binder allocations that were ignored before
are now counted as vmalloc allocations since binder started using the
'vmalloc' flag instead of 'ioremap' flag for its vm area allocations.

  See: https://android.googlesource.com/kernel/common/+/86eda3864a704a98d5444ae60654b898731bfea5

.. This makes the problem even worse for devices that are running
kernel 4.14 and beyond.

Fix that by looking specifically for "pages=" in each line of
/proc/vmallocinfo to get the number of physical pages associated with
the particular allocation.

Bug: 119639955
Test: 'dumpsys meminfo' before and after on cuttlefish running 4.14 kernel.
Result:
  Lost RAM (before) : -151,462K
  Lost RAM (after) : -5,312K

Change-Id: I3d677572613392383ee8ea0968bde0e0913c42cf
Signed-off-by: Sandeep Patil <sspatil@google.com>
1 file changed