Thread (28 messages) 28 messages, 4 authors, 2020-12-17

Re: [RFC PATCH v1 3/4] KVM: arm64: GICv4.1: Restore VLPI's pending state to physical side

From: Auger Eric <eric.auger@redhat.com>
Date: 2020-12-16 10:37:50
Also in: kvm, kvmarm, lkml

Hi Shenming,

On 12/1/20 1:15 PM, Shenming Lu wrote:
On 2020/12/1 19:50, Marc Zyngier wrote:
quoted
On 2020-12-01 11:40, Shenming Lu wrote:
quoted
On 2020/12/1 18:55, Marc Zyngier wrote:
quoted
On 2020-11-30 07:23, Shenming Lu wrote:

Hi Shenming,
quoted
We are pondering over this problem these days, but still don't get a
good solution...
Could you give us some advice on this?

Or could we move the restoring of the pending states (include the sync
from guest RAM and the transfer to HW) to the GIC VM state change handler,
which is completely corresponding to save_pending_tables (more symmetric?)
and don't expose GICv4...
What is "the GIC VM state change handler"? Is that a QEMU thing?
Yeah, it is a a QEMU thing...
quoted
We don't really have that concept in KVM, so I'd appreciate if you could
be a bit more explicit on this.
My thought is to add a new interface (to QEMU) for the restoring of
the pending states, which is completely corresponding to
KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES...
And it is called from the GIC VM state change handler in QEMU, which
is happening after the restoring (call kvm_vgic_v4_set_forwarding())
but before the starting (running) of the VFIO device.
Right, that makes sense. I still wonder how much the GIC save/restore
stuff differs from other architectures that implement similar features,
such as x86 with VT-D.
I am not familiar with it...
quoted
It is obviously too late to change the userspace interface, but I wonder
whether we missed something at the time.
The interface seems to be really asymmetrical?...
in qemu d5aa0c229a ("hw/intc/arm_gicv3_kvm: Implement pending table
save") commit message, it is traced:

"There is no explicit restore as the tables are implicitly sync'ed
on ITS table restore and on LPI enable at redistributor level."

At that time there was no real justification behind adding the RESTORE
fellow attr.

Maybe a stupid question but isn't it possible to unset the forwarding
when saving and rely on VFIO to automatically restore it when resuming
on destination?

Thanks

Eric

Or is there a possibility that we could know which irq is hw before the VFIO
device calls kvm_vgic_v4_set_forwarding()?

Thanks,
Shenming
quoted
Thanks,

        M.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help