Dear all, On 05/15/2015 08:42 AM, Pavel Fedin wrote: > Hello! > >> Added -M virt,gicversion=2,3 property to configure GICv2 or GICv3. >> GICv3 save/restore is not supported as vgic-v3-emul.c is yet to support >> them. >> >> Signed-off-by: Ashok Kumar <ash...@broadcom.com> > > I also work on this, just not published yet. Some notes about your version: > 1. May be there should be hw/intc/arm_gicv3_kvm.c file created for GICv3? As > far as i can > see, save/restore code should differ a lot. > 2. kvm_arch_irqchip_create() should probe only for type we want to get. It > has to be > passed there somehow from the virt machine initializer. After a closer look, kvm_arch_irqchip_create is called here with test mode = true. With that option, at kernel level, we only check the kvm device registered its ops and do not go further (see kvm_ioctl_create_device in kvm_main.c): typically the gic kvm_device is not created at that stage. So if my understanding is correct, that piece of code only should & does check either GICv2 or GICV3 was seen in the host dt and accordingly registered. I think Ashok kvm_arch_irqchip_create code is good here. Actual device creation is handled in the device itself with test mode = false.
Do you share this understanding? Best Regards Eric And, if we want GICv3, then upon > failure it should return error, not zero. This is because when > kvm_arch_irqchip_create() > returns zero, a fallback code is used, which will create GICv2. > 3. Perhaps you should base your work on these patch sets: > https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg00941.html > https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg01505.html > > I added Shlomo to cc because he might also be interested. > > Kind regards, > Pavel Fedin > Expert Engineer > Samsung Electronics Research center Russia > > >