qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/17] s390x: the big pci update
@ 2016-06-24 13:28 Cornelia Huck
  2016-06-24 13:28 ` [Qemu-devel] [PATCH 01/17] s390x/pci: fix failures of dma map/unmap Cornelia Huck
                   ` (19 more replies)
  0 siblings, 20 replies; 30+ messages in thread
From: Cornelia Huck @ 2016-06-24 13:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: mst, marcel, borntraeger, agraf, jfrei, zyimin, Cornelia Huck

We had been looking at remodelling the pci representation for s390x
to handle our slightly odd architecture correctly some time ago
already, but now we have a patchset that we're happy with.

There's a bunch of bugfixes, cleanups and architecture conformance
changes in there, but the most interesting part is the modelling
(which, in some respects, takes a cue from what sPAPR does).

We introduce a 'zpci' device to hold s390x-specific properties like
the uid and fid. This 'zpci' device is connected to a run-of-the-mill
pci device via the 'target' property.

Example command line portion:

-device zpci,uid=1,fid=1,target=vpci0 \
-device vfio-pci,host=0000:00:00.0,id=vpci0 \
-device zpci,target=vpci1 \
-device vfio-pci,host=0001:00:00.0,id=vpci1 \
-device vfio-pci,host=0002:00:00.0,id=vpci2

For device vpci0, uid and fid are specified in the associated zpci
device.
For device vpci1, uid and fid are automatically generated.
For device vpci2, first an associated zpci device is generated and
then autogenerated values for uid and fid are placed in it.

This should accomodate both specifying our special parameters and
re-using standard statements for pci devices. You can still specify
bus/slot/function for the pci device, but it will not be propagated
into the guest (as the s390 pci architecture does not allow for it;
the guest only sees uid/fid).

The "introduce S390PCI<foo>" patches are probably the most interesting
for those looking at the modelling.

I'd love to see some feedback from a PCI perspective, as I'm happy
from the s390x perspective (and I'd like to see this in 2.7).

Branch available at git://github.com/cohuck/qemu s390x-pci-update

Yi Min Zhao (17):
  s390x/pci: fix failures of dma map/unmap
  s390x/pci: acceleration for getting S390pciState
  s390x/pci: write fid in CLP_QUERY_PCI_FN
  s390x/pci: unify FH_ macros
  s390x/pci: refactor s390_pci_find_dev_by_fh
  s390x/pci: enforce zPCI state checking
  s390x/pci: introduce S390PCIBus
  s390x/pci: introduce S390PCIIOMMU
  s390x/pci: introduce S390PCIBusDevice qdev
  s390x/pci: enable uid-checking
  s390x/pci: enable zpci hot-plug/hot-unplug
  s390x/pci: add checkings in CLP_SET_PCI_FN
  s390x/pci: refactor s390_pci_find_dev_by_idx
  s390x/pci: refactor list_pci
  s390x/pci: fix stpcifc_service_call
  s390x/pci: replace fid with idx in msg data of msix
  s390x/pci: make hot-unplug handler smoother

 hw/s390x/s390-pci-bus.c  | 579 +++++++++++++++++++++++++++++++++++------------
 hw/s390x/s390-pci-bus.h  |  77 ++++++-
 hw/s390x/s390-pci-inst.c | 266 ++++++++++++++++------
 hw/s390x/s390-pci-inst.h |   7 +-
 include/hw/s390x/sclp.h  |   1 +
 target-s390x/kvm.c       |   4 +-
 6 files changed, 718 insertions(+), 216 deletions(-)

-- 
2.9.0

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2016-07-05 13:52 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-24 13:28 [Qemu-devel] [PATCH 00/17] s390x: the big pci update Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 01/17] s390x/pci: fix failures of dma map/unmap Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 02/17] s390x/pci: acceleration for getting S390pciState Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 03/17] s390x/pci: write fid in CLP_QUERY_PCI_FN Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 04/17] s390x/pci: unify FH_ macros Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 05/17] s390x/pci: refactor s390_pci_find_dev_by_fh Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 06/17] s390x/pci: enforce zPCI state checking Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 07/17] s390x/pci: introduce S390PCIBus Cornelia Huck
2016-06-28 14:39   ` Marcel Apfelbaum
2016-06-28 15:20     ` Cornelia Huck
2016-06-28 15:40       ` Marcel Apfelbaum
2016-06-28 17:15         ` Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 08/17] s390x/pci: introduce S390PCIIOMMU Cornelia Huck
2016-06-24 13:28 ` [Qemu-devel] [PATCH 09/17] s390x/pci: introduce S390PCIBusDevice qdev Cornelia Huck
2016-06-28 14:49   ` Marcel Apfelbaum
2016-06-28 15:21     ` Cornelia Huck
2016-06-28 15:43       ` Marcel Apfelbaum
2016-06-24 13:28 ` [Qemu-devel] [PATCH 10/17] s390x/pci: enable uid-checking Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 11/17] s390x/pci: enable zpci hot-plug/hot-unplug Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 12/17] s390x/pci: add checkings in CLP_SET_PCI_FN Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 13/17] s390x/pci: refactor s390_pci_find_dev_by_idx Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 14/17] s390x/pci: refactor list_pci Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 15/17] s390x/pci: fix stpcifc_service_call Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 16/17] s390x/pci: replace fid with idx in msg data of msix Cornelia Huck
2016-06-24 13:29 ` [Qemu-devel] [PATCH 17/17] s390x/pci: make hot-unplug handler smoother Cornelia Huck
2016-06-28 14:33 ` [Qemu-devel] [PATCH 00/17] s390x: the big pci update Marcel Apfelbaum
2016-06-28 15:02   ` Cornelia Huck
2016-06-28 16:35     ` Marcel Apfelbaum
2016-07-01 12:59 ` Cornelia Huck
2016-07-05 13:51 ` Cornelia Huck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).