All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mike Rapoprt <rppt@linux.vnet.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	"Kirill A. Shutemov" <kirill@shutemov.name>,
	Andrew Morton <akpm@linux-foundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Pavel Emelyanov <xemul@virtuozzo.com>,
	linux-mm <linux-mm@kvack.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Linux API <linux-api@vger.kernel.org>
Subject: Re: [PATCH] mm: introduce MADV_CLR_HUGEPAGE
Date: Wed, 31 May 2017 16:32:17 +0200	[thread overview]
Message-ID: <20170531143216.GR27783@dhcp22.suse.cz> (raw)
In-Reply-To: <20170531141809.GB302@redhat.com>

On Wed 31-05-17 16:18:09, Andrea Arcangeli wrote:
> On Wed, May 31, 2017 at 03:39:22PM +0300, Mike Rapoport wrote:
> > For the CRIU usecase, disabling THP for a while and re-enabling it
> > back will do the trick, provided VMAs flags are not affected, like
> > in the patch you've sent.  Moreover, we may even get away with
> 
> Are you going to check uname -r to know when the kABI changed in your
> favor (so CRIU cannot ever work with enterprise backports unless you
> expand the uname -r coverage), or how do you know the patch is
> applied?

I would assume such a patch would be backported to stable trees because
to me it sounds like the current semantic is simply broken and needs
fixing anyway but it shouldn't be much different from any other bugs.

This is far from ideal from the "guarantee POV" of course.

> Optimistically assuming people is going to run new CRIU code only on
> new kernels looks very risky, it would leads to silent random memory
> corruption, so I doubt you can get away without a uname -r check.
> 
> This is fairly simple change too, its main cons is that it adds a
> branch to the page fault fast path, the old behavior of the prctl and
> the new madvise were both zero cost.
> 
> Still if the prctl is preferred despite the added branch, to avoid
> uname -r clashes, to me it sounds better to add a new prctl ID and
> keep the old one too. The old one could be implemented the same way as
> the new one if you want to save a few bytes of .text. But the old one
> should probably do a printk_once to print a deprecation warning so the
> old ID with weaker (zero runtime cost) semantics can be removed later.

this would be an option as well although it adds to the mess...

-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Andrea Arcangeli <aarcange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: Mike Rapoprt
	<rppt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
	Vlastimil Babka <vbabka-AlSwsSmVLrQ@public.gmane.org>,
	"Kirill A. Shutemov"
	<kirill-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	"Kirill A. Shutemov"
	<kirill.shutemov-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Pavel Emelyanov <xemul-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>,
	linux-mm <linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org>,
	lkml <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux API <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: [PATCH] mm: introduce MADV_CLR_HUGEPAGE
Date: Wed, 31 May 2017 16:32:17 +0200	[thread overview]
Message-ID: <20170531143216.GR27783@dhcp22.suse.cz> (raw)
In-Reply-To: <20170531141809.GB302-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Wed 31-05-17 16:18:09, Andrea Arcangeli wrote:
> On Wed, May 31, 2017 at 03:39:22PM +0300, Mike Rapoport wrote:
> > For the CRIU usecase, disabling THP for a while and re-enabling it
> > back will do the trick, provided VMAs flags are not affected, like
> > in the patch you've sent.  Moreover, we may even get away with
> 
> Are you going to check uname -r to know when the kABI changed in your
> favor (so CRIU cannot ever work with enterprise backports unless you
> expand the uname -r coverage), or how do you know the patch is
> applied?

I would assume such a patch would be backported to stable trees because
to me it sounds like the current semantic is simply broken and needs
fixing anyway but it shouldn't be much different from any other bugs.

This is far from ideal from the "guarantee POV" of course.

> Optimistically assuming people is going to run new CRIU code only on
> new kernels looks very risky, it would leads to silent random memory
> corruption, so I doubt you can get away without a uname -r check.
> 
> This is fairly simple change too, its main cons is that it adds a
> branch to the page fault fast path, the old behavior of the prctl and
> the new madvise were both zero cost.
> 
> Still if the prctl is preferred despite the added branch, to avoid
> uname -r clashes, to me it sounds better to add a new prctl ID and
> keep the old one too. The old one could be implemented the same way as
> the new one if you want to save a few bytes of .text. But the old one
> should probably do a printk_once to print a deprecation warning so the
> old ID with weaker (zero runtime cost) semantics can be removed later.

this would be an option as well although it adds to the mess...

