
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