[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