Re: [PATCH v2] mm/smaps: add Pss_Dirty

From: Vincent Whitchurch
Date: Mon Jun 20 2022 - 04:15:30 EST


On Mon, Jun 20, 2022 at 10:12:50AM +0200, Vincent Whitchurch wrote:
> Pss is the sum of the sizes of clean and dirty private pages, and the
> proportional sizes of clean and dirty shared pages:
>
> Private = Private_Dirty + Private_Clean
> Shared_Proportional = Shared_Dirty_Proportional + Shared_Clean_Proportional
> Pss = Private + Shared_Proportional
>
> The Shared*Proportional fields are not present in smaps, so it is not
> always possible to determine how much of the Pss is from dirty pages and
> how much is from clean pages. This information can be useful for
> measuring memory usage for the purpose of optimisation, since clean
> pages can usually be discarded by the kernel immediately while dirty
> pages cannot.
>
> The smaps routines in the kernel already have access to this data, so
> add a Pss_Dirty to show it to userspace. Pss_Clean is not added since
> it can be calculated from Pss and Pss_Dirty.
>
> Signed-off-by: Vincent Whitchurch <vincent.whitchurch@xxxxxxxx>
> ---

I forgot to include the changelog:

v2:
- Update Documentation/ABI/testing/procfs-smaps_rollup and
Documentation/filesystems/proc.rst.
- Move Pss_Dirty next to Pss so that the location is consistent between
non-rollup and rollup (since the later has some extra Pss* fields).