kvmarm.lists.cs.columbia.edu archive mirror
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Oliver Upton <oliver.upton@linux.dev>
Cc: Gavin Shan <gshan@redhat.com>,
	kvmarm@lists.linux.dev, kvmarm@lists.cs.columbia.edu,
	kvm@vger.kernel.org, catalin.marinas@arm.com, bgardon@google.com,
	shuah@kernel.org, andrew.jones@linux.dev, will@kernel.org,
	dmatlack@google.com, pbonzini@redhat.com, zhenyzha@redhat.com,
	james.morse@arm.com, suzuki.poulose@arm.com,
	alexandru.elisei@arm.com, seanjc@google.com,
	shan.gavin@gmail.com
Subject: Re: [PATCH v5 3/7] KVM: x86: Allow to use bitmap in ring-based dirty page tracking
Date: Fri, 14 Oct 2022 12:55:35 -0400	[thread overview]
Message-ID: <Y0mUh5dEErRVtfjl@x1n> (raw)
Message-ID: <20221014165535.N8b_lFQP6I60hgk3YsMbSgE2VfCjROOAXUHidl3tQxU@z> (raw)
In-Reply-To: <Y0TDCxfVVme8uPGU@google.com>

On Tue, Oct 11, 2022 at 01:12:43AM +0000, Oliver Upton wrote:
> The VMM must know something about the architecture it is running on, as
> it calls KVM_DEV_ARM_ITS_SAVE_TABLES after all...

IIUC this is still a kernel impl detail to flush data into guest pages
within this ioctl, or am I wrong?

For example, I'm assuming it's safe to change KVM_DEV_ARM_ITS_SAVE_TABLES
impl one day to not flush data to guest memories, then the kernel should
also disable the ALLOW_BITMAP cap in the same patch, so that any old qemu
binary that supports arm64 dirty ring will naturally skip all the bitmap
ops and becoming the same as what it does with x86 when running on that new
kernel.  With implicit approach suggested, we need to modify QEMU.

Changing impl of KVM_DEV_ARM_ITS_SAVE_TABLES is probably not a good
example.. but just want to show what I meant.  Fundamentally it sounds
cleaner if it's the kernel that tells the user "okay you collected the
ring, but that's not enough; you need to collect the bitmap too", rather
than assuming the user app will always know what kvm did in details.  No
strong opinion though, as I could also have misunderstood how arm works.

-- 
Peter Xu


  parent reply	other threads:[~2022-10-14 16:55 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-05  0:41 [PATCH v5 0/7] KVM: arm64: Enable ring-based dirty memory tracking Gavin Shan
2022-10-05  0:41 ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 1/7] KVM: x86: Introduce KVM_REQ_RING_SOFT_FULL Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 2/7] KVM: x86: Move declaration of kvm_cpu_dirty_log_size() to kvm_dirty_ring.h Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 3/7] KVM: x86: Allow to use bitmap in ring-based dirty page tracking Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-06 20:28   ` Peter Xu
2022-10-06 20:28     ` Peter Xu
2022-10-06 23:38     ` Gavin Shan
2022-10-06 23:38       ` Gavin Shan
2022-10-07 14:31       ` Peter Xu
2022-10-07 14:31         ` Peter Xu
2022-10-10 23:18         ` Oliver Upton
2022-10-10 23:18           ` Oliver Upton
2022-10-10 23:43           ` Oliver Upton
2022-10-10 23:43             ` Oliver Upton
2022-10-10 23:49           ` Peter Xu
2022-10-10 23:49             ` Peter Xu
2022-10-10 23:58             ` Gavin Shan
2022-10-10 23:58               ` Gavin Shan
2022-10-10 23:58             ` Oliver Upton
2022-10-10 23:58               ` Oliver Upton
2022-10-11  0:20               ` Peter Xu
2022-10-11  0:20                 ` Peter Xu
2022-10-11  1:12                 ` Oliver Upton
2022-10-11  1:12                   ` Oliver Upton
2022-10-11  3:56                   ` Gavin Shan
2022-10-11  3:56                     ` Gavin Shan
2022-10-11  6:31                     ` Gavin Shan
2022-10-11  6:31                       ` Gavin Shan
2022-10-14 16:55                   ` Peter Xu [this message]
2022-10-14 16:55                     ` Peter Xu
2022-10-18  7:38                     ` Oliver Upton
2022-10-18  7:38                       ` Oliver Upton
2022-10-18  7:40                       ` Oliver Upton
2022-10-18  7:40                         ` Oliver Upton
2022-10-18 15:50                       ` Peter Xu
2022-10-18 15:50                         ` Peter Xu
2022-10-05  0:41 ` [PATCH v5 4/7] KVM: arm64: Enable ring-based dirty memory tracking Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 5/7] KVM: selftests: Use host page size to map ring buffer in dirty_log_test Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 6/7] KVM: selftests: Clear dirty ring states between two modes " Gavin Shan
2022-10-05  0:41   ` Gavin Shan
2022-10-05  0:41 ` [PATCH v5 7/7] KVM: selftests: Automate choosing dirty ring size " Gavin Shan
2022-10-05  0:41   ` Gavin Shan

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=Y0mUh5dEErRVtfjl@x1n \
    --to=peterx@redhat.com \
    --cc=alexandru.elisei@arm.com \
    --cc=andrew.jones@linux.dev \
    --cc=bgardon@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=dmatlack@google.com \
    --cc=gshan@redhat.com \
    --cc=james.morse@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=kvmarm@lists.linux.dev \
    --cc=oliver.upton@linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=shan.gavin@gmail.com \
    --cc=shuah@kernel.org \
    --cc=suzuki.poulose@arm.com \
    --cc=will@kernel.org \
    --cc=zhenyzha@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 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).