* 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.