From: CGEL <cgel.zte@gmail.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: akpm@linux-foundation.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, corbet@lwn.net,
xu xin <xu.xin16@zte.com.cn>, Yang Yang <yang.yang29@zte.com.cn>,
Ran Xiaokai <ran.xiaokai@zte.com.cn>,
wangyong <wang.yong12@zte.com.cn>,
Yunkai Zhang <zhang.yunkai@zte.com.cn>
Subject: Re: [PATCH v6] mm/ksm: introduce ksm_force for each process
Date: Fri, 13 May 2022 06:50:31 +0000 [thread overview]
Message-ID: <627dffb8.1c69fb81.2daf.2c76@mx.google.com> (raw)
In-Reply-To: <Yn12/ZMyQEnSh0Ge@casper.infradead.org>
On Thu, May 12, 2022 at 10:07:09PM +0100, Matthew Wilcox wrote:
> On Tue, May 10, 2022 at 12:22:42PM +0000, cgel.zte@gmail.com wrote:
> > +++ b/Documentation/admin-guide/mm/ksm.rst
> > @@ -32,7 +32,7 @@ are swapped back in: ksmd must rediscover their identity and merge again).
> > Controlling KSM with madvise
> > ============================
> >
> > -KSM only operates on those areas of address space which an application
> > +KSM can operates on those areas of address space which an application
>
> "can operate on"
>
Thanks.
> > + * Force anonymous pages of this mm to be involved in KSM merging
> > + * without explicitly calling madvise.
> > + */
> > + if (!test_bit(MMF_VM_MERGEABLE, &mm->flags))
> > + err = __ksm_enter(mm);
> > + if (!err)
> > + mm->ksm_force = force;
> > + }
> > +
> > + mmap_write_unlock(mm);
> > + }
>
> There's a much simpler patch hiding inside this complicated one.
>
> if (force) {
> set_bit(MMF_VM_MERGEABLE, &mm->flags));
> for each VMA
> set VM_MERGEABLE;
> err = __ksm_enter(mm);
> } else {
> clear_bit(MMF_VM_MERGEABLE, &mm->flags));
> for each VMA
> clear VM_MERGEABLE;
> }
>
> ... and all the extra complications you added go away.
Sorry, but I don't think that is a better way of implementation, although it
is simpler. It overrides the intention of code ifself which is
unrecoverable. For example, if a program which madvise just a part of VMAs
(not all) as MERGEABLE then its ksm_force is turned on, and subsequently
it ksm_force is turned off again, the "madvised MERGEBLE" cannot be
recoverd.
===========================================================================
I have a idea: can we refer to the interface of THP? Substitute ksm_force
with ksm_enabled and give three values to it:
1) always: force all anonymous VMAs of this process to be scanned.
2) madvise: the default state, unless user code call madvise, don't
scan this process.
3) never: never be involed in KSM.
===========================================================================
How about this?
prev parent reply other threads:[~2022-05-13 6:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-10 12:22 [PATCH v6] mm/ksm: introduce ksm_force for each process cgel.zte
2022-05-10 13:30 ` Oleksandr Natalenko
2022-05-11 3:12 ` CGEL
2022-05-12 22:37 ` Andrew Morton
2022-05-13 9:51 ` Oleksandr Natalenko
2022-05-13 20:32 ` Andrew Morton
2022-05-13 20:53 ` Oleksandr Natalenko
2022-05-12 21:07 ` Matthew Wilcox
2022-05-13 6:50 ` CGEL [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=627dffb8.1c69fb81.2daf.2c76@mx.google.com \
--to=cgel.zte@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ran.xiaokai@zte.com.cn \
--cc=wang.yong12@zte.com.cn \
--cc=willy@infradead.org \
--cc=xu.xin16@zte.com.cn \
--cc=yang.yang29@zte.com.cn \
--cc=zhang.yunkai@zte.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.