On 23/10/20 18:54, James Morse wrote: > SDEI gives you an NMI ... which you use to set a TIF flag. This can only work reliably for > user-space. So much so that you have code in the hypervisor to only deliver the NMI ... > when in user-space. > The only reason you would need an NMI is to interrupt interrupts-masked code. Linux can't > reschedule when this is the case. > > I can only conclude, you really don't need an NMI here. I don't think the issue is that you want an NMI. It is just that the synchronous interruption that we want is exactly the same as a SDEI, and so is the notification reply from the guest to the host (e.g. accept the async pagefault or process it synchronously). Yes, it's more code, but at least in x86 world we tried hard not to invent new paravirtualized mechanisms if we could avoid it, especially in the host->guest direction, and it's almost always paid off. This is because in case we don't get things right, it's much much harder to fix them on both the hypervisor and the guest side; by relying on existing code that work on bare metal hardware, the guest side exists already and you can develop against it. Paolo _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm