From: Sean Christopherson <seanjc@google.com>
To: Shivam Kumar <shivam.kumar1@nutanix.com>
Cc: pbonzini@redhat.com, kvm@vger.kernel.org,
Anurag Madnawat <anurag.madnawat@nutanix.com>,
Shaju Abraham <shaju.abraham@nutanix.com>,
Manish Mishra <manish.mishra@nutanix.com>
Subject: Re: [PATCH 3/6] Add KVM_CAP_DIRTY_QUOTA_MIGRATION and handle vCPU page faults.
Date: Thu, 18 Nov 2021 17:57:36 +0000 [thread overview]
Message-ID: <YZaUENi0ZyQi/9M0@google.com> (raw)
In-Reply-To: <20211114145721.209219-4-shivam.kumar1@nutanix.com>
On Sun, Nov 14, 2021, Shivam Kumar wrote:
> +static int kvm_vm_ioctl_enable_dirty_quota_migration(struct kvm *kvm,
> + bool enabled)
> +{
> + if (!KVM_DIRTY_LOG_PAGE_OFFSET)
I don't think we should force architectures to opt in. It would be trivial to
add
if (kvm_dirty_quota_is_full(vcpu)) {
vcpu->run->exit_reason = KVM_EXIT_DIRTY_QUOTA_FULL;
r = 0;
break;
}
in the run loops of each architecture. And we can do that in incremental patches
without #ifdeffery since it's only the exiting aspect that requires arch help.
> + return -EINVAL;
> +
> + /*
> + * For now, dirty quota migration works with dirty bitmap so don't
> + * enable it if dirty ring interface is enabled. In future, dirty
> + * quota migration may work with dirty ring interface was well.
> + */
Why does KVM care? This is a very simple concept. QEMU not using it for the
dirty ring doesn't mean KVM can't support it.
> + if (kvm->dirty_ring_size)
> + return -EINVAL;
> +
> + /* Return if no change */
> + if (kvm->dirty_quota_migration_enabled == enabled)
Needs to be check under lock.
> + return -EINVAL;
Probably more idiomatic to return 0 if the desired value is the current value.
> + mutex_lock(&kvm->lock);
> + kvm->dirty_quota_migration_enabled = enabled;
Needs to check vCPU creation.
> + mutex_unlock(&kvm->lock);
> +
> + return 0;
> +}
> +
> int __attribute__((weak)) kvm_vm_ioctl_enable_cap(struct kvm *kvm,
> struct kvm_enable_cap *cap)
> {
> @@ -4305,6 +4339,9 @@ static int kvm_vm_ioctl_enable_cap_generic(struct kvm *kvm,
> }
> case KVM_CAP_DIRTY_LOG_RING:
> return kvm_vm_ioctl_enable_dirty_log_ring(kvm, cap->args[0]);
> + case KVM_CAP_DIRTY_QUOTA_MIGRATION:
> + return kvm_vm_ioctl_enable_dirty_quota_migration(kvm,
> + cap->args[0]);
> default:
> return kvm_vm_ioctl_enable_cap(kvm, cap);
> }
> --
> 2.22.3
>
next prev parent reply other threads:[~2021-11-18 17:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-14 14:57 [PATCH 0/6] KVM: Dirty Quota-Based VM Live Migration Auto-Converge Shivam Kumar
2021-11-14 14:57 ` [PATCH 1/6] Define data structures for dirty quota migration Shivam Kumar
2021-11-14 14:57 ` [PATCH 2/6] Init dirty quota flag and allocate memory for vCPUdqctx Shivam Kumar
2021-11-14 14:57 ` [PATCH 3/6] Add KVM_CAP_DIRTY_QUOTA_MIGRATION and handle vCPU page faults Shivam Kumar
2021-11-18 17:57 ` Sean Christopherson [this message]
2021-11-19 20:03 ` Shivam Kumar
[not found] ` <02b8fa86-a86b-969e-2137-1953639cb6d2@nutanix.com>
[not found] ` <YZgD0D4536s2DMem@google.com>
2021-11-19 20:21 ` Shivam Kumar
2021-11-25 8:43 ` Shivam Kumar
2021-12-01 17:22 ` Sean Christopherson
2021-11-14 14:57 ` [PATCH 4/6] Increment dirty counter for vmexit due to page write fault Shivam Kumar
2021-11-18 17:48 ` Sean Christopherson
2021-11-19 19:54 ` Shivam Kumar
2021-11-14 14:57 ` [PATCH 5/6] Exit to userspace when dirty quota is full Shivam Kumar
2021-11-14 14:57 ` [PATCH 6/6] Free vCPUdqctx memory on vCPU destroy Shivam Kumar
2021-11-18 17:46 ` [PATCH 0/6] KVM: Dirty Quota-Based VM Live Migration Auto-Converge Sean Christopherson
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=YZaUENi0ZyQi/9M0@google.com \
--to=seanjc@google.com \
--cc=anurag.madnawat@nutanix.com \
--cc=kvm@vger.kernel.org \
--cc=manish.mishra@nutanix.com \
--cc=pbonzini@redhat.com \
--cc=shaju.abraham@nutanix.com \
--cc=shivam.kumar1@nutanix.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.