[libvirt] [PATCH v2] qemu: neglect cur_balloon in supplied xml
nshirokovskiy at virtuozzo.com
Thu Aug 25 09:04:57 UTC 2016
On 30.07.2016 16:04, John Ferlan wrote:
> s/$subj/qemu: Filter cur_balloon ABI check for certain transactions
> On 06/09/2016 10:32 AM, Nikolay Shirokovskiy wrote:
>> cur_balloon value can change in between preparing external config and
>> using it in operations like save and migrate. As a resutl operation will
>> fail for ABI inconsistency. cur_balloon changes can not be predicted
>> generally and thus operations will fail from time to time.
>> Skip checking cur_balloon if domain lock can not be hold between
>> preparing external config outside of libvirt and checking it against active
>> config. Instead update cur_balloon value in external config from active config.
>> This way it is protected from forges and is keeped up to date too.
> Since the domain lock is not held during preparation of an external XML
> config, it is possible that the value can change resulting in unexpected
> failures during ABI consistency checking for some save and migrate
> This patch adds a new flag to skip the checking of the cur_balloon value
> and then sets the destination value to the source value to ensure
> subsequent checks without the skip flag will succeed.
>> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
>> src/conf/domain_conf.c | 14 +++++++++++---
>> src/conf/domain_conf.h | 9 +++++++++
>> src/libvirt_private.syms | 1 +
>> src/qemu/qemu_domain.c | 29 ++++++++++++++++++++---------
>> src/qemu/qemu_domain.h | 6 +++---
>> src/qemu/qemu_driver.c | 5 +++--
>> src/qemu/qemu_migration.c | 4 ++--
>> 7 files changed, 49 insertions(+), 19 deletions(-)
> This change seems reasonable to me and it doesn't seem to negate the
> primary focus of commit id 'f2fc1eee' (which added the checks).
> I do have a few suggestions and can make those locally before pushing
> after the current release is cut.
Thanx! I argee to all the suggestions, especially to keeping the name of the function
that checks ABI. After all its name reflects 99% of its functionality and it is
idiomatic for 'check' functions to have side effects in this project.
More information about the libvir-list