All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jason J. Herne" <jjherne@linux.vnet.ibm.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>
Cc: aarcange@redhat.com, akpm@linux-foundation.org,
	qemu-devel <qemu-devel@nongnu.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] mm: Loosen MADV_NOHUGEPAGE to enable Qemu postcopy on s390
Date: Thu, 19 Nov 2015 09:30:42 -0500	[thread overview]
Message-ID: <564DDD12.3070302@linux.vnet.ibm.com> (raw)
In-Reply-To: <20151119131011.GD2653@work-vm>

On 11/19/2015 08:10 AM, Dr. David Alan Gilbert wrote:
> * Christian Borntraeger (borntraeger@de.ibm.com) wrote:
>> On 11/18/2015 02:31 PM, Vlastimil Babka wrote:
>>> [CC += linux-api@vger.kernel.org]
...
> Can you tell me if the following works for you:
>
>
>  From 545809a18fa768eccdaafe9bd842490c3390b00c Mon Sep 17 00:00:00 2001
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> Date: Thu, 19 Nov 2015 12:05:36 +0000
> Subject: [PATCH] Assume madvise for (no)hugepage works
>
> madvise() returns EINVAL in the case of many failures, but also
> returns it in cases where the host kernel doesn't have THP enabled.
> Postcopy only really cares that THP is off before it detects faults,
> and turns it back on afterwards; so we're going to have
> to assume that if the madvise fails then the host just doesn't do
> THP and we can carry on with the postcopy.
>
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
>   migration/postcopy-ram.c | 10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index 22d6b18..3946aa9 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -241,10 +241,7 @@ static int cleanup_range(const char *block_name, void *host_addr,
>        * We turned off hugepage for the precopy stage with postcopy enabled
>        * we can turn it back on now.
>        */
> -    if (qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE)) {
> -        error_report("%s HUGEPAGE: %s", __func__, strerror(errno));
> -        return -1;
> -    }
> +    qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE);
>
>       /*
>        * We can also turn off userfault now since we should have all the
> @@ -345,10 +342,7 @@ static int nhp_range(const char *block_name, void *host_addr,
>        * do delete areas of the page, even if THP thinks a hugepage would
>        * be a good idea, so force hugepages off.
>        */
> -    if (qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE)) {
> -        error_report("%s: NOHUGEPAGE: %s", __func__, strerror(errno));
> -        return -1;
> -    }
> +    qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE);
>
>       return 0;
>   }
>

I tried this without my madvise kernel patch, and was able to get by the 
problem as expected.

We still need the kernel patch set "Allow gmap fault to retry​" as 
posted to linux-mm to get
userfaultfd support playing nicely with s390 async page faults. But that 
is a separate problem
entirely.

Tested-by: Jason J. Herne <jjherne@linux.vnet.ibm.com>

-- 
-- Jason J. Herne (jjherne@linux.vnet.ibm.com)

      reply	other threads:[~2015-11-19 14:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-12 15:18 [PATCH] mm: Loosen MADV_NOHUGEPAGE to enable Qemu postcopy on s390 Jason J. Herne
2015-11-12 16:45 ` Christian Borntraeger
2015-11-13 22:58 ` David Rientjes
     [not found] ` <1447341516-18076-1-git-send-email-jjherne-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2015-11-18 13:31   ` Vlastimil Babka
2015-11-18 13:31     ` Vlastimil Babka
2015-11-19  8:22     ` Christian Borntraeger
2015-11-19  8:22       ` [Qemu-devel] " Christian Borntraeger
     [not found]       ` <564D86AE.1010305-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2015-11-19  9:31         ` Vlastimil Babka
2015-11-19  9:31           ` [Qemu-devel] " Vlastimil Babka
2015-11-19  9:31           ` Vlastimil Babka
2015-11-19  9:43       ` Dr. David Alan Gilbert
2015-11-19  9:43         ` [Qemu-devel] " Dr. David Alan Gilbert
2015-11-19 13:10       ` Dr. David Alan Gilbert
2015-11-19 14:30         ` Jason J. Herne [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=564DDD12.3070302@linux.vnet.ibm.com \
    --to=jjherne@linux.vnet.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=borntraeger@de.ibm.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=vbabka@suse.cz \
    /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.