[libvirt] [PATCH v6 09/13] conf: Allocate/release 'uid' and 'fid' in PCI address

Yi Min Zhao zyimin at linux.ibm.com
Thu Oct 18 07:13:45 UTC 2018



在 2018/10/17 下午10:30, Andrea Bolognani 写道:
> On Tue, 2018-10-16 at 11:28 +0800, Yi Min Zhao wrote:
>> 在 2018/10/11 下午10:50, Andrea Bolognani 写道:
>>> On Fri, 2018-09-28 at 16:46 +0800, Yi Min Zhao wrote:
>>>>    # conf/device_conf.h
>>>> +virDeviceInfoPCIAddressExtensionIsPresent;
>>>> +virDeviceInfoPCIAddressExtensionIsWanted;
>>>>    virDeviceInfoPCIAddressIsPresent;
>>>>    virDeviceInfoPCIAddressIsWanted;
>>>>    virDomainDeviceAddressIsValid;
>>>> @@ -119,6 +121,9 @@ virDomainCCWAddressSetFree;
>>>>    virDomainPCIAddressBusIsFullyReserved;
>>>>    virDomainPCIAddressBusSetModel;
>>>>    virDomainPCIAddressEnsureAddr;
>>>> +virDomainPCIAddressExtensionReleaseAddr;
>>>> +virDomainPCIAddressExtensionReserveAddr;
>>>> +virDomainPCIAddressExtensionReserveNextAddr;
>>> I'm not quite quire we need to export these functions.
>>>
>>> With the recent changes, we've gotten to the point that we're not
>>> even passing a virZPCIDeviceAddress to them, but rather they have
>>> the very same signature as the regular virPCIDeviceAddress...
>>>
>>> So it should be possible to just make them static and only call
>>> them from the virDomainPCIAddressReserveAddr() and friends, right?
>>> Which is where I was hoping we could eventually get. Or did I
>>> miss something?
>> I think this would make things complex. If either PCI address or
>> zPCI address exists, we have to do more checks for calling
>> virDomainPCIAddressReserveAddr(). And there are amounts of
>> code calling ***IsWanted() to call ***ReserveNext***(). I think
>> keeping them separately is better.
> Again, I might be missing something because I haven't actually tried
> implementing any of this, but at least from the theoretical point of
> view I don't see how keeping them separate would make things simpler:
> if anything, it seems to me like it would make them more complicated
> for the calling code because now you have to worry about the PCI
> address extensions *in addition* to the PCI address itself.
>
For example, during collection stage, checking both PCI address and 
extension address
is requried, and still need to separately do some additional checks for 
PCI address if it
is present, at last in reserving addr function we still check if PCI 
normal address or
extension address exists to separately reserve present one. So that we 
have to do the
check on the same condition repetively. If you don't have strong 
opposition, I want to
send the new version ASAP.

-- 
Yi Min




More information about the libvir-list mailing list