All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <aarcange@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Alexey Perevalov <a.perevalov@samsung.com>,
	qemu-devel@nongnu.org, quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 00/16] Postcopy: Hugepage support
Date: Mon, 27 Feb 2017 16:00:15 +0100	[thread overview]
Message-ID: <20170227150015.GB5816@redhat.com> (raw)
In-Reply-To: <20170227112657.GE2350@work-vm>

Hello,

On Mon, Feb 27, 2017 at 11:26:58AM +0000, Dr. David Alan Gilbert wrote:
> * Alexey Perevalov (a.perevalov@samsung.com) wrote:
> > Also if I'm not wrong, commands and pages are transferred over the same
> > socket. Why not to use OOB TCP in this case for commands?
> 
> My understanding was that OOB was limited to quite small transfers
> I think the right way is to use a separate FD for the requests, so I'll
> do it after Juan's multifd series.

OOB would do the trick and we considered it some time ago, but we need
this to work over any network pipe including TLS (out of control of
qemu but setup by libvirt), and OOB being a protocol level TCP
specific feature in the kernel, I don't think there's any way to
access it through TLS APIs abstractions. Plus like David said there
are issues with the size of the transfer.

Currently reducing tcp_wmem sysctl to 3MiB sounds best (to give a
little room for the headers of the packets required to transfer
2M). For 4k pages it can be reduced perhaps to 6k/10k.

> Although even then I'm not sure how it will behave; the other thing
> might be to throttle the background page transfer so the FIFO isn't
> as full.

Yes, we didn't go in this direction because it would be only a short
term solution.

The kernel has optimal throttling in the TCP stack already, trying to
throttle against it in qemu so that the tcp_wmem queue doesn't
fill, doesn't look attractive.

With the multisocket implementation, with tc qdisc you can further
make sure that you've got the userfault socket with top priority and
delivered immediately, but normally it will not be necessary and
fq_codel (should be the userland post-boot default by now, kernel has
still an obsolete default) should do a fine job by default. Having a
proper tc qdisc default will matter once we switch to the multisocket
implementation so you'll have to pay attention to that, but that's
something to pay attention to regardless, if you have significant
network load from multiple sockets in the equation, nothing out of the
ordinary.

Thanks,
Andrea

  reply	other threads:[~2017-02-27 15:00 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-06 17:32 [Qemu-devel] [PATCH v2 00/16] Postcopy: Hugepage support Dr. David Alan Gilbert (git)
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 01/16] postcopy: Transmit ram size summary word Dr. David Alan Gilbert (git)
2017-02-24 10:16   ` Laurent Vivier
2017-02-24 13:10   ` Juan Quintela
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 02/16] postcopy: Transmit and compare individual page sizes Dr. David Alan Gilbert (git)
2017-02-24 10:31   ` Laurent Vivier
2017-02-24 10:48     ` Dr. David Alan Gilbert
2017-02-24 10:50       ` Laurent Vivier
2017-02-24 13:13   ` Juan Quintela
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 03/16] postcopy: Chunk discards for hugepages Dr. David Alan Gilbert (git)
2017-02-24 13:48   ` Laurent Vivier
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 04/16] exec: ram_block_discard_range Dr. David Alan Gilbert (git)
2017-02-24 13:14   ` Juan Quintela
2017-02-24 14:04   ` Laurent Vivier
2017-02-24 16:50     ` Dr. David Alan Gilbert
2017-02-24 14:08   ` Laurent Vivier
2017-02-24 15:35     ` Dr. David Alan Gilbert
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 05/16] postcopy: enhance ram_block_discard_range for hugepages Dr. David Alan Gilbert (git)
2017-02-24 13:20   ` Juan Quintela
2017-02-24 13:44     ` Dr. David Alan Gilbert
2017-02-24 14:20   ` Laurent Vivier
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 06/16] Fold postcopy_ram_discard_range into ram_discard_range Dr. David Alan Gilbert (git)
2017-02-24 13:21   ` Juan Quintela
2017-02-24 14:26   ` Laurent Vivier
2017-02-24 16:02     ` Dr. David Alan Gilbert
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 07/16] postcopy: Record largest page size Dr. David Alan Gilbert (git)
2017-02-24 13:22   ` Juan Quintela
2017-02-24 14:37   ` Laurent Vivier
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 08/16] postcopy: Plumb pagesize down into place helpers Dr. David Alan Gilbert (git)
2017-02-24 13:24   ` Juan Quintela
2017-02-24 15:10   ` Laurent Vivier
2017-02-24 15:21     ` Dr. David Alan Gilbert
2017-02-06 17:32 ` [Qemu-devel] [PATCH v2 09/16] postcopy: Use temporary for placing zero huge pages Dr. David Alan Gilbert (git)
2017-02-24 15:31   ` Laurent Vivier
2017-02-24 15:46     ` Dr. David Alan Gilbert
2017-02-24 17:24       ` Laurent Vivier
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 10/16] postcopy: Load huge pages in one go Dr. David Alan Gilbert (git)
2017-02-24 15:54   ` Laurent Vivier
2017-02-24 16:32     ` Dr. David Alan Gilbert
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 11/16] postcopy: Mask fault addresses to huge page boundary Dr. David Alan Gilbert (git)
2017-02-24 15:59   ` Laurent Vivier
2017-02-24 16:34     ` Dr. David Alan Gilbert
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 12/16] postcopy: Send whole huge pages Dr. David Alan Gilbert (git)
2017-02-24 16:06   ` Laurent Vivier
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 13/16] postcopy: Allow hugepages Dr. David Alan Gilbert (git)
2017-02-24 16:07   ` Laurent Vivier
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 14/16] postcopy: Update userfaultfd.h header Dr. David Alan Gilbert (git)
2017-02-24 16:09   ` Laurent Vivier
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 15/16] postcopy: Check for userfault+hugepage feature Dr. David Alan Gilbert (git)
2017-02-24 16:12   ` Laurent Vivier
2017-02-06 17:33 ` [Qemu-devel] [PATCH v2 16/16] postcopy: Add doc about hugepages and postcopy Dr. David Alan Gilbert (git)
2017-02-24 13:25   ` Juan Quintela
2017-02-24 16:12   ` Laurent Vivier
2017-02-06 17:45 ` [Qemu-devel] [PATCH v2 00/16] Postcopy: Hugepage support Dr. David Alan Gilbert
2017-02-13 17:11   ` Alexey Perevalov
2017-02-13 17:57     ` Andrea Arcangeli
2017-02-13 18:10       ` Andrea Arcangeli
2017-02-13 21:59         ` Mike Kravetz
2017-02-14 14:48       ` Alexey Perevalov
2017-02-17 16:47         ` Andrea Arcangeli
2017-02-20 16:01           ` Alexey Perevalov
2017-02-13 18:16     ` Dr. David Alan Gilbert
2017-02-14 16:22       ` Alexey Perevalov
2017-02-14 19:34         ` Dr. David Alan Gilbert
2017-02-21  7:31           ` Alexey Perevalov
2017-02-21 10:03             ` Dr. David Alan Gilbert
2017-02-27 11:05               ` Alexey Perevalov
2017-02-27 11:26                 ` Dr. David Alan Gilbert
2017-02-27 15:00                   ` Andrea Arcangeli [this message]
2017-02-27 15:47                     ` Daniel P. Berrange
2017-02-27 19:04                   ` Alexey Perevalov
2017-02-22 16:43 ` Laurent Vivier
2017-02-24 10:04 ` Dr. David Alan Gilbert

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=20170227150015.GB5816@redhat.com \
    --to=aarcange@redhat.com \
    --cc=a.perevalov@samsung.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.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.