RE: KVM Live migration with GICv3

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

 



 Hello! Where are you? I'd like to take a look at your code.

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia


> -----Original Message-----
> From: Vijay Kilari [mailto:vijay.kilari@xxxxxxxxx]
> Sent: Tuesday, August 11, 2015 6:16 PM
> To: Pavel Fedin
> Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx; Christoffer Dall; Alex Bennée
> Subject: Re: KVM Live migration with GICv3
> 
> On Tue, Aug 11, 2015 at 12:11 PM, Pavel Fedin <p.fedin@xxxxxxxxxxx> wrote:
> >  Hello!
> >
> >>    I have prototyped Live migration with GICv3.
> >
> >  This is interesting of course, i will need this for my project too and i was also going to take a look at
> this later.
> >
> >> For this I have made following changes
> >>
> >> 1) Save and Restore of GICv3 registers in QEMU.
> >>     - For GICv2, QEMU is saving/restoring GICD, GICC  registers. For GICv3,
> >>      we have to save/restore GICD, GICR and ICC registers.
> >>      However ICC registers are system registers which cannot be
> >> accessed @ EL0 level (SRE=1). So these ICC registers should be
> >> accessed as mmio registers by QEMU, for this we have to add ioctl to
> >> access ICC @ EL1 level similar to GICC registers of GICv2.
> >
> >  Sorry, your description is a bit fuzzy. What ioctl's did you have to add and why?
> >  The kernel already has KVM_GET_ONE_REG and KVM_SET_ONE_REG ioctl's. And they can be used
> to access anything inside the VM, including system registers. I believe you would need only to
> implement handlers for GICv3 registers.
> 
> I mean CPU interface registers GICC* defined for vgicv2 under
> "vgic_cpu_ranges[]" in
> virt/kvm/arm/vgic-v2-emul.c needs to be saved and restored for vgicv3 as well.
> So to  access vgic_cpu_ranges[] for vgicv3, we need to register device
> for CPU registers space
> similar to gicv2 in QEMU for gicv3.
> 
> -----------------------------------------------------------------------------------------
>     memory_region_init_reservation(&s->cpuiomem[0], OBJECT(s),
>                                    "kvm-gic_cpu", 0x1000);
>     sysbus_init_mmio(sbd, &s->cpuiomem[0]);
>     kvm_arm_register_device(&s->cpuiomem[0],
>                             (KVM_ARM_DEVICE_VGIC_V3 << KVM_ARM_DEVICE_ID_SHIFT)
>                             | KVM_VGIC_V3_ADDR_TYPE_CPU,
>                             KVM_DEV_ARM_VGIC_GRP_ADDR,
>                             KVM_VGIC_V3_ADDR_TYPE_CPU,
>                             s->dev_fd);
> -------------------------------------------------------------------------------------------
> 
> Anyway, I will send RFC patches.
> 
> >
> >> Please provide your initial feedback.
> >
> >  Would be nice to take a look at patches.
> >
> >> I am attending KVM-forum next week @ Seattle. We can discuss there as well.
> >
> >  I would love to go there, and my company wanted to send me there. But it appears to be extremely
> difficult for a tech specialist from Russia to get a US visa. They are still considering me and the time is
> running out, so i'm unlikely to attend, unfortunately.
> >
> > Kind regards,
> > Pavel Fedin
> > Expert Engineer
> > Samsung Electronics Research center Russia
> >
> >

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux