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...
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm