On Thu, 2020-05-14 at 15:34 +0200, Boris Fiuczynski wrote:
On 5/14/20 10:37 AM, Daniel P. Berrangé wrote:
> I don't see this existing behaviour as confusing. It looks like mostly
> being a docs ommission about auto-allocation taking place.
Maybe I am repeating myself but I find e.g the below example confusing
if I take into consideration that uid=0 is NOT a valid value and fid is
a valid value. Please note that the valid fid is dislocated from its
original device!
Specify this in the domain:
pcidev1: uid='0x0000' fid='0x00000000'
pcidev2: uid='0x0000'
Results in a defined domain:
pcidev1: uid='0x0002' fid='0x00000001'
pcidev2: uid='0x0001' fid='0x00000000'
If the user would be tying to fix the dislocating fid... one would very
likely try this:
Specify this in the domain:
pcidev1: uid='0x0000' fid='0x00000000'
pcidev2: uid='0x0000' fid='0x00000001'
Result:
error: Failed to define domain from mini-pcis.xml
error: XML error: Invalid PCI address uid='0x0000', must be > 0x0000 and
<= 0xffff
And partial assignments, which one might reasonably expect to work,
actually don't:
fid=0 -> interpreted the same as no information provided
-> valid address but probably not fid=0
fid=x -> interpreted as uid=0 fid=x
-> invalid address because uid=0 is invalid
Plus, if you have two devices:
uid=1, uid=2 -> interpreted as uid=1 fid=0, uid=2 fid=0
-> invalid addresses because of duplicated fid
Dan, please go through the entire thread and look at the other
examples that Shalini, Boris and I have provided: I think you'll
see why I feel like it's hard to argue that the current behavior can
be considered reasonable from the user's point of view.
--
Andrea Bolognani / Red Hat / Virtualization