On Wed, Mar 06, 2013 at 04:15:28PM +0100, Ján Tomko wrote:
On 03/05/13 11:36, Daniel P. Berrange wrote:
> On Mon, Mar 04, 2013 at 02:39:40PM -0500, Laine Stump wrote:
>> On 03/04/2013 11:51 AM, Ján Tomko wrote:
>>> It would be nice if we could add pci bridges even when there weren't
any
>>> specified in the XML, but there are too many PCI devices. I don't know
>>> what would be the nicest way to do that.
>>
>> If we auto-assign addresses for un-addressed devices first (your recent
>> patches did that, right? I forget the status of those), *then*
>> auto-create the required bridges (which themselves will need an
>> auto-assigned address), that should just happen.
>>
>> Of course, if we do that, then we won't have reserved any slots on bus 0
>> for even a single pci-bridge device, so we'll fail. Is the proper way
>> out of this to always reserve one (or maybe two, for good measure) slots
>> on any given bus to be used only for bridges? That way no matter how out
>> of hand things get, we'll always have a place we can add another bus.
>> (In the case of *lots* of devices, I assume that a device on a nested
>> PCI bridge would be less efficient, and may have some other limitations,
>> but it would be better than nothing. And if the admin was really
>> concerned about that, they could modify their config to explicitly place
>> several bridges directly on bus 0)
Maybe we could reserve the first bus as well?
I don't think we should artifically reserve anything that isn't
absolutely required by the underlying machine type.
> You'd have todo a 2 pass assignment. First count the number
of devices
> that need to have PCI addresses assigned. Then create the required
> number of bridges, then assign the addresses.
>
Which one is better? The reserved slots would make auto-adding bridges
on hotplug possible, but I fear the code would be too ugly. On the other
hand, 2-pass assignment sounds really easy to do :)
I think we just do the 2-pass auto-assignment.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|