All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Wang, Wei W" <wei.w.wang@intel.com>
To: David Hildenbrand <david@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Cc: Nadav Amit <namit@vmware.com>,
	Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	Tyler Sanderson <tysand@google.com>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	David Rientjes <rientjes@google.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"Michal Hocko" <mhocko@kernel.org>
Subject: RE: Balloon pressuring page cache
Date: Wed, 5 Feb 2020 09:19:07 +0000	[thread overview]
Message-ID: <286AC319A985734F985F78AFA26841F73E41F3DE@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <605bef3e-373f-f39a-4849-930326564b5b@redhat.com>

On Wednesday, February 5, 2020 5:06 PM, David Hildenbrand wrote:

> 
> No, that does not answer my question. Because then, obviously the guest
> can't do any hinting in the last round. I think I am missing something
> important :)

No problem, probably need more details here:

QEMU has a dirty bitmap which indicates all the dirty pages from the previous round.
KVM has a dirty bitmap which records what pages are modified in this round.
When a new round starts, QEMU syncs the bitmap from KVM (this round always
sends the pages dirtied from the previous round).

> 1. Guest allocates a page and sends it to the host.
> 2. Shrinker gets active and releases that page again.
> 3. Some user in the guest allocates and modifies that page. The dirty bit is
> set in the hypervisor.

The bit will be set in KVM's bitmap, and will be synced to QEMU's bitmap when the next round starts.

> 4. The host processes the request and clears the bit in the dirty bitmap.

This clears the bit from the QEMU bitmap, and this page will not be sent in this round.

> 5. The guest is stopped and the last set of dirty pages is migrated. The
> modified page is not being migrated (because not marked dirty).

When QEMU start the last round, it first syncs the bitmap from KVM, which includes the one set in step 3.
Then the modified page gets sent.

Best,
Wei



WARNING: multiple messages have this Message-ID (diff)
From: "Wang, Wei W" <wei.w.wang@intel.com>
To: David Hildenbrand <david@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Cc: "virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	Tyler Sanderson <tysand@google.com>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Nadav Amit <namit@vmware.com>,
	David Rientjes <rientjes@google.com>,
	Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	Michal Hocko <mhocko@kernel.org>
Subject: RE: Balloon pressuring page cache
Date: Wed, 5 Feb 2020 09:19:07 +0000	[thread overview]
Message-ID: <286AC319A985734F985F78AFA26841F73E41F3DE@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <605bef3e-373f-f39a-4849-930326564b5b@redhat.com>

On Wednesday, February 5, 2020 5:06 PM, David Hildenbrand wrote:

> 
> No, that does not answer my question. Because then, obviously the guest
> can't do any hinting in the last round. I think I am missing something
> important :)

No problem, probably need more details here:

QEMU has a dirty bitmap which indicates all the dirty pages from the previous round.
KVM has a dirty bitmap which records what pages are modified in this round.
When a new round starts, QEMU syncs the bitmap from KVM (this round always
sends the pages dirtied from the previous round).

> 1. Guest allocates a page and sends it to the host.
> 2. Shrinker gets active and releases that page again.
> 3. Some user in the guest allocates and modifies that page. The dirty bit is
> set in the hypervisor.

The bit will be set in KVM's bitmap, and will be synced to QEMU's bitmap when the next round starts.

> 4. The host processes the request and clears the bit in the dirty bitmap.

This clears the bit from the QEMU bitmap, and this page will not be sent in this round.

> 5. The guest is stopped and the last set of dirty pages is migrated. The
> modified page is not being migrated (because not marked dirty).

When QEMU start the last round, it first syncs the bitmap from KVM, which includes the one set in step 3.
Then the modified page gets sent.

