From c9d5432d85b2a31ce30e785daa4b1fe0c3917b9d Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Fri, 30 Aug 2013 11:11:08 -0600 Subject: [PATCH] libxl: Move detection of autoballoon to libxl_conf Detecting whether or not to autoballoon is configuration related, so move the code to libxl_conf. --- src/libxl/libxl_conf.c | 22 ++++++++++++++++++++++ src/libxl/libxl_conf.h | 3 +++ src/libxl/libxl_driver.c | 25 +------------------------ 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 8129c7fe1f..f8937a4aa3 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -978,6 +978,28 @@ error: return -1; } +bool +libxlGetAutoballoonConf(libxlDriverPrivatePtr driver) +{ + const libxl_version_info *info; + regex_t regex; + int ret; + + info = libxl_get_version_info(driver->ctx); + if (!info) + return true; /* default to on */ + + ret = regcomp(®ex, + "(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )", + REG_NOSUB | REG_EXTENDED); + if (ret) + return true; + + ret = regexec(®ex, info->commandline, 0, NULL, 0); + regfree(®ex); + return ret == REG_NOMATCH; +} + virCapsPtr libxlMakeCapabilities(libxl_ctx *ctx) { diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 9d72b72242..0498012f1c 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -120,6 +120,9 @@ struct _libxlSavefileHeader { uint32_t unused[10]; }; +bool +libxlGetAutoballoonConf(libxlDriverPrivatePtr driver); + virCapsPtr libxlMakeCapabilities(libxl_ctx *ctx); diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 9fb4fa513e..91beb306df 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1207,29 +1207,6 @@ libxlStateCleanup(void) return 0; } -static bool -libxlGetAutoballoon(libxlDriverPrivatePtr driver) -{ - const libxl_version_info *info; - regex_t regex; - int ret; - - info = libxl_get_version_info(driver->ctx); - if (!info) - return true; /* default to on */ - - ret = regcomp(®ex, - "(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )", - REG_NOSUB | REG_EXTENDED); - if (ret) - return true; - - ret = regexec(®ex, info->commandline, 0, NULL, 0); - regfree(®ex); - return ret == REG_NOMATCH; -} - - static int libxlStateInitialize(bool privileged, virStateInhibitCallback callback ATTRIBUTE_UNUSED, @@ -1376,7 +1353,7 @@ libxlStateInitialize(bool privileged, } /* setup autoballoon */ - libxl_driver->autoballoon = libxlGetAutoballoon(libxl_driver); + libxl_driver->autoballoon = libxlGetAutoballoonConf(libxl_driver); /* Load running domains first. */ if (virDomainObjListLoadAllConfigs(libxl_driver->domains, -- GitLab