[libvirt] Entering freeze for libvirt-1.0.5

Ján Tomko jtomko at redhat.com
Fri Apr 26 18:19:46 UTC 2013


On 04/26/2013 04:47 PM, Viktor Mihajlovski wrote:
> On 04/26/2013 04:35 PM, Ján Tomko wrote:
>>
>> The big switch down there lists the architectures/machines that do have
>> a PCI bus and we disallow adding PCI devices if they don't.
>>
>> I thought that any device that qemuAssignDevicePCISlots assigns a PCI
>> address to would fail at QEMU level with a message about the PCI bus not
>> found, but it seems this is not the case for the implicit USB controller
>> -- we assign the address 0:0:1.2 to it, but it shows up
>> just as '-usb' at the qemu commmand line.
>>
>> Are you able to start it after you delete the PCI address from the USB
>> controller in the XML? (in this case, qemuAssignDevicePCISlots will just
>> assign it without checking if there's a PCI bus available)
>>
> No, the PCI address always get added by default. Specifying model=none
> doesn't help either.

A fix that doesn't assign a PCI address for model=none USB controller is
pushed now.

>>>
>>>    Hum, the patch seems to add a big switch about def->os.arch
>>> in qemuDomainDefPostParse()
>>>
>>> +    case VIR_ARCH_ALPHA:
>>> +    case VIR_ARCH_PPC:
>>> +    case VIR_ARCH_PPC64:
>>> +    case VIR_ARCH_PPCEMB:
>>> +    case VIR_ARCH_SH4:
>>> +    case VIR_ARCH_SH4EB:
>>> +        addPCIRoot = true;
>>> +        break;
>>> +    default:
>>> +        break;
>>>
>>>    I smell a case for s390 is needed somehow.
>>
>> Not here, it would result in it getting an implicit PCI controller in
>> the XML, even though it doesn't have a PCI bus.
>>
>> The right thing would be to catch all the non-PCI devices we assign an
>> adddress to. Or we could just assume 1 PCI bus is always available as a
>> desperate measure not to break anything.
> I am currently testing the workaround adding a fake PCI root. Will get
> you posted. If that works it will give us time to come up with a
> cleaner solution for the next release. I don't want to unconditionally
> disable PCI for s390 even if it is not implemented in today's QEMUs.

Other than the none USB controller fix, which I've already pushed, it
seems the patches I posted before that to fix it have finally made it
through:
https://www.redhat.com/archives/libvir-list/2013-April/msg01946.html

If we really have to do a workaround, I'd suggest just ignoring the PCI
root and assuming one PCI bus is always there. I fear adding PCI roots
to machines that don't have them would cause us similar trouble that the
implicit USB controller does now.

Jan




More information about the libvir-list mailing list