On 03.01.19 11:17, Pierre Morel wrote: > From: Yi Min Zhao <zyi...@linux.ibm.com> > > Common function measurement block is used to report zPCI internal > counters of successful pcilg/stg/stb and rpcit instructions to > a memory location provided by the program. > > This patch introduces a new ZpciFmb structure and schedules a timer > callback to copy the zPCI measures to the FMB in the guest memory > at an interval time set to 4s. > > An error while attemping to update the FMB, would generate an error > event to the guest. > > The pcilg/stg/stb and rpcit interception handlers increase the > related counter on a successful call. > The guest shall pass a null FMBA (FMB address) in the FIB (Function > Information Block) when it issues a Modify PCI Function Control > instruction to switch off FMB and stop the corresponding timer. > > Signed-off-by: Yi Min Zhao <zyi...@linux.ibm.com> > Signed-off-by: Pierre Morel <pmo...@linux.ibm.com> > --- > hw/s390x/s390-pci-bus.c | 4 +- > hw/s390x/s390-pci-bus.h | 29 +++++++++++ > hw/s390x/s390-pci-inst.c | 133 > +++++++++++++++++++++++++++++++++++++++++++++-- > hw/s390x/s390-pci-inst.h | 1 + > 4 files changed, 163 insertions(+), 4 deletions(-) > > diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c > index 060ff06..f0d34dd 100644 > --- a/hw/s390x/s390-pci-bus.c > +++ b/hw/s390x/s390-pci-bus.c > @@ -989,6 +989,7 @@ static void s390_pcihost_hot_unplug(HotplugHandler > *hotplug_dev, > bus = pci_get_bus(pci_dev); > devfn = pci_dev->devfn; > object_unparent(OBJECT(pci_dev)); > + fmb_timer_free(pbdev);
I wonder if this should go into the unrealize function instead. -- Thanks, David / dhildenb