在 2012-12-27四的 08:47 +0800,li guang写道: > 在 2012-12-26三的 18:07 +0800,Osier Yang写道: > > > >> > > >> No, even it's not supported now, the proposed XML should be > > >> designed compatible enough for future. Note that as long > > >> as a new XML is added, it can't changed/removed for back-compact, > > >> so when introducing new XMLs, you should consider the future. > > >> > > >> And on other hand, the introduced XML should be general > > >> enough for all drivers, not only QEMU. > > >> > > >> Anyway, regardless of the current qemu implementation, I think > > >> you should refer to the specification of PCI SGI, so that the > > >> proposed XML could be compatible enough for the future. > > > > > > yes, I will, but any problem with the pci-bridge definition in XML? > > > it's just a simple element. > > > can you tell more details about problem of this new definition? > > > > The point is how to known the pci device is attached to which > > pci bridge *if* multiple bridge is supported. I don't think > > the two types ("root" and "subordinate") could do the work. > > > > okay, let me describe the implicit map rule between bridge and device, > before this, we should bear in mind 1 bridge corresponding to only 1 bus > > root bridge (bus 0) > | > ----- subordinate bridge (bus 1) (slot 0, bus 0) > | | > | ----device 0 (slot 0, bus 1) > | | > | ----device 1 (slot 1, bus 1) > | > ------ device 0 (slot 2, bus 0) > | > ....... > > this map rule was in embedded in my changes. > maybe I have to describe more detail about the map rule between pci-bridge and devices, demo XML: <pci-bridge type='root'/> <pci-bridge type='secondary'> <address type='pci-bridge' bus='0x00' slot='0x00' function='0x0'/> </pci-bridge> <pci-bridge type='subordinate'> <address type='pci-bridge' bus='0x01' slot='0x00' function='0x0'/> </pci-bridge> <device-0> <address type='pci-bridge' bus='0x00' slot='0x01' function='0x0'/> </device-0> <device-1> <address type='pci-bridge' bus='0x01' slot='0x00' function='0x0'/> </device-1> <device-2> <address type='pci-bridge' bus='0x02' slot='0x00' function='0x0'/> </device-2> will have following structure: root bridge (bus 0) | -----secondary bridge (bus 1) (bus 0, slot 0) | | | ------subordinate bridge (bus 2) (bus 1, slot 0) | | | | | -------device 2 (bus 2, slot 0) | | | ------device 1 (bus 1, slot 1) | -----device 0 (bus 0, slot 1) > > > > > > >> > > >>> every subordinate will attach to root bridge, and has its own slot. > > >>> > > >>>> > > >>>> To describe the relationship between bridges, perhaps we will need > > >>>> "parent" and "child" properties for<pcibridge> device. > > >>>> > > >>>> To describe the relatioship between a pci device and a pci bridge, > > >>>> a property like "bridge" for general pci device should be enough. > > >>>> In this case, another property for<pcibridge> is needed, to > > >>>> indentify it, such as "id" or "name". > > >>> > > >>> only relationship is not enough, it's unsuitable for passing '-device > > >>> pci-bridge' to qemu, so I define a new device and address type for > > >>> pci-bridge in libvirt. > > >>> > > >>>> > > >>>> Regards, > > >>>> Osier > > >>>> > > >>>> > > >>> > > >> > > > > > > -- regards! li guang -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list