s390x/pci: add common function measurement block
commit6e92c70c37547b6a247a206651dfcc583a57f484
authorYi Min Zhao <zyimin@linux.ibm.com>
Tue, 8 Jan 2019 17:37:30 +0000 (8 18:37 +0100)
committerCornelia Huck <cohuck@redhat.com>
Fri, 18 Jan 2019 10:52:01 +0000 (18 11:52 +0100)
treeafceec8e082e87d26d8117173b1ed63b01795319
parent3549f8c9e4f0ef1c3417ff43b2164f68ad34b922
s390x/pci: add common function measurement block

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 <zyimin@linux.ibm.com>
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
Message-Id: <1546969050-8884-2-git-send-email-pmorel@linux.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
hw/s390x/s390-pci-bus.c
hw/s390x/s390-pci-bus.h
hw/s390x/s390-pci-inst.c
hw/s390x/s390-pci-inst.h