-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mike Rapoprt <rppt@linux.vnet.ibm.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	"Kirill A. Shutemov" <kirill@shutemov.name>,
	Andrew Morton <akpm@linux-foundation.org>,
	Arnd Bergmann <arnd@arndb.de>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Pavel Emelyanov <xemul@virtuozzo.com>,
	linux-mm <linux-mm@kvack.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Linux API <linux-api@vger.kernel.org>
Subject: Re: [PATCH] mm: introduce MADV_CLR_HUGEPAGE
Date: Wed, 31 May 2017 16:32:17 +0200	[thread overview]
Message-ID: <20170531143216.GR27783@dhcp22.suse.cz> (raw)
In-Reply-To: <20170531141809.GB302@redhat.com>

On Wed 31-05-17 16:18:09, Andrea Arcangeli wrote:
> On Wed, May 31, 2017 at 03:39:22PM +0300, Mike Rapoport wrote:
> > For the CRIU usecase, disabling THP for a while and re-enabling it
> > back will do the trick, provided VMAs flags are not affected, like
> > in the patch you've sent.  Moreover, we may even get away with
> 
> Are you going to check uname -r to know when the kABI changed in your
> favor (so CRIU cannot ever work with enterprise backports unless you
> expand the uname -r coverage), or how do you know the patch is
> applied?

I would assume such a patch would be backported to stable trees because
to me it sounds like the current semantic is simply broken and needs
fixing anyway but it shouldn't be much different from any other bugs.

This is far from ideal from the "guarantee POV" of course.

> Optimistically assuming people is going to run new CRIU code only on
> new kernels looks very risky, it would leads to silent random memory
> corruption, so I doubt you can get away without a uname -r check.
> 
> This is fairly simple change too, its main cons is that it adds a
> branch to the page fault fast path, the old behavior of the prctl and
> the new madvise were both zero cost.
> 
> Still if the prctl is preferred despite the added branch, to avoid
> uname -r clashes, to me it sounds better to add a new prctl ID and
> keep the old one too. The old one could be implemented the same way as
> the new one if you want to save a few bytes of .text. But the old one
> should probably do a printk_once to print a deprecation warning so the
> old ID with weaker (zero runtime cost) semantics can be removed later.

this would be an option as well although it adds to the mess...

-- 
Michal Hocko
SUSE Labs

--
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-31 14:32 UTC|newest]

