在 2018/7/24 下午10:03, Andrea Bolognani 写道:
On Tue, 2018-07-10 at 16:02 +0800, Yi Min Zhao wrote:
> This patch provides a caching mechanism for the device address
> extensions uid and fid on S390. For efficient sparse address allocation,
> we introduce two hash tables for uid/fid which hold the address set
> information per domain. Also in order to improve performance of
> searching available value, we introduce our own callbacks for the two
> hashtables. In this way, uid/fid is saved in hash key and hash value
> could be any non-NULL pointer due to no operation on hash value. That is
> also the reason why we don't introduce hash value free callback.
Pretty much assuming your hash table implementation doesn't have
any issues, because I lack the expertise to review it properly :)
Some code style issues below.
[...]
> +static uint32_t virZPCIAddrCode(const void *name, uint32_t seed)
The return type and each of the function arguments should be on
separate lines, like
static uint32_t
virZPCIAddrCode(const void *name,
uint32_t seed)
[...]
> +static bool virZPCIAddrEqual(const void *namea, const void *nameb)
Same.
[...]
> +static void *virZPCIAddrCopy(const void *name)
Same.
[...]
> +static void virZPCIAddrKeyFree(void *name)
Same.
[...]
> +int
> +virDomainPCIAddressSetExtensionAlloc(virDomainPCIAddressSetPtr addrs,
> + virDomainPCIAddressExtensionFlags extFlags)
> +{
> + if (extFlags == VIR_PCI_ADDRESS_EXTENSION_ZPCI) {
This should probably be
if (extFlags & VIR_PCI_ADDRESS_EXTENSION_ZPCI)
since we're dealing with flags, but given the way you end up
calling the function it might be okay as it is.
Thanks for your comments!