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. The guest shouldn't have awareness of whether or not OPAL is involved. -- 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