Thread overview: 117+ 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  6:12 ` Mike Rapoport
2017-05-22  7:26 ` Anshuman Khandual
2017-05-22  7:26   ` Anshuman Khandual
2017-05-22  8:12   ` Mike Rapoport
2017-05-22  8:12     ` Mike Rapoport
2017-05-22 11:42 ` Kirill A. Shutemov
2017-05-22 11:42   ` Kirill A. Shutemov
2017-05-22 13:36   ` Mike Rapoport
2017-05-22 13:36     ` Mike Rapoport
2017-05-22 13:44     ` Kirill A. Shutemov
2017-05-22 13:44       ` Kirill A. Shutemov
2017-05-22 13:55     ` Michal Hocko
2017-05-22 13:55       ` Michal Hocko
2017-05-22 14:29       ` Mike Rapoport
2017-05-22 14:29         ` Mike Rapoport
2017-05-22 15:52         ` Vlastimil Babka
2017-05-22 15:52           ` Vlastimil Babka
2017-05-22 17:51           ` Mike Rapoport
2017-05-22 17:51             ` Mike Rapoport
2017-05-24  7:50           ` Mike Rapoport
2017-05-24  7:50             ` Mike Rapoport
2017-05-24  7:58             ` Vlastimil Babka
2017-05-24  7:58               ` Vlastimil Babka
2017-05-24  7:58               ` Vlastimil Babka
2017-05-24 10:39               ` Mike Rapoport
2017-05-24 10:39                 ` Mike Rapoport
2017-05-24 11:18                 ` Michal Hocko
2017-05-24 11:18                   ` Michal Hocko
2017-05-24 14:25                   ` Pavel Emelyanov
2017-05-24 14:25                     ` Pavel Emelyanov
2017-05-24 14:27                   ` Mike Rapoport
2017-05-24 14:27                     ` Mike Rapoport
2017-05-24 15:22                     ` Andrea Arcangeli
2017-05-24 15:22                       ` Andrea Arcangeli
2017-05-30  7:44                     ` Michal Hocko
2017-05-30  7:44                       ` Michal Hocko
2017-05-30  7:44                       ` Michal Hocko
2017-05-30 10:19                       ` Mike Rapoport
2017-05-30 10:19                         ` Mike Rapoport
2017-05-30 10:19                         ` Mike Rapoport
2017-05-30 10:39                         ` Michal Hocko
2017-05-30 10:39                           ` Michal Hocko
2017-05-30 14:04                           ` Andrea Arcangeli
2017-05-30 14:04                             ` Andrea Arcangeli
2017-05-30 14:04                             ` Andrea Arcangeli
2017-05-30 14:39                             ` Michal Hocko
2017-05-30 14:39                               ` Michal Hocko
2017-05-30 14:56                               ` Michal Hocko
2017-05-30 14:56                                 ` Michal Hocko
2017-05-30 14:56                                 ` Michal Hocko
2017-05-30 16:06                                 ` Andrea Arcangeli
2017-05-30 16:06                                   ` Andrea Arcangeli
2017-05-30 16:06                                   ` Andrea Arcangeli
2017-05-31  6:30                                   ` Vlastimil Babka
2017-05-31  6:30                                     ` Vlastimil Babka
2017-05-31  8:24                                     ` Michal Hocko
2017-05-31  8:24                                       ` Michal Hocko
2017-05-31  9:27                                       ` Mike Rapoport
2017-05-31  9:27                                         ` Mike Rapoport
2017-05-31 10:24                                         ` Michal Hocko
2017-05-31 10:24                                           ` Michal Hocko
2017-05-31 10:22                                       ` Michal Hocko
2017-05-31 10:22                                         ` Michal Hocko
2017-05-31 10:22                                         ` Michal Hocko
2017-06-01 11:00                                       ` Mike Rapoport
2017-06-01 11:00                                         ` Mike Rapoport
2017-06-01 12:27                                         ` Michal Hocko
2017-06-01 12:27                                           ` Michal Hocko
2017-05-30 15:43                               ` Andrea Arcangeli
2017-05-30 15:43                                 ` Andrea Arcangeli
2017-05-31 12:08                                 ` Michal Hocko
2017-05-31 12:08                                   ` Michal Hocko
2017-05-31 12:39                                   ` Mike Rapoprt
2017-05-31 12:39                                     ` Mike Rapoprt
2017-05-31 12:39                                     ` Mike Rapoprt
2017-05-31 14:18                                     ` Andrea Arcangeli
2017-05-31 14:18                                       ` Andrea Arcangeli
2017-05-31 14:32                                       ` Michal Hocko [this message]
2017-05-31 14:32                                         ` Michal Hocko
2017-05-31 14:32                                         ` Michal Hocko
2017-05-31 15:46                                         ` Andrea Arcangeli
2017-05-31 15:46                                           ` Andrea Arcangeli
2017-06-01  6:58                                       ` Mike Rapoport
2017-06-01  6:58                                         ` Mike Rapoport
2017-06-01  6:58                                         ` Mike Rapoport
2017-05-31 14:19                                     ` Michal Hocko
2017-05-31 14:19                                       ` Michal Hocko
2017-05-31 14:19                                       ` Michal Hocko
2017-06-01  6:53                               ` Mike Rapoport
2017-06-01  6:53                                 ` Mike Rapoport
2017-06-01  8:09                                 ` Michal Hocko
2017-06-01  8:09                                   ` Michal Hocko
2017-06-01  8:35                                   ` Mike Rapoport
2017-06-01  8:35                                     ` Mike Rapoport
2017-06-01  8:35                                     ` Mike Rapoport
2017-06-01 13:45                                   ` Andrea Arcangeli
2017-06-01 13:45                                     ` Andrea Arcangeli
2017-06-02  9:11                                     ` Mike Rapoport
2017-06-02  9:11                                       ` Mike Rapoport
2017-05-31  9:08                           ` Mike Rapoport
2017-05-31  9:08                             ` Mike Rapoport
2017-05-31  9:08                             ` Mike Rapoport
2017-05-31 12:05                             ` Michal Hocko
2017-05-31 12:05                               ` Michal Hocko
2017-05-31 12:25                               ` Mike Rapoprt
2017-05-31 12:25                                 ` Mike Rapoprt
2017-05-24 11:31                 ` Vlastimil Babka
2017-05-24 11:31                   ` Vlastimil Babka
2017-05-24 14:28                   ` Pavel Emelyanov
2017-05-24 14:28                     ` Pavel Emelyanov
2017-05-24 14:54                     ` Vlastimil Babka
2017-05-24 14:54                       ` Vlastimil Babka
2017-05-24 15:13                       ` Mike Rapoport
2017-05-24 15:13                         ` Mike Rapoport
2017-05-22 15:33 ` kbuild test robot
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=20170531143216.GR27783@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --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-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rppt@linux.vnet.ibm.com \
    --cc=vbabka@suse.cz \
    --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 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.