[libvirt] [PATCH 6/9] vz: cleanup loading domain code

Maxim Nestratov mnestratov at virtuozzo.com
Tue Jul 19 02:24:36 UTC 2016


14-Jun-16 11:45, Nikolay Shirokovskiy пишет:

>    9c14a9ab introduced vzNewDomain function to enlist libvirt domain
> object before actually creating vz sdk domain. Fix should fix
> race on same vz sdk domain added event where libvirt domain object is
> enlisted too. But later eb5e9c1e added locked checks for
> adding livirtd domain object to list on vz sdk domain added event.
> Thus now approach of 9c14a9ab is unnecessary complicated.
>
>    See we have otherwise unuseful prlsdkGetDomainIds function only
> to create minimal domain definition to create libvirt domain object.
> Also vzNewDomain is difficult to use as it creates partially
> constructed domain object.
>
>    Let's move back to original approach where prlsdkLoadDomain do
> all the necessary job. Another benefit is that we can now
> take driver lock for bare minimum and in single place. Reducing
> locking time have small disadvatage of double parsing on race
> conditions which is typical if domain is added thru vz driver.
> Well we have this double parse inevitably with current vz sdk api
> on any domain updates so i would not take it here seriously.
>
>    Performance events subscribtion is done before locked check and
> therefore could be done twice on races but this is not the problem.
>
> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
> ---
>   src/vz/vz_driver.c |  14 +---
>   src/vz/vz_sdk.c    | 184 +++++++++++++++++++++++++----------------------------
>   src/vz/vz_sdk.h    |   9 ++-
>   src/vz/vz_utils.c  |  24 -------
>   src/vz/vz_utils.h  |   4 --
>   5 files changed, 94 insertions(+), 141 deletions(-)

Yeah, looks reasonable and works fine. ACK




More information about the libvir-list mailing list