Re: [PATCH] docs: add zpci information to pci-addresses.rst

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/15/20 3:42 PM, Cornelia Huck wrote:
On Tue, 14 Apr 2020 23:06:47 +0200
Boris Fiuczynski <fiuczy@xxxxxxxxxxxxx> wrote:

On 4/15/20 12:51 PM, Cornelia Huck wrote:

+zPCI addresses
+==============
+
+For s390x machines, PCI addresses are handled yet differently. No
+topology information is relayed in the PCI addresses; instead, the
+``fid`` and ``uid`` elements of the ``zpci`` device convey information.
Should it be mentioned that qemu uses the pci address internally to plug
the device into its pci bus since the pci address as far as I know must
still be properly provided or generated.

Not sure how much is autogenerated; however, as this document talks
about how pci addresses in the xml translate to pci addresses in the
guest, I think we can simply ignore it?
ok. I just wanted to explain why the pci address part still exists and why libvirt also will autogenerate all other required bridges.




+In the simplest case, the following XML snippet
+
+::
+
+      <controller type='pci' index='0' model='pci-root'/>
+      <controller type='pci' index='1' model='pci-bridge'>
+        <model name='pci-bridge'/>
+        <target chassisNr='1'/>
+        <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'>
+          <zpci uid='0x0002' fid='0x00000001'/>
+        </address>
+      </controller>
+      <interface type='bridge'>
+        <mac address='02:ca:fe:fa:ce:04'/>
+        <source bridge='virbr0'/>
+        <model type='virtio'/>
+        <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'>
+          <zpci uid='0x0001' fid='0x00000000'/>
+        </address>
+      </interface>
+
+will result in the following in a Linux guest::
+
+  0001:00:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
+
+Note that the PCI bridge is not visible in the guest; s390x always has a flat
+topology.
+
+Neither are any changes in the PCI address visible in the guest; replacing
+the PCI address for the virtio-net device with
+
+::
+
+  <address type='pci' domain='0x0000' bus='0x01' slot='0x07' function='0x3'>
+
+will result in the exactly same view in the guest, as the addresses there
+are generated from the information provided via the ``zpci`` element (in
+fact, from the ``uid``).
+
This explains that the uid is used by the guest to define the pci domain
of the guest device.
How about an addition for the fid? Something like:

The function id 'fid' defines the slot address of the pci card in the
guest. It can be observed in the guest at /sys/bus/pci/slots. In the
example given above the card would be at /sys/bus/pci/slots/00000000.

Hm, is it intentional that this does not show up in the actual pci
address? But maybe I'm confused.
Are you referring to the slot of the pci address?

If yes, the pci slot does not provided the required address space for the function id. Also we once said that the pci bus in qemu would be like the pci bus of the CEC and the firmware does provide a a function id for every pci function. The zpci fid does one allow to do the same.




+Therefore, replacing the virtio-net device definition with the following XML
+snippet
+
+::
+
+      <interface type='bridge'>
+        <mac address='02:ca:fe:fa:ce:04'/>
+        <source bridge='virbr0'/>
+        <model type='virtio'/>
+        <address type='pci' domain='0x0000' bus='0x01' slot='0x07' function='0x3'>
+          <zpci uid='0x0007' fid='0x00000003'/>
+        </address>
+      </interface>
+
+will yield the following result in a Linux guest::
+
+  0007:00:00.0 Ethernet controller: Red Hat, Inc. Virtio network device
and the card would be at /sys/bus/pci/slots/00000003.

Do you want to explain the fid/slot stuff in a patch on top? Despite
your attempts at time travel, this patch has already been pushed :)
It seems to be a very pushy time... :( no matter how many breaks are produced... ;) 11 minutes from patch production time to commit time. Why even send it for review? :D
Once I understand you confusion above I will provide a patch...


--
Mit freundlichen Grüßen/Kind regards
   Boris Fiuczynski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Gregor Pillen
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294






[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux