From: Zenghui Yu <zenghui.yu@linux.dev>
To: Gavin Shan <gshan@redhat.com>, kvmarm@lists.linux.dev
Cc: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, pbonzini@redhat.com,
corbet@lwn.net, maz@kernel.org, james.morse@arm.com,
suzuki.poulose@arm.com, oliver.upton@linux.dev,
yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org,
yuzhe@nfschina.com, isaku.yamahata@intel.com, seanjc@google.com,
ricarkol@google.com, eric.auger@redhat.com,
renzhengeek@gmail.com, reijiw@google.com, shan.gavin@gmail.com
Subject: Re: [PATCH v3 4/4] KVM: arm64: Allow no running vcpu on saving vgic3 pending table
Date: Fri, 27 Jan 2023 23:57:57 +0800 [thread overview]
Message-ID: <713a3e22-6327-875e-072d-e916f75d5239@linux.dev> (raw)
In-Reply-To: <20230126235451.469087-5-gshan@redhat.com>
On 2023/1/27 07:54, Gavin Shan wrote:
> We don't have a running VCPU context to save vgic3 pending table due
> to KVM_DEV_ARM_VGIC_{GRP_CTRL, SAVE_PENDING_TABLES} command on KVM
> device "kvm-arm-vgic-v3". The unknown case is caught by kvm-unit-tests.
>
> # ./kvm-unit-tests/tests/its-pending-migration
> WARNING: CPU: 120 PID: 7973 at arch/arm64/kvm/../../../virt/kvm/kvm_main.c:3325 \
> mark_page_dirty_in_slot+0x60/0xe0
> :
> mark_page_dirty_in_slot+0x60/0xe0
> __kvm_write_guest_page+0xcc/0x100
> kvm_write_guest+0x7c/0xb0
> vgic_v3_save_pending_tables+0x148/0x2a0
> vgic_set_common_attr+0x158/0x240
> vgic_v3_set_attr+0x4c/0x5c
> kvm_device_ioctl+0x100/0x160
> __arm64_sys_ioctl+0xa8/0xf0
> invoke_syscall.constprop.0+0x7c/0xd0
> el0_svc_common.constprop.0+0x144/0x160
> do_el0_svc+0x34/0x60
> el0_svc+0x3c/0x1a0
> el0t_64_sync_handler+0xb4/0x130
> el0t_64_sync+0x178/0x17c
>
> Use vgic_write_guest_lock() to save vgic3 pending table.
>
> Reported-by: Zenghui Yu <yuzenghui@huawei.com>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
> ---
> Documentation/virt/kvm/api.rst | 4 +++-
> arch/arm64/kvm/vgic/vgic-v3.c | 2 +-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
> index 40ada313faa3..07f07668995e 100644
> --- a/Documentation/virt/kvm/api.rst
> +++ b/Documentation/virt/kvm/api.rst
> @@ -8074,7 +8074,9 @@ NOTE: Multiple examples of using the backup bitmap: (1) save vgic/its
> tables through command KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_SAVE_TABLES} on
> KVM device "kvm-arm-vgic-its". (2) restore vgic/its tables through
> command KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_RESTORE_TABLES} on KVM device
> -"kvm-arm-vgic-its". vgic3 LPI pending status is restored.
> +"kvm-arm-vgic-its". vgic3 LPI pending status is restored. (3) save
> +vgic3 pending table through KVM_DEV_ARM_VGIC_{GRP_CTRL, SAVE_PENDING_TABLES}
> +command on KVM device "kvm-arm-vgic-v3".
Can we summarize these 3 examples with something like: "when the guest
memory (pending tables, ITS tables, etc) is dirtied by the virtual GIC
or ITS, which is typically triggered by a userspace request (e.g.,
KVM_DEV_ARM_ITS_SAVE_TABLES) and doesn't require a running VCPU
context"? In case there will be more no-running-vcpu
kvm_write_guest_lock() cases in the VGIC emulation code in future and we
have to extend the documentation..
But I don't have objection to your writing and the whole series looks
good.
Thanks,
Zenghui
WARNING: multiple messages have this Message-ID (diff)
From: Zenghui Yu <zenghui.yu@linux.dev>
To: Gavin Shan <gshan@redhat.com>, kvmarm@lists.linux.dev
Cc: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, pbonzini@redhat.com,
corbet@lwn.net, maz@kernel.org, james.morse@arm.com,
suzuki.poulose@arm.com, oliver.upton@linux.dev,
yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org,
yuzhe@nfschina.com, isaku.yamahata@intel.com, seanjc@google.com,
ricarkol@google.com, eric.auger@redhat.com,
renzhengeek@gmail.com, reijiw@google.com, shan.gavin@gmail.com
Subject: Re: [PATCH v3 4/4] KVM: arm64: Allow no running vcpu on saving vgic3 pending table
Date: Fri, 27 Jan 2023 23:57:57 +0800 [thread overview]
Message-ID: <713a3e22-6327-875e-072d-e916f75d5239@linux.dev> (raw)
In-Reply-To: <20230126235451.469087-5-gshan@redhat.com>
On 2023/1/27 07:54, Gavin Shan wrote:
> We don't have a running VCPU context to save vgic3 pending table due
> to KVM_DEV_ARM_VGIC_{GRP_CTRL, SAVE_PENDING_TABLES} command on KVM
> device "kvm-arm-vgic-v3". The unknown case is caught by kvm-unit-tests.
>
> # ./kvm-unit-tests/tests/its-pending-migration
> WARNING: CPU: 120 PID: 7973 at arch/arm64/kvm/../../../virt/kvm/kvm_main.c:3325 \
> mark_page_dirty_in_slot+0x60/0xe0
> :
> mark_page_dirty_in_slot+0x60/0xe0
> __kvm_write_guest_page+0xcc/0x100
> kvm_write_guest+0x7c/0xb0
> vgic_v3_save_pending_tables+0x148/0x2a0
> vgic_set_common_attr+0x158/0x240
> vgic_v3_set_attr+0x4c/0x5c
> kvm_device_ioctl+0x100/0x160
> __arm64_sys_ioctl+0xa8/0xf0
> invoke_syscall.constprop.0+0x7c/0xd0
> el0_svc_common.constprop.0+0x144/0x160
> do_el0_svc+0x34/0x60
> el0_svc+0x3c/0x1a0
> el0t_64_sync_handler+0xb4/0x130
> el0t_64_sync+0x178/0x17c
>
> Use vgic_write_guest_lock() to save vgic3 pending table.
>
> Reported-by: Zenghui Yu <yuzenghui@huawei.com>
> Signed-off-by: Gavin Shan <gshan@redhat.com>
> Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
> ---
> Documentation/virt/kvm/api.rst | 4 +++-
> arch/arm64/kvm/vgic/vgic-v3.c | 2 +-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst
> index 40ada313faa3..07f07668995e 100644
> --- a/Documentation/virt/kvm/api.rst
> +++ b/Documentation/virt/kvm/api.rst
> @@ -8074,7 +8074,9 @@ NOTE: Multiple examples of using the backup bitmap: (1) save vgic/its
> tables through command KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_SAVE_TABLES} on
> KVM device "kvm-arm-vgic-its". (2) restore vgic/its tables through
> command KVM_DEV_ARM_{VGIC_GRP_CTRL, ITS_RESTORE_TABLES} on KVM device
> -"kvm-arm-vgic-its". vgic3 LPI pending status is restored.
> +"kvm-arm-vgic-its". vgic3 LPI pending status is restored. (3) save
> +vgic3 pending table through KVM_DEV_ARM_VGIC_{GRP_CTRL, SAVE_PENDING_TABLES}
> +command on KVM device "kvm-arm-vgic-v3".
Can we summarize these 3 examples with something like: "when the guest
memory (pending tables, ITS tables, etc) is dirtied by the virtual GIC
or ITS, which is typically triggered by a userspace request (e.g.,
KVM_DEV_ARM_ITS_SAVE_TABLES) and doesn't require a running VCPU
context"? In case there will be more no-running-vcpu
kvm_write_guest_lock() cases in the VGIC emulation code in future and we
have to extend the documentation..
But I don't have objection to your writing and the whole series looks
good.
Thanks,
Zenghui
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-01-27 15:58 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-26 23:54 [PATCH v3 0/4] Improve dirty ring warning report Gavin Shan
2023-01-26 23:54 ` Gavin Shan
2023-01-26 23:54 ` [PATCH v3 1/4] KVM: arm64: Include kvm_mmu.h from vgic.h Gavin Shan
2023-01-26 23:54 ` Gavin Shan
2023-01-26 23:54 ` [PATCH v3 2/4] KVM: arm64: Add helper vgic_write_guest_lock() Gavin Shan
2023-01-26 23:54 ` Gavin Shan
2023-01-27 15:57 ` Zenghui Yu
2023-01-27 15:57 ` Zenghui Yu
2023-01-27 23:33 ` Gavin Shan
2023-01-27 23:33 ` Gavin Shan
2023-01-26 23:54 ` [PATCH v3 3/4] KVM: arm64: Allow no running vcpu on restoring vgic3 LPI pending status Gavin Shan
2023-01-26 23:54 ` Gavin Shan
2023-01-26 23:54 ` [PATCH v3 4/4] KVM: arm64: Allow no running vcpu on saving vgic3 pending table Gavin Shan
2023-01-26 23:54 ` Gavin Shan
2023-01-27 15:57 ` Zenghui Yu [this message]
2023-01-27 15:57 ` Zenghui Yu
2023-01-27 23:37 ` Gavin Shan
2023-01-27 23:37 ` Gavin Shan
2023-01-29 18:54 ` [PATCH v3 0/4] Improve dirty ring warning report Marc Zyngier
2023-01-29 18:54 ` Marc Zyngier
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=713a3e22-6327-875e-072d-e916f75d5239@linux.dev \
--to=zenghui.yu@linux.dev \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=eric.auger@redhat.com \
--cc=gshan@redhat.com \
--cc=isaku.yamahata@intel.com \
--cc=james.morse@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oliver.upton@linux.dev \
--cc=pbonzini@redhat.com \
--cc=reijiw@google.com \
--cc=renzhengeek@gmail.com \
--cc=ricarkol@google.com \
--cc=seanjc@google.com \
--cc=shan.gavin@gmail.com \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.com \
--cc=yuzhe@nfschina.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.