
在 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