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