WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 6 of 9] xl: add a global configuration file

On Friday 27 August 2010 15:53:24 stefano.stabellini@xxxxxxxxxxxxx wrote:
> Add a global configuration file: /etc/xen/xl.conf; the only option
> currently parsed is autoballoon that is 1 by default.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>

Acked-by: Christoph Egger <Christoph.Egger@xxxxxxx>

> diff -r 434f3315185a tools/examples/Makefile
> --- a/tools/examples/Makefile Fri Aug 27 12:43:18 2010 +0100
> +++ b/tools/examples/Makefile Fri Aug 27 14:09:51 2010 +0100
> @@ -21,6 +21,7 @@ XEN_CONFIGS += xmexample.nbd
>  XEN_CONFIGS += xmexample.vti
>  XEN_CONFIGS += xend-pci-quirks.sxp
>  XEN_CONFIGS += xend-pci-permissive.sxp
> +XEN_CONFIGS += xl.conf
>
>  .PHONY: all
>  all:
> diff -r 434f3315185a tools/examples/xl.conf
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/tools/examples/xl.conf  Fri Aug 27 14:09:51 2010 +0100
> @@ -0,0 +1,5 @@
> +## Global XL config file ##
> +
> +# automatically balloon down dom0 when xen doesn't have enough free
> +# memory to create a domain
> +autoballon=1
> diff -r 434f3315185a tools/libxl/xl.c
> --- a/tools/libxl/xl.c        Fri Aug 27 12:43:18 2010 +0100
> +++ b/tools/libxl/xl.c        Fri Aug 27 14:09:51 2010 +0100
> @@ -29,18 +29,49 @@
>
>  #include "libxl.h"
>  #include "libxl_utils.h"
> +#include "libxlutil.h"
>  #include "xl.h"
>
>  xentoollog_logger_stdiostream *logger;
> +int autoballoon = 1;
>
>  static xentoollog_level minmsglevel = XTL_PROGRESS;
>
> +static void parse_global_config(const char *configfile,
> +                              const char *configfile_data,
> +                              int configfile_len)
> +{
> +    long l;
> +    XLU_Config *config;
> +    int e;
> +
> +    config = xlu_cfg_init(stderr, configfile);
> +    if (!config) {
> +        fprintf(stderr, "Failed to allocate for configuration\n");
> +        exit(1);
> +    }
> +
> +    e = xlu_cfg_readdata(config, configfile_data, configfile_len);
> +    if (e) {
> +        fprintf(stderr, "Failed to parse config file: %s\n", strerror(e));
> +        exit(1);
> +    }
> +
> +    if (!xlu_cfg_get_long (config, "autoballoon", &l))
> +        autoballoon = l;
> +
> +    xlu_cfg_destroy(config);
> +}
> +
>  int main(int argc, char **argv)
>  {
>      int opt = 0;
>      char *cmd = 0;
>      struct cmd_spec *cspec;
>      int ret;
> +    char *config_file;
> +    void *config_data = 0;
> +    int config_len = 0;
>
>      while ((opt = getopt(argc, argv, "+v")) >= 0) {
>          switch (opt) {
> @@ -69,6 +100,21 @@ int main(int argc, char **argv)
>          exit(1);
>      }
>
> +    /* Read global config file options */
> +    ret = asprintf(&config_file, "%s/xl.conf",
> libxl_xen_config_dir_path()); +    if (ret < 0) {
> +        fprintf(stderr, "memory allocation failed ret=%d, errno=%d\n",
> ret, errno); +        exit(1);
> +    }
> +
> +    ret = libxl_read_file_contents(&ctx, config_file,
> +            &config_data, &config_len);
> +    if (ret)
> +        fprintf(stderr, "Failed to read config file: %s: %s\n",
> +                config_file, strerror(errno));
> +    parse_global_config(config_file, config_data, config_len);
> +    free(config_file);
> +
>      /* Reset options for per-command use of getopt. */
>      argv += optind;
>      argc -= optind;
> diff -r 434f3315185a tools/libxl/xl.h
> --- a/tools/libxl/xl.h        Fri Aug 27 12:43:18 2010 +0100
> +++ b/tools/libxl/xl.h        Fri Aug 27 14:09:51 2010 +0100
> @@ -90,4 +90,7 @@ struct cmd_spec *cmdtable_lookup(const c
>  extern libxl_ctx ctx;
>  extern xentoollog_logger_stdiostream *logger;
>
> +/* global options */
> +extern int autoballoon;
> +
>  #endif /* XL_H */
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel