On Tue, Mar 02, 2021 at 10:37:59AM +0100, BALATON Zoltan wrote: > On Tue, 2 Mar 2021, Alexey Kardashevskiy wrote: > > On 02/03/2021 14:35, David Gibson wrote: > > > Alexey or Zoltan, any thoughts on how non-PAPR versions of this would > > > call into qemu to get the non-guest parts of VOF to execute? > > > > Non-PAPR could do it as we do it for soft breakpoints in KVM - some > > predefined illegal instruction which KVM knows that it is used for soft > > breakpoints. > > So far I've thought I'd need to implement TYPE_PPC_VIRTUAL_HYPERVISOR > interface in the machine for the code in target/ppc/excp_helper.c to forward > client syscalls to QEMU where I could handle the VOF related calls but not > sure this is the best way.
I'm not sure that will work on its own. VIRTUAL_HYPERVISOR just traps the "sc 1" (hypecall instruction). If that's an illegal instruction for CPU, we can theoretically still use it, but I suspect TCG will flag it as an illegal instruction and trap before we even get to the VIRTUAL_HYPERVISOR dispatch point. You'll need to investigate. > This could be OK for the initial boot when > nothing else should use syscalls yet but with RTAS this may not work as the > guest OS could also use syscalls so to avoid conflicts we may need to shut > down the virtual hypervisor on quiesce Uh.. no. VIRTUAL_HYPERVISOR doesn't intercept normal system calls, only "level 1" system calls which are explicitly designated for hypercalls. > which means I may need a minimal > guest only rtas for pegasos2 (which would be OK as I think it's only used > for shutdown/reboot anyway). Also may need some changes to allow empty > callbacks in vhyp to be ignored when I only want to implement hypercall > method but that's just adding checks to only call non-NULL callbacks in > PPCVirtualHypervisorClass. > > There's also an old patch from Benjamin Herrenschmidt to add MOL OSI which > is a similar hypercall interface: > https://github.com/ozbenh/qemu/commit/6dc8803641e323030ffd01ad8ce0dcf081896698 > This might also be useful later to use MOL paravirtual drivers to speed up > MacOSX emulation. but I haven't looked at the details yet. > > Any other ideas? > > Regards, > BALATON Zoltan > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature