qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Rik van Riel <riel@redhat.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Wei Wang <wei.w.wang@intel.com>,
	linux-kernel@vger.kernel.org, qemu-devel@nongnu.org,
	virtualization@lists.linux-foundation.org, kvm@vger.kernel.org,
	linux-mm@kvack.org, cornelia.huck@de.ibm.com,
	akpm@linux-foundation.org, mgorman@techsingularity.net,
	aarcange@redhat.com, amit.shah@redhat.com, pbonzini@redhat.com,
	liliang.opensource@gmail.com,
	Nitesh Narayan Lal <nilal@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v11 4/6] mm: function to offer a page block on the free list
Date: Tue, 20 Jun 2017 20:54:29 +0200	[thread overview]
Message-ID: <f46768db-dcda-aa40-64b9-eb2929249db8@redhat.com> (raw)
In-Reply-To: <20170620211445-mutt-send-email-mst@kernel.org>

On 20.06.2017 20:17, Michael S. Tsirkin wrote:
> On Tue, Jun 20, 2017 at 06:49:33PM +0200, David Hildenbrand wrote:
>> On 20.06.2017 18:44, Rik van Riel wrote:
>>> On Mon, 2017-06-12 at 07:10 -0700, Dave Hansen wrote:
>>>
>>>> The hypervisor is going to throw away the contents of these pages,
>>>> right?  As soon as the spinlock is released, someone can allocate a
>>>> page, and put good data in it.  What keeps the hypervisor from
>>>> throwing
>>>> away good data?
>>>
>>> That looks like it may be the wrong API, then?
>>>
>>> We already have hooks called arch_free_page and
>>> arch_alloc_page in the VM, which are called when
>>> pages are freed, and allocated, respectively.
>>>
>>> Nitesh Lal (on the CC list) is working on a way
>>> to efficiently batch recently freed pages for
>>> free page hinting to the hypervisor.
>>>
>>> If that is done efficiently enough (eg. with
>>> MADV_FREE on the hypervisor side for lazy freeing,
>>> and lazy later re-use of the pages), do we still
>>> need the harder to use batch interface from this
>>> patch?
>>>
>> David's opinion incoming:
>>
>> No, I think proper free page hinting would be the optimum solution, if
>> done right. This would avoid the batch interface and even turn
>> virtio-balloon in some sense useless.
> 
> I agree generally. But we have to balance that against the fact that
> this was discussed since at least 2011 and no one built this solution
> yet.

I totally agree, and I still think it will be hard to get a decent
performance for free page hinting (let's call it challenging). But I
heard of some interesting ideas. Surprise me.

Still, I would favor such an interface over a mm interface where people
start asking the same question over and over again ("how can this even
work"). Not only because it wasn't explained sufficiently enough, but
also because this interface is so special for one use case and one
scenario (concurrent dirty tracking in the host during migration).

IMHO even simply writing all-zeros to all free pages before starting
migration (or even when freeing a page) would be a cleaner interface
than this (because it atomically works with the entity the host cares
about for migration). But yes, performance is horrible that's why I am
not even suggesting it. Just saying that this mm interface is very very
special and if we could find something better, I'd favor it.

-- 

Thanks,

David

  reply	other threads:[~2017-06-20 18:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-09 10:41 [Qemu-devel] [PATCH v11 0/6] Virtio-balloon Enhancement Wei Wang
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 1/6] virtio-balloon: deflate via a page list Wei Wang
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 2/6] virtio-balloon: coding format cleanup Wei Wang
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 3/6] virtio-balloon: VIRTIO_BALLOON_F_PAGE_CHUNKS Wei Wang
2017-06-13 17:56   ` Michael S. Tsirkin
2017-06-13 17:59     ` Dave Hansen
2017-06-13 18:55       ` Michael S. Tsirkin
2017-06-15  8:10     ` [Qemu-devel] [virtio-dev] " Wei Wang
2017-06-16  3:19       ` Michael S. Tsirkin
2017-06-28 15:04       ` Matthew Wilcox
2017-07-12 13:05         ` Wei Wang
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 4/6] mm: function to offer a page block on the free list Wei Wang
2017-06-12 14:10   ` Dave Hansen
2017-06-12 16:28     ` Michael S. Tsirkin
2017-06-12 16:42       ` Dave Hansen
2017-06-12 20:34         ` Michael S. Tsirkin
2017-06-12 20:54           ` Dave Hansen
2017-06-13  2:56             ` Wei Wang
2017-06-20 16:44     ` Rik van Riel
2017-06-20 16:49       ` David Hildenbrand
2017-06-20 17:29         ` Rik van Riel
2017-06-20 18:26           ` Michael S. Tsirkin
2017-06-20 19:51             ` Rik van Riel
2017-06-21 12:41               ` Michael S. Tsirkin
2017-06-21  8:38           ` Wei Wang
2017-06-20 18:17         ` Michael S. Tsirkin
2017-06-20 18:54           ` David Hildenbrand [this message]
2017-06-20 18:56             ` Michael S. Tsirkin
2017-06-20 19:01               ` David Hildenbrand
2017-06-21 12:56         ` Christian Borntraeger
2017-06-21 13:47           ` David Hildenbrand
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 5/6] mm: export symbol of next_zone and first_online_pgdat Wei Wang
2017-06-09 10:41 ` [Qemu-devel] [PATCH v11 6/6] virtio-balloon: VIRTIO_BALLOON_F_CMD_VQ Wei Wang
2017-06-12 14:07   ` Dave Hansen
2017-06-13 10:17     ` Wei Wang
2017-06-20 16:18   ` Michael S. Tsirkin
2017-06-21  3:28     ` [Qemu-devel] [virtio-dev] " Wei Wang
2017-06-21 12:28       ` Michael S. Tsirkin
2017-06-22  8:40         ` Wei Wang
2017-06-28 15:01           ` Michael S. Tsirkin
2017-07-12 12:57             ` Wei Wang
2017-06-09 11:18 ` [Qemu-devel] [PATCH v11 0/6] Virtio-balloon Enhancement Wang, Wei W

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=f46768db-dcda-aa40-64b9-eb2929249db8@redhat.com \
    --to=david@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=amit.shah@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dave.hansen@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=liliang.opensource@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mst@redhat.com \
    --cc=nilal@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=riel@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wei.w.wang@intel.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).