Re: [PATCH v2 4/6] KVM: arm: vgic-v2: Only use the virtual state when userspace accesses pending bits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi James,

On 2020-04-22 16:55, James Morse wrote:
Hi Marc,

On 20/04/2020 11:03, Marc Zyngier wrote:
On Fri, 17 Apr 2020 17:48:34 +0100
James Morse <james.morse@xxxxxxx> wrote:

[...]

(but if user-space never actually does this, then we should do the simplest thing)

Adding printk() to this combined patch and using 'loadvm' on the qemu
console, I see Qemu
writing '0xffffffff' into cpending to clear all 16 SGIs. I guess it is
'resetting' the
in-kernel state to replace it with the state read from disk.


A third way would be to align on what GICv3 does, which is that ISPENDR is used for both setting and clearing in one go. Given that the current
state it broken (and has been for some time now), I'm tempted to adopt
the same behaviour...

What do you think?

I think Qemu is expecting the bank of cpending writes to clear
whatever the kernel has
stored, so that it can replay the new state. Ignoring the cpending
writes means the kernel
keeps an interrupt pending if nothing else in that 64bit group was
set. Its not what Qemu
expects, it looks like we'd get away with it, but I don't think we should do it!

I think we should let user-space write to those WI registers, and
clearing the SGIs should clear all sources of SGI...

I'd be happy with that. Let me rework the patch, and I'll post the series again
shortly.

Thanks,

        M.
--
Jazz is not dead. It just smells funny...



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux