On Wed, Mar 13, 2019 at 09:46:08AM +0100, Cédric Le Goater wrote: > On 3/13/19 5:03 AM, David Gibson wrote: > > On Tue, Mar 12, 2019 at 06:00:38PM +0100, Cédric Le Goater wrote: > >> On 2/25/19 3:39 AM, David Gibson wrote: > >>> On Fri, Feb 22, 2019 at 12:28:30PM +0100, Cédric Le Goater wrote: > >>>> These controls will be used by the H_INT_SET_QUEUE_CONFIG and > >>>> H_INT_GET_QUEUE_CONFIG hcalls from QEMU. They will also be used to > >>>> restore the configuration of the XIVE EQs in the KVM device and to > >>>> capture the internal runtime state of the EQs. Both 'get' and 'set' > >>>> rely on an OPAL call to access from the XIVE interrupt controller the > >>>> EQ toggle bit and EQ index which are updated by the HW when event > >>>> notifications are enqueued in the EQ. > >>>> > >>>> The value of the guest physical address of the event queue is saved in > >>>> the XIVE internal xive_q structure for later use. That is when > >>>> migration needs to mark the EQ pages dirty to capture a consistent > >>>> memory state of the VM. > >>>> > >>>> To be noted that H_INT_SET_QUEUE_CONFIG does not require the extra > >>>> OPAL call setting the EQ toggle bit and EQ index to configure the EQ, > >>>> but restoring the EQ state will. > >> > >> I think we need to add some kind of flags to differentiate the hcall > >> H_INT_SET_QUEUE_CONFIG from the restore of the EQ. The hcall does > >> not need OPAL support call and this could help in the code > >> transition. > > > > Hrm. What's the actual difference in the semantics between the two > > cases. > > None. > > But we don't need to set the EQ state in the case of the HCALL and it's > (very) practical to run guests with XIVE enabled without the OPAL support. > The latter is the main reason clearly. > > Thinking of it, I could test the EQ toggle bit and index passed to KVM > and skip the OPAL call which restores the EQ state if they are zero. > This is because I know that the OPAL call configuring the EQ resets them. > > That will do. No need for a flag. That's a much better idea. -- 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