All of lore.kernel.org
 help / color / mirror / Atom feed
* pci dev config issue
@ 2007-12-26  0:42 Zhai, Edwin
  2008-01-07  1:47 ` Mark Williamson
  0 siblings, 1 reply; 2+ messages in thread
From: Zhai, Edwin @ 2007-12-26  0:42 UTC (permalink / raw)
  To: xen-devel; +Cc: Zhai, Edwin

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 1.3.4.5]]]
 #
 # 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?
 

=============== multiple vbd config ===================
 vbd = ""
  769 = ""
   virtual-device = "769"
   device-type = "disk"
   protocol = "x86_32-abi"
   backend-id = "0"
   state = "4"
   backend = "/local/domain/0/backend/vbd/6/769"
   ring-ref = "9"
   event-channel = "7"
  833 = ""
   virtual-device = "833"
   device-type = "disk"
   protocol = "x86_32-abi"
   backend-id = "0"
   state = "3"
   backend = "/local/domain/0/backend/vbd/6/833"
   ring-ref = "790"
   event-channel = "9"


================ 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"
 

 
-- 
best rgds,
edwin

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

* Re: pci dev config issue
  2007-12-26  0:42 pci dev config issue Zhai, Edwin
@ 2008-01-07  1:47 ` Mark Williamson
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Williamson @ 2008-01-07  1:47 UTC (permalink / raw)
  To: xen-devel; +Cc: Zhai, Edwin

> 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 1.3.4.5]]]
>  #
>  # 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?

Cheers,
Mark


-- 
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!

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

end of thread, other threads:[~2008-01-07  1:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-26  0:42 pci dev config issue Zhai, Edwin
2008-01-07  1:47 ` Mark Williamson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.