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

Re: [Xen-devel] pci dev config issue

> I saw the pci dev's config is different from vbd/vnif with following
> comments:
>  # Parsing the device SXP's. In most cases, the SXP looks
>  # like this:
>  #
>  # [device, [vif, [mac, xx:xx:xx:xx:xx:xx], [ip]]]
>  #
>  # However, for PCI devices it looks like this:
>  #
>  # [device, [pci, [dev, [domain, 0], [bus, 0], [slot, 1]]]]
>  #
>  # It seems the reasoning for this difference is because
>  # pciif.py needs all the PCI device configurations at
>  # the same time when creating the devices.
> So multiple pci devices sit in one single config entry with single uuid(see
> following configs), which make device handling difficult(consider if
> support hotplug).
> Can anybody explain why pciif.py needs all pci devs configured at one time?
> Is it still valid now? If not, can I remove this limitation?

The comment you have there describes how the configuration data is passed to 
pciif.py in Xend, which configures the PCI devices.  I can't think of a 
reason why the code couldn't be refactored to use a separate S-expression 
config entry for each PCI device.

However, I'm not sure that this corresponds to the output you quoted next:

> ================ multiple pci config ===================
>  pci = ""
>   8 = ""
>    0 = ""
>     domain = "ExampleDomain"
>     frontend = "/local/domain/8/device/pci/0"
>     uuid = "7f2dc1a1-d0de-ebf0-37fd-67ff0103c3c9"
>     dev-1 = "0000:03:00.00"
>     dev-0 = "0000:02:00.00"
>     state = "4"
>     online = "1"
>     frontend-id = "8"
>     num_devs = "2"
>     root-0 = "0000:00"
>     root_num = "1"

This is output from xenstore-ls, right?  The structures that are in XenStore 
are unrelated to the structures that are in the SXP configuration format.    
You don't have to change the SXP, you could directly change the xenstore 
layout to better fit your purposes.  This would break an established 
interface, however.

Couldn't you add hotplug support to the existing interface?  You'd need to add 
a xenstore capability node (there are examples of this in the net driver) for 
front and backends to advertise that they support hotplugging.  You'd then 
need to establish a protocol of a sequence of xenstore transactions to safely 
accomplish the hotplug operation.

Does that help answer your question?


Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.