Re: [PATCH v3 2/2] ksm: add profit monitoring documentation

From: CGEL
Date: Wed Aug 24 2022 - 08:52:38 EST


On Wed, Aug 24, 2022 at 04:38:26PM +0700, Bagas Sanjaya wrote:
> On Wed, Aug 24, 2022 at 07:08:21AM +0000, xu xin wrote:
> > +1) How to determine whether KSM save memory or consume memory in system-wide
> > +range? Here is a simple approximate calculation for reference:
> > +
> > + general_profit =~ pages_sharing * sizeof(page) - (all_rmap_items) *
> > + sizeof(rmap_item);
> > +
> > +where all_rmap_items can be easily obtained by summing ``pages_sharing``,
> > +``pages_shared``, ``pages_unshared`` and ``pages_volatile``.
> > +
> > +2) The KSM profit inner a single process can be similarly obtained by the
> > +following approximate calculation:
> > +
> > + process_profit =~ ksm_merging_sharing * sizeof(page) -
> > + ksm_rmp_items * sizeof(rmap_item).
> > +
>
> The profit formula above can be put into code blocks. Also, align the
> numbered list texts, like:

Thank you for corrections, done.

>
> ---- >8 ----
>
> diff --git a/Documentation/admin-guide/mm/ksm.rst b/Documentation/admin-guide/mm/ksm.rst
> index 40bc11f6fa15fa..7e3092fe407e37 100644
> --- a/Documentation/admin-guide/mm/ksm.rst
> +++ b/Documentation/admin-guide/mm/ksm.rst
> @@ -194,22 +194,22 @@ be merged, but some may not be abled to be merged after being checked
> several times, which are unprofitable memory consumed.
>
> 1) How to determine whether KSM save memory or consume memory in system-wide
> -range? Here is a simple approximate calculation for reference:
> + range? Here is a simple approximate calculation for reference::
>
> general_profit =~ pages_sharing * sizeof(page) - (all_rmap_items) *
> sizeof(rmap_item);
>
> -where all_rmap_items can be easily obtained by summing ``pages_sharing``,
> -``pages_shared``, ``pages_unshared`` and ``pages_volatile``.
> + where all_rmap_items can be easily obtained by summing ``pages_sharing``,
> + ``pages_shared``, ``pages_unshared`` and ``pages_volatile``.
>
> 2) The KSM profit inner a single process can be similarly obtained by the
> -following approximate calculation:
> + following approximate calculation::
>
> process_profit =~ ksm_merging_sharing * sizeof(page) -
> ksm_rmp_items * sizeof(rmap_item).
>
> -where both ksm_merging_sharing and ksm_rmp_items are shown under the directory
> -``/proc/<pid>/``.
> + where both ksm_merging_sharing and ksm_rmp_items are shown under the
> + directory ``/proc/<pid>/``.
>
> From the perspective of application, a high ratio of ``ksm_rmp_items`` to
> ``ksm_merging_sharing`` means a bad madvise-applied policy, so developers or
>
> Thanks.
>
> --
> An old man doll... just what I always wanted! - Clara