linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@linux.vnet.ibm.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Pavel Emelyanov <xemul@virtuozzo.com>,
	linux-mm <linux-mm@kvack.org>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] mm: introduce MADV_CLR_HUGEPAGE
Date: Mon, 22 May 2017 16:36:00 +0300	[thread overview]
Message-ID: <20170522133559.GE27382@rapoport-lnx> (raw)
In-Reply-To: <20170522114243.2wrdbncilozygbpl@node.shutemov.name>

On Mon, May 22, 2017 at 02:42:43PM +0300, Kirill A. Shutemov wrote:
> On Mon, May 22, 2017 at 09:12:42AM +0300, Mike Rapoport wrote:
> > Currently applications can explicitly enable or disable THP for a memory
> > region using MADV_HUGEPAGE or MADV_NOHUGEPAGE. However, once either of
> > these advises is used, the region will always have
> > VM_HUGEPAGE/VM_NOHUGEPAGE flag set in vma->vm_flags.
> > The MADV_CLR_HUGEPAGE resets both these flags and allows managing THP in
> > the region according to system-wide settings.
> 
> Seems reasonable. But could you describe an use-case when it's useful in
> real world.

My use-case was combination of pre- and post-copy migration of containers
with CRIU.
In this case we populate a part of a memory region with data that was saved
during the pre-copy stage. Afterwards, the region is registered with
userfaultfd and we expect to get page faults for the parts of the region
that were not yet populated. However, khugepaged collapses the pages and
the page faults we would expect do not occur.

We could have used MADV_NOHUGEPAGE before populating the region with the
pre-copy data, but then, in the end, the restored application will be resumed
with vma->vm_flags different from the ones it had when it was frozen.

Another possibility I've considered was to register the region with
userfaultfd before populating it with data, but in that case we get the
overhead of UFFD_EVENT_PAGEFAULT + UFFDIO_{COPY,ZEROPAGE} for nothing :(

> And the name is bad. But I don't have better suggestion. At least do not
> abbreviate CLEAR. Saving two letters doesn't worth it.
> 
> Maybe RESET instead?

I hesitated between CLR and RST, and CLR was chosen pretty much with coin
toss :)
I'm ok with RESET, which might be a bit more descriptive than CLEAR.
 
> -- 
>  Kirill A. Shutemov
> 

--
Sincerely yours,
Mike.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2017-05-22 13:36 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-22  6:12 [PATCH] mm: introduce MADV_CLR_HUGEPAGE Mike Rapoport
2017-05-22  7:26 ` Anshuman Khandual
2017-05-22  8:12   ` Mike Rapoport
2017-05-22 11:42 ` Kirill A. Shutemov
2017-05-22 13:36   ` Mike Rapoport [this message]
2017-05-22 13:44     ` Kirill A. Shutemov
2017-05-22 13:55     ` Michal Hocko
2017-05-22 14:29       ` Mike Rapoport
2017-05-22 15:52         ` Vlastimil Babka
2017-05-22 17:51           ` Mike Rapoport
2017-05-24  7:50           ` Mike Rapoport
2017-05-24  7:58             ` Vlastimil Babka
2017-05-24 10:39               ` Mike Rapoport
2017-05-24 11:18                 ` Michal Hocko
2017-05-24 14:25                   ` Pavel Emelyanov
2017-05-24 14:27                   ` Mike Rapoport
2017-05-24 15:22                     ` Andrea Arcangeli
2017-05-30  7:44                     ` Michal Hocko
2017-05-30 10:19                       ` Mike Rapoport
2017-05-30 10:39                         ` Michal Hocko
2017-05-30 14:04                           ` Andrea Arcangeli
2017-05-30 14:39                             ` Michal Hocko
2017-05-30 14:56                               ` Michal Hocko
2017-05-30 16:06                                 ` Andrea Arcangeli
2017-05-31  6:30                                   ` Vlastimil Babka
2017-05-31  8:24                                     ` Michal Hocko
2017-05-31  9:27                                       ` Mike Rapoport
2017-05-31 10:24                                         ` Michal Hocko
2017-05-31 10:22                                       ` Michal Hocko
2017-06-01 11:00                                       ` Mike Rapoport
2017-06-01 12:27                                         ` Michal Hocko
2017-05-30 15:43                               ` Andrea Arcangeli
2017-05-31 12:08                                 ` Michal Hocko
2017-05-31 12:39                                   ` Mike Rapoprt
2017-05-31 14:18                                     ` Andrea Arcangeli
2017-05-31 14:32                                       ` Michal Hocko
2017-05-31 15:46                                         ` Andrea Arcangeli
2017-06-01  6:58                                       ` Mike Rapoport
2017-05-31 14:19                                     ` Michal Hocko
2017-06-01  6:53                               ` Mike Rapoport
2017-06-01  8:09                                 ` Michal Hocko
2017-06-01  8:35                                   ` Mike Rapoport
2017-06-01 13:45                                   ` Andrea Arcangeli
2017-06-02  9:11                                     ` Mike Rapoport
2017-05-31  9:08                           ` Mike Rapoport
2017-05-31 12:05                             ` Michal Hocko
2017-05-31 12:25                               ` Mike Rapoprt
2017-05-24 11:31                 ` Vlastimil Babka
2017-05-24 14:28                   ` Pavel Emelyanov
2017-05-24 14:54                     ` Vlastimil Babka
2017-05-24 15:13                       ` Mike Rapoport
2017-05-22 15:33 ` kbuild test robot

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=20170522133559.GE27382@rapoport-lnx \
    --to=rppt@linux.vnet.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=xemul@virtuozzo.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).