Best,
Wei

  reply	other threads:[~2020-02-05  9:19 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-29  0:22 Balloon pressuring page cache Tyler Sanderson via Virtualization
2020-01-29 10:31 ` David Hildenbrand
2020-01-29 19:11   ` Tyler Sanderson via Virtualization
2020-01-30 15:02     ` David Hildenbrand
2020-01-30 15:02       ` David Hildenbrand
2020-01-30 15:20       ` Michael S. Tsirkin
2020-01-30 15:20         ` Michael S. Tsirkin
2020-01-30 15:23         ` David Hildenbrand
2020-01-30 15:23           ` David Hildenbrand
2020-01-30 15:31       ` Wang, Wei W
2020-01-30 15:31         ` Wang, Wei W
2020-01-30 19:59         ` Tyler Sanderson
2020-01-30 19:59           ` Tyler Sanderson via Virtualization
2020-02-03 13:11           ` Michael S. Tsirkin
2020-02-03 13:11             ` Michael S. Tsirkin
2020-02-03 16:18             ` Alexander Duyck
2020-02-03 16:34               ` David Hildenbrand
2020-02-03 16:34                 ` David Hildenbrand
2020-02-03 17:03                 ` Michael S. Tsirkin
2020-02-03 17:03                   ` Michael S. Tsirkin
2020-02-03 20:32                   ` Tyler Sanderson
2020-02-03 20:32                     ` Tyler Sanderson via Virtualization
2020-02-03 21:22                     ` Alexander Duyck
2020-02-03 23:16                       ` Tyler Sanderson
2020-02-03 23:16                         ` Tyler Sanderson via Virtualization
2020-02-04  0:10                         ` Alexander Duyck
2020-02-04  5:45                     ` Michael S. Tsirkin
2020-02-04  5:45                       ` Michael S. Tsirkin
2020-02-04  8:29                     ` David Hildenbrand
2020-02-04  8:29                       ` David Hildenbrand
2020-02-04 18:52                       ` Tyler Sanderson
2020-02-04 18:52                         ` Tyler Sanderson via Virtualization
2020-02-04 18:56                         ` Michael S. Tsirkin
2020-02-04 18:56                           ` Michael S. Tsirkin
2020-02-04 19:17                         ` David Hildenbrand
2020-02-04 19:17                           ` David Hildenbrand
2020-02-04 23:58                           ` Tyler Sanderson
2020-02-04 23:58                             ` Tyler Sanderson via Virtualization
2020-02-05  0:15                             ` Tyler Sanderson
2020-02-05  0:15                               ` Tyler Sanderson via Virtualization
2020-02-05  6:57                             ` Michael S. Tsirkin
2020-02-05  6:57                               ` Michael S. Tsirkin
2020-02-05 19:01                               ` Tyler Sanderson
2020-02-05 19:01                                 ` Tyler Sanderson via Virtualization
2020-02-05 19:22                                 ` Alexander Duyck
2020-02-05 21:44                                   ` Tyler Sanderson
2020-02-05 21:44                                     ` Tyler Sanderson via Virtualization
2020-02-06 11:00                                     ` David Hildenbrand
2020-02-06 11:00                                       ` David Hildenbrand
2020-02-03 22:50                 ` Nadav Amit
2020-02-03 22:50                   ` Nadav Amit via Virtualization
2020-02-04  8:35                   ` David Hildenbrand
2020-02-04  8:35                     ` David Hildenbrand
2020-02-04  8:40                     ` Michael S. Tsirkin
2020-02-04  8:40                       ` Michael S. Tsirkin
2020-02-04  8:48                       ` David Hildenbrand
2020-02-04  8:48                         ` David Hildenbrand
2020-02-04 14:30                       ` David Hildenbrand
2020-02-04 14:30                         ` David Hildenbrand
2020-02-04 16:50                         ` Michael S. Tsirkin
2020-02-04 16:50                           ` Michael S. Tsirkin
2020-02-04 16:56                           ` David Hildenbrand
2020-02-04 16:56                             ` David Hildenbrand
2020-02-04 20:33                             ` Michael S. Tsirkin
2020-02-04 20:33                               ` [virtio-dev] " Michael S. Tsirkin
2020-02-04 20:33                               ` Michael S. Tsirkin
2020-02-05  8:31                               ` David Hildenbrand
2020-02-05  8:31                                 ` [virtio-dev] " David Hildenbrand
2020-02-05  6:52                           ` Wang, Wei W
2020-02-05  6:52                             ` Wang, Wei W
2020-02-05  7:05                             ` Michael S. Tsirkin
2020-02-05  7:05                               ` Michael S. Tsirkin
2020-02-05  8:50                               ` Wang, Wei W
2020-02-05  8:50                                 ` Wang, Wei W
2020-02-05  6:49                         ` Wang, Wei W
2020-02-05  6:49                           ` Wang, Wei W
2020-02-05  8:19                           ` David Hildenbrand
2020-02-05  8:19                             ` David Hildenbrand
2020-02-05  8:54                             ` Wang, Wei W
2020-02-05  8:54                               ` Wang, Wei W
2020-02-05  8:56                               ` David Hildenbrand
2020-02-05  8:56                                 ` David Hildenbrand
2020-02-05  9:00                                 ` Wang, Wei W
2020-02-05  9:00                                   ` Wang, Wei W
2020-02-05  9:05                                   ` David Hildenbrand
2020-02-05  9:05                                     ` David Hildenbrand
2020-02-05  9:19                                     ` Wang, Wei W [this message]
2020-02-05  9:19                                       ` Wang, Wei W
2020-02-05  9:22                                       ` David Hildenbrand
2020-02-05  9:22                                         ` David Hildenbrand
2020-02-05  9:35                                         ` Wang, Wei W
2020-02-05  9:35                                           ` Wang, Wei W
2020-02-05  9:37                                           ` David Hildenbrand
2020-02-05  9:37                                             ` David Hildenbrand
2020-02-05  9:49                                             ` Wang, Wei W
2020-02-05  9:49                                               ` Wang, Wei W
2020-02-05  9:58                                               ` David Hildenbrand
2020-02-05  9:58                                                 ` David Hildenbrand
2020-02-05 10:25                                                 ` Michael S. Tsirkin
2020-02-05 10:25                                                   ` Michael S. Tsirkin
2020-02-05 10:42                                                   ` David Hildenbrand
2020-02-05 10:42                                                     ` David Hildenbrand
2020-02-05  9:35                                         ` Michael S. Tsirkin
2020-02-05  9:35                                           ` Michael S. Tsirkin
2020-02-05 18:43                                   ` Tyler Sanderson
2020-02-05 18:43                                     ` Tyler Sanderson via Virtualization
2020-02-06  9:30                                     ` Wang, Wei W
2020-02-06  9:30                                       ` Wang, Wei W
2020-02-05  7:35                   ` Nadav Amit
2020-02-05  7:35                     ` Nadav Amit via Virtualization
2020-02-05  8:19                     ` David Hildenbrand
2020-02-05  8:19                       ` David Hildenbrand
2020-02-05 10:27                       ` Michael S. Tsirkin
2020-02-05 10:27                         ` Michael S. Tsirkin
2020-02-05 10:43                         ` David Hildenbrand
2020-02-05 10:43                           ` David Hildenbrand
2020-01-30 22:46       ` Tyler Sanderson
2020-01-30 22:46         ` Tyler Sanderson via Virtualization
2020-02-02  0:21     ` David Rientjes via Virtualization

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=286AC319A985734F985F78AFA26841F73E41F3DE@shsmsx102.ccr.corp.intel.com \
    --to=wei.w.wang@intel.com \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=david@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=mst@redhat.com \
    --cc=namit@vmware.com \
    --cc=rientjes@google.com \
    --cc=tysand@google.com \
    --cc=virtualization@lists.linux-foundation.org \
    /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.