Re: [libvirt] [PATCH v2 0/2] add support for --config in setmaxmem command

2014-08-05 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Thursday, July 31, 2014 11:41 AM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH v2 0/2] add support for --config in setmaxmem 
 command
 
 Currently, setmaxmem return success on an active
 domain, but nothing happened, which is not correct.
 This series will disable changing max memory on
 an active domain;
 then add --config support for setmaxmem command.
 
 v2: disable changing max memory on an active domain
 drop useless as_assert
 
 Chen Hanxiao (2):
   LXC: add support for persistent config in lxcDomainSetMemoryFlags
   LXC: add support for --config in setmaxmem command
 
  src/lxc/lxc_driver.c | 100
 ---
  1 file changed, 46 insertions(+), 54 deletions(-)
 
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH RFC] LXC: add HOME environment variable

2014-08-04 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Friday, July 25, 2014 2:40 PM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH RFC] LXC: add HOME environment variable
 
 We lacked of HOME environment variable,
 set 'HOME=/' as default.
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/lxc/lxc_container.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
 index 1cf2c8f..9df9c04 100644
 --- a/src/lxc/lxc_container.c
 +++ b/src/lxc/lxc_container.c
 @@ -236,6 +236,7 @@ static virCommandPtr
 lxcContainerBuildInitCmd(virDomainDefPtr vmDef,
  virCommandAddEnvString(cmd, PATH=/bin:/sbin);
  virCommandAddEnvString(cmd, TERM=linux);
  virCommandAddEnvString(cmd, container=lxc-libvirt);
 +virCommandAddEnvString(cmd, HOME=/);
  virCommandAddEnvPair(cmd, container_uuid, uuidstr);
  if (nttyPaths  1)
  virCommandAddEnvPair(cmd, container_ttys,
 virBufferCurrentContent(buf));
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 1/2] LXC: add support for --config in setmaxmem command

2014-07-28 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Michal Privoznik [mailto:mpriv...@redhat.com]
 Sent: Thursday, July 24, 2014 5:00 PM
 To: Chen, Hanxiao/陈 晗霄; libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH 1/2] LXC: add support for --config in setmaxmem
 command
 
 On 16.07.2014 11:51, Chen Hanxiao wrote:
  In lxc, we could not use setmaxmem command
  with --config options.
  This patch will add support for this.
 
  Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
  ---
src/lxc/lxc_driver.c | 69
 ++--
1 file changed, 46 insertions(+), 23 deletions(-)
 
  diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
  index b7b4b02..be6ee19 100644
  --- a/src/lxc/lxc_driver.c
  +++ b/src/lxc/lxc_driver.c
  @@ -721,10 +721,10 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom,
 unsigned long newmem,
virLXCDomainObjPrivatePtr priv;
virLXCDriverPtr driver = dom-conn-privateData;
virLXCDriverConfigPtr cfg = NULL;
  -unsigned long oldmax = 0;
 
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
  -  VIR_DOMAIN_AFFECT_CONFIG, -1);
  +  VIR_DOMAIN_AFFECT_CONFIG |
  +  VIR_DOMAIN_MEM_MAXIMUM, -1);
 
if (!(vm = lxcDomObjFromDomain(dom)))
goto cleanup;
  @@ -743,32 +743,55 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom,
 unsigned long newmem,
persistentDef)  0)
goto cleanup;
 
  -if (flags  VIR_DOMAIN_AFFECT_LIVE)
  -oldmax = vm-def-mem.max_balloon;
  -if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  -if (!oldmax || oldmax  persistentDef-mem.max_balloon)
  -oldmax = persistentDef-mem.max_balloon;
  -}
  +if (flags  VIR_DOMAIN_MEM_MAXIMUM) {
  +if (flags  VIR_DOMAIN_AFFECT_LIVE) {
  +if (newmem  vm-def-mem.cur_balloon) {
  +virReportError(VIR_ERR_OPERATION_INVALID, %s,
  +   _(Cannot resize the max memory less than 
  current
  +  memory for an active domain));
  +goto cleanup;
  +}
  +vm-def-mem.max_balloon = newmem;
 
 Are things that easy? Don't we need to communicate this with the
 lxc_controler somehow? Even though you allow only extending, I think
 unless we are 100% sure guest will see the resize, we shouldn't allow this.
 
I focused on '--config', 
so I kept what the original lxcDomainSetMaxMemory did.
It looks that guest could not see the resize, and we shouldn't allow this.

  +}
 
  -if (newmem  oldmax) {
  -virReportError(VIR_ERR_INVALID_ARG,
  -   %s, _(Cannot set memory higher than max 
  memory));
  -goto cleanup;
  -}
  +if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  +sa_assert(persistentDef);
 
 Is this assert needed? Did clang complain or is this just a pure lefover
 from copying from qemu_driver.c?
 
  +persistentDef-mem.max_balloon = newmem;
  +if (persistentDef-mem.cur_balloon  newmem)
  +persistentDef-mem.cur_balloon = newmem;
  +if (virDomainSaveConfig(cfg-configDir, persistentDef)  0)
  +goto cleanup;
  +}
  +} else {
  +unsigned long oldmax = 0;
 
  -if (flags  VIR_DOMAIN_AFFECT_LIVE) {
  -if (virCgroupSetMemory(priv-cgroup, newmem)  0) {
  -virReportError(VIR_ERR_OPERATION_FAILED,
  -   %s, _(Failed to set memory for domain));
  -goto cleanup;
  +if (flags  VIR_DOMAIN_AFFECT_LIVE)
  +oldmax = vm-def-mem.max_balloon;
  +if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  +if (!oldmax || oldmax  persistentDef-mem.max_balloon)
  +oldmax = persistentDef-mem.max_balloon;
}
  -}
 
  -if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  -sa_assert(persistentDef);
 
 Well, since it has been here already, I think we can leave it in your
 patch too.
 
  -persistentDef-mem.cur_balloon = newmem;
  -if (virDomainSaveConfig(cfg-configDir, persistentDef)  0)
  +if (newmem  oldmax) {
  +virReportError(VIR_ERR_INVALID_ARG,
  +   %s, _(Cannot set memory higher than max 
  memory));
goto cleanup;
  +}
  +
  +if (flags  VIR_DOMAIN_AFFECT_LIVE) {
  +if (virCgroupSetMemory(priv-cgroup, newmem)  0) {
  +virReportError(VIR_ERR_OPERATION_FAILED,
  +   %s, _(Failed to set memory for domain));
  +goto cleanup;
  +}
  +}
  +
  +if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  +sa_assert(persistentDef);
  +persistentDef-mem.cur_balloon = newmem;
  +if (virDomainSaveConfig(cfg-configDir, persistentDef)  0)
  +goto cleanup

Re: [libvirt] [PATCH 2/2] LXC: use lxcDomainSetMemoryFlags to do lxcDomainSetMaxMemory's work

2014-07-28 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Michal Privoznik [mailto:mpriv...@redhat.com]
 Sent: Thursday, July 24, 2014 5:00 PM
 To: Chen, Hanxiao/陈 晗霄; libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH 2/2] LXC: use lxcDomainSetMemoryFlags to do
 lxcDomainSetMaxMemory's work
 
 On 16.07.2014 11:51, Chen Hanxiao wrote:
  Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
  ---
src/lxc/lxc_driver.c | 36 +---
1 file changed, 5 insertions(+), 31 deletions(-)
 
  diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
  index be6ee19..9f974eb 100644
  --- a/src/lxc/lxc_driver.c
  +++ b/src/lxc/lxc_driver.c
  @@ -680,37 +680,6 @@ lxcDomainGetMaxMemory(virDomainPtr dom)
return ret;
}
 
  -static int lxcDomainSetMaxMemory(virDomainPtr dom, unsigned long newmax)
  -{
  -virDomainObjPtr vm;
  -int ret = -1;
  -
  -if (!(vm = lxcDomObjFromDomain(dom)))
  -goto cleanup;
  -
  -if (virDomainSetMaxMemoryEnsureACL(dom-conn, vm-def)  0)
  -goto cleanup;
  -
  -if (newmax  vm-def-mem.cur_balloon) {
  -if (!virDomainObjIsActive(vm)) {
  -vm-def-mem.cur_balloon = newmax;
  -} else {
  -virReportError(VIR_ERR_OPERATION_INVALID, %s,
  -   _(Cannot set max memory lower than current
  -  memory for an active domain));
  -goto cleanup;
  -}
  -}
  -
  -vm-def-mem.max_balloon = newmax;
  -ret = 0;
  -
  - cleanup:
  -if (vm)
  -virObjectUnlock(vm);
  -return ret;
  -}
  -
 
 A-ha! This is what I was looking for in 1/2. Okay, but I'd rather note
 this fact in 1/2 commit message to make it more obvious.

Will update commit message in v2.

 
static int lxcDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
   unsigned int flags)
{
  @@ -809,6 +778,11 @@ static int lxcDomainSetMemory(virDomainPtr dom, 
  unsigned
 long newmem)
return lxcDomainSetMemoryFlags(dom, newmem, VIR_DOMAIN_AFFECT_LIVE);
}
 
  +static int lxcDomainSetMaxMemory(virDomainPtr dom, unsigned long memory)
  +{
  +return lxcDomainSetMemoryFlags(dom, memory, VIR_DOMAIN_MEM_MAXIMUM);
  +}
  +
 
 So previously, calling virDomainSetMaxMemory() on an inactive LXC domain
 would succeed. Now, after the change, due to problem with _CURRENT,
 _LIVE and _CONFIG this will basically return success, but without any
 effect on the domain config. And that's wrong.
 

Current lxcDomainSetMaxMemory did:
inactive: affect domain config
active: success but no change 

So we should fix that and will do in v2.

Thanks,
- Chen

 
static int
lxcDomainSetMemoryParameters(virDomainPtr dom,
 virTypedParameterPtr params,
 
 
 Moreover, I think these two patches can be joined into one.
 
 Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] LXC: Fix virLXCControllerSetupDevPTS() wrt user namespaces

2014-07-28 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Richard Weinberger
 Sent: Tuesday, July 29, 2014 4:59 AM
 To: libvir-list@redhat.com
 Cc: Richard Weinberger; da...@sigma-star.at
 Subject: [libvirt] [PATCH] LXC: Fix virLXCControllerSetupDevPTS() wrt user
 namespaces
 
 The gid value passed to devpts has to be translated by hand as
 virLXCControllerSetupDevPTS() is called before setting up the user
 and group mappings.
 Otherwise devpts will use an unmapped gid and openpty()
 will fail within containers.
 Linux commit commit 23adbe12
 (fs,userns: Change inode_capable to capable_wrt_inode_uidgid)
 uncovered that issue.
 
 Signed-off-by: Richard Weinberger rich...@nod.at

Reviewed-by: Chen Hanxiao chenhanx...@cn.fujitsu.com

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 0/2] add support for --config in setmaxmem command

2014-07-23 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Wednesday, July 16, 2014 5:51 PM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH 0/2] add support for --config in setmaxmem command
 
 
 Chen Hanxiao (2):
   LXC: add support for --config in setmaxmem command
   LXC: use lxcDomainSetMemoryFlags to do lxcDomainSetMaxMemory's work
 
  src/lxc/lxc_driver.c | 105
 +--
  1 file changed, 51 insertions(+), 54 deletions(-)
 
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] LXC: show used memory as 0 when domain is not active

2014-07-21 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Thursday, July 17, 2014 5:28 PM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH] LXC: show used memory as 0 when domain is not 
 active
 
 Before:
 virsh # dominfo chx3
 State:  shut off
 Max memory: 92160 KiB
 Used memory:92160 KiB
 
 After:
 virsh # dominfo container1
 State:  shut off
 Max memory: 92160 KiB
 Used memory:0 KiB
 
 Similar to qemu cases.
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/lxc/lxc_driver.c   | 2 +-
  src/qemu/qemu_driver.c | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
 index b7b4b02..f094f86 100644
 --- a/src/lxc/lxc_driver.c
 +++ b/src/lxc/lxc_driver.c
 @@ -584,7 +584,7 @@ static int lxcDomainGetInfo(virDomainPtr dom,
 
  if (!virDomainObjIsActive(vm)) {
  info-cpuTime = 0;
 -info-memory = vm-def-mem.cur_balloon;
 +info-memory = 0;
  } else {
  if (virCgroupGetCpuacctUsage(priv-cgroup, (info-cpuTime))  0) {
  virReportError(VIR_ERR_OPERATION_FAILED,
 diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
 index 33541d3..01107cf 100644
 --- a/src/qemu/qemu_driver.c
 +++ b/src/qemu/qemu_driver.c
 @@ -2534,7 +2534,7 @@ static int qemuDomainGetInfo(virDomainPtr dom,
  info-memory = vm-def-mem.cur_balloon;
  }
  } else {
 -info-memory = vm-def-mem.cur_balloon;
 +info-memory = 0;
  }
 
  info-nrVirtCpu = vm-def-vcpus;
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] LXC: create a bind mount for sysfs when enable userns but disable netns

2014-07-18 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Monday, July 14, 2014 6:02 PM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH] LXC: create a bind mount for sysfs when enable 
 userns
 but disable netns
 
 kernel commit 7dc5dbc879bd0779924b5132a48b731a0bc04a1e
 forbid us doing a fresh mount for sysfs
 when enable userns but disable netns.
 This patch will create a bind mount in this senario.
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/lxc/lxc_container.c | 44 +---
  1 file changed, 33 insertions(+), 11 deletions(-)
 
 diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
 index 4d89677..8a27215 100644
 --- a/src/lxc/lxc_container.c
 +++ b/src/lxc/lxc_container.c
 @@ -815,10 +815,13 @@ static int lxcContainerSetReadOnly(void)
  }
 
 
 -static int lxcContainerMountBasicFS(bool userns_enabled)
 +static int lxcContainerMountBasicFS(bool userns_enabled,
 +bool netns_disabled)
  {
  size_t i;
  int rc = -1;
 +char* mnt_src = NULL;
 +int mnt_mflags;
 
  VIR_DEBUG(Mounting basic filesystems);
 
 @@ -826,8 +829,25 @@ static int lxcContainerMountBasicFS(bool userns_enabled)
  bool bindOverReadonly;
  virLXCBasicMountInfo const *mnt = lxcBasicMounts[i];
 
 +/* When enable userns but disable netns, kernel will
 + * forbid us doing a new fresh mount for sysfs.
 + * So we had to do a bind mount for sysfs instead.
 + */
 +if (userns_enabled  netns_disabled 
 +STREQ(mnt-src, sysfs)) {
 +if (VIR_STRDUP(mnt_src, /sys)  0) {
 +goto cleanup;
 +}
 +mnt_mflags = MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_RDONLY|MS_BIND;
 +} else {
 +if (VIR_STRDUP(mnt_src, mnt-src)  0) {
 +goto cleanup;
 +}
 +mnt_mflags = mnt-mflags;
 +}
 +
  VIR_DEBUG(Processing %s - %s,
 -  mnt-src, mnt-dst);
 +  mnt_src, mnt-dst);
 
  if (mnt-skipUnmounted) {
  char *hostdir;
 @@ -856,7 +876,7 @@ static int lxcContainerMountBasicFS(bool userns_enabled)
  if (virFileMakePath(mnt-dst)  0) {
  virReportSystemError(errno,
   _(Failed to mkdir %s),
 - mnt-src);
 + mnt_src);
  goto cleanup;
  }
 
 @@ -867,24 +887,24 @@ static int lxcContainerMountBasicFS(bool userns_enabled)
   * we mount the filesystem in read-write mode initially, and then do 
 a
   * separate read-only bind mount on top of that.
   */
 -bindOverReadonly = !!(mnt-mflags  MS_RDONLY);
 +bindOverReadonly = !!(mnt_mflags  MS_RDONLY);
 
  VIR_DEBUG(Mount %s on %s type=%s flags=%x,
 -  mnt-src, mnt-dst, mnt-type, mnt-mflags  ~MS_RDONLY);
 -if (mount(mnt-src, mnt-dst, mnt-type, mnt-mflags  ~MS_RDONLY, 
 NULL)
  0) {
 +  mnt_src, mnt-dst, mnt-type, mnt_mflags  ~MS_RDONLY);
 +if (mount(mnt_src, mnt-dst, mnt-type, mnt_mflags  ~MS_RDONLY, 
 NULL)
  0) {
  virReportSystemError(errno,
   _(Failed to mount %s on %s type %s 
 flags=%x),
 - mnt-src, mnt-dst, NULLSTR(mnt-type),
 - mnt-mflags  ~MS_RDONLY);
 + mnt_src, mnt-dst, NULLSTR(mnt-type),
 + mnt_mflags  ~MS_RDONLY);
  goto cleanup;
  }
 
  if (bindOverReadonly 
 -mount(mnt-src, mnt-dst, NULL,
 +mount(mnt_src, mnt-dst, NULL,
MS_BIND|MS_REMOUNT|MS_RDONLY, NULL)  0) {
  virReportSystemError(errno,
   _(Failed to re-mount %s on %s flags=%x),
 - mnt-src, mnt-dst,
 + mnt_src, mnt-dst,
   MS_BIND|MS_REMOUNT|MS_RDONLY);
  goto cleanup;
  }
 @@ -893,6 +913,7 @@ static int lxcContainerMountBasicFS(bool userns_enabled)
  rc = 0;
 
   cleanup:
 +VIR_FREE(mnt_src);
  VIR_DEBUG(rc=%d, rc);
  return rc;
  }
 @@ -1643,7 +1664,8 @@ static int lxcContainerSetupPivotRoot(virDomainDefPtr
 vmDef,
  goto cleanup;
 
  /* Mounts the core /proc, /sys, etc filesystems */
 -if (lxcContainerMountBasicFS(vmDef-idmap.nuidmap)  0)
 +if (lxcContainerMountBasicFS(vmDef-idmap.nuidmap,
 + !vmDef-nnets)  0)
  goto cleanup;
 
  /* Ensure entire root filesystem (except /.oldroot) is readonly */
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list

Re: [libvirt] [PATCHv4 1/2] lxc: allow to keep or drop capabilities

2014-07-18 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Cédric Bosdonnat
 Sent: Friday, July 18, 2014 4:02 PM
 To: libvir-list@redhat.com
 Cc: Cédric Bosdonnat
 Subject: [libvirt] [PATCHv4 1/2] lxc: allow to keep or drop capabilities
 
 Added capabilities in the features section of LXC domains
 configuration. This section can contain elements named after the
 capabilities like:
 
   mknod state=on/, keep CAP_MKNOD capability
   sys_chroot state=off/ drop CAP_SYS_CHROOT capability
 
 Users can restrict or give more capabilities than the default using
 this mechanism.
 ---

Reviewed-by: Chen Hanxiao chenhanx...@cn.fujitsu.com

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCHv4 2/2] lxc domain from xml: convert lxc.cap.drop

2014-07-18 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Cédric Bosdonnat
 Sent: Friday, July 18, 2014 4:03 PM
 To: libvir-list@redhat.com
 Cc: Cédric Bosdonnat
 Subject: [libvirt] [PATCHv4 2/2] lxc domain from xml: convert lxc.cap.drop
 
 ---

Reviewed-by: Chen Hanxiao chenhanx...@cn.fujitsu.com

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2] LXC: add support for --config in setmem command

2014-07-10 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Ján Tomko [mailto:jto...@redhat.com]
 Sent: Thursday, July 10, 2014 9:40 PM
 
  -if (virDomainSetMemoryEnsureACL(dom-conn, vm-def)  0)
  +if (virDomainSetMemoryFlagsEnsureACL(dom-conn, vm-def, flags)  0)
  +goto cleanup;
  +
  +if (!(caps = virLXCDriverGetCapabilities(driver, false)))
  +goto cleanup;
  +
  +if (virDomainLiveConfigHelperMethod(caps, driver-xmlopt, vm, flags,
  +persistentDef)  0)
   goto cleanup;
 
 
   if (newmem  vm-def-mem.max_balloon) {
 
 This check should only be done for AFFECT_LIVE.
 For AFFECT_CONFIG it needs to be checked against the max_balloon value from
 the persistent definition.
 
Oops, my fault.
Thanks for your comments

- Chen


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] LXC: fix an improper comments for lxcDomainDestroyFlags

2014-07-08 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Friday, July 04, 2014 11:10 AM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH] LXC: fix an improper comments for 
 lxcDomainDestroyFlags
 
 Currently @flag is not used yet.
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/lxc/lxc_driver.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
 index 79c3b4a..5c4ab58 100644
 --- a/src/lxc/lxc_driver.c
 +++ b/src/lxc/lxc_driver.c
 @@ -1420,7 +1420,7 @@ lxcConnectDomainEventDeregisterAny(virConnectPtr conn,
  /**
   * lxcDomainDestroyFlags:
   * @dom: pointer to domain to destroy
 - * @flags: an OR'ed set of virDomainDestroyFlags
 + * @flags: extra flags; not used yet.
   *
   * Sends SIGKILL to container root process to terminate the container
   *
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] LXC: introduce lxcDomainSetMemoryFlags

2014-07-07 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Ján Tomko [mailto:jto...@redhat.com]
 Sent: Monday, July 07, 2014 6:54 PM
 To: Chen, Hanxiao/陈 晗霄; libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH] LXC: introduce lxcDomainSetMemoryFlags
 
 On 07/04/2014 10:21 AM, Chen Hanxiao wrote:
  In lxc, we could not use setmem command
  with --config options.
  This patch will add support for this.
 
  Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
  ---
   src/lxc/lxc_driver.c | 52
 ++--
   1 file changed, 42 insertions(+), 10 deletions(-)
 
  diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
  index 79c3b4a..68795cb 100644
  --- a/src/lxc/lxc_driver.c
  +++ b/src/lxc/lxc_driver.c
  @@ -706,11 +706,19 @@ static int lxcDomainSetMaxMemory(virDomainPtr dom,
 unsigned long newmax)
   return ret;
   }
 
  -static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem)
  +static int lxcDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
  +unsigned int flags)
 
 Indentation looks off.
 
   {
   virDomainObjPtr vm;
  +virDomainDefPtr persistentDef = NULL;
  +virCapsPtr caps = NULL;
   int ret = -1;
   virLXCDomainObjPrivatePtr priv;
  +virLXCDriverPtr driver = dom-conn-privateData;
  +virLXCDriverConfigPtr cfg = NULL;
  +
  +virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
  +  VIR_DOMAIN_AFFECT_CONFIG, -1);
 
   if (!(vm = lxcDomObjFromDomain(dom)))
   goto cleanup;
  @@ -720,22 +728,38 @@ static int lxcDomainSetMemory(virDomainPtr dom, 
  unsigned
 long newmem)
   if (virDomainSetMemoryEnsureACL(dom-conn, vm-def)  0)
   goto cleanup;
 
 'make check' complains about a mismatched ACL check:
 ./lxc/lxc_driver.c:728 Mismatch check 'virDomainSetMemoryEnsureACL' for
 function 'lxcDomainSetMemoryFlags'
 
 
 
  +if (!(caps = virLXCDriverGetCapabilities(driver, false)))
  +goto cleanup;
  +
  +if (virDomainLiveConfigHelperMethod(caps, driver-xmlopt, vm, flags,
  +persistentDef)  0)
  +goto cleanup;
  +
 
   if (newmem  vm-def-mem.max_balloon) {
   virReportError(VIR_ERR_INVALID_ARG,
  %s, _(Cannot set memory higher than max 
  memory));
   goto cleanup;
   }
 
 This check is only valid for AFFECT_LIVE. For AFFECT_CONFIG, a separate check
 is needed.

It should be virDomainSetMemoryFlagsEnsureACL.

 
 
  -if (!virDomainObjIsActive(vm)) {
  -virReportError(VIR_ERR_OPERATION_INVALID,
  -   %s, _(Domain is not running));
  -goto cleanup;
  -}
  + if (flags  VIR_DOMAIN_AFFECT_CONFIG) {
  + cfg = virLXCDriverGetConfig(driver);
  + persistentDef-mem.cur_balloon = newmem;
  + if (virDomainSaveConfig(cfg-configDir, persistentDef)  0)
  + goto cleanup;
  + }
 
  -if (virCgroupSetMemory(priv-cgroup, newmem)  0) {
  -virReportError(VIR_ERR_OPERATION_FAILED,
  -   %s, _(Failed to set memory for domain));
  -goto cleanup;
  +if (flags  VIR_DOMAIN_AFFECT_LIVE) {
 
  +if (!virDomainObjIsActive(vm)) {
  +virReportError(VIR_ERR_OPERATION_INVALID,
  +   %s, _(Domain is not running));
  +goto cleanup;
  +}
 
 virDomainLiveConfigHelperMethod already checked if the domain is running when
 AFFECT_LIVE is specified.
Yes, we should remove this block.

Thanks for your review, v2 will come soon.

- Chen

 
  +
  +if (virCgroupSetMemory(priv-cgroup, newmem)  0) {
  +virReportError(VIR_ERR_OPERATION_FAILED,
  +   %s, _(Failed to set memory for domain));
  +goto cleanup;
  +}
   }
 
   ret = 0;
 
 
 Jan
 


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] LXC: trivially support flag VIR_DRV_FEATURE_TYPED_PARAM_STRING

2014-06-24 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Ján Tomko [mailto:jto...@redhat.com]
 Sent: Monday, June 23, 2014 9:08 PM
 To: Chen, Hanxiao/陈 晗霄; libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH] LXC: trivially support flag
 VIR_DRV_FEATURE_TYPED_PARAM_STRING
 
 On 06/23/2014 09:28 AM, Chen Hanxiao wrote:
  fix:
  virsh -c lxc:/// memtune DOMAIN
  error: Unable to get number of memory parameters
  error: unsupported flags (0x4) in function lxcDomainGetMemoryParameters
 
  Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
  ---
   src/lxc/lxc_driver.c | 6 +-
   1 file changed, 5 insertions(+), 1 deletion(-)
 
 
 lxcDomainGetSchedulerParametersFlags will need a similar fix.
 
Yes, it needs a similar fix.

 It seems commit 399394 (released in v1.2.2) introduced this when it marked
 the LXC driver as supporting the option without marking it as supported in
 these APIs.
 
We should updated the comments as 399394 does.

Thanks,
- Chen

 
  diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
  index 06f3e18..6b170fe 100644
  --- a/src/lxc/lxc_driver.c
  +++ b/src/lxc/lxc_driver.c
  @@ -895,7 +895,11 @@ lxcDomainGetMemoryParameters(virDomainPtr dom,
   size_t i;
 
   virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
  -  VIR_DOMAIN_AFFECT_CONFIG, -1);
  +  VIR_DOMAIN_AFFECT_CONFIG,
  +  VIR_TYPED_PARAM_STRING_OKAY, -1);
  +
  +/* We don't return strings, and thus trivially support this flag.  */
  +flags = ~VIR_TYPED_PARAM_STRING_OKAY;
 
   if (!(vm = lxcDomObjFromDomain(dom)))
   goto cleanup;
 
 


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2] LXC: trivially support flag VIR_DRV_FEATURE_TYPED_PARAM_STRING

2014-06-24 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Ján Tomko [mailto:jto...@redhat.com]
 Sent: Tuesday, June 24, 2014 4:57 PM
 To: Chen, Hanxiao/陈 晗霄; libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH v2] LXC: trivially support flag
 VIR_DRV_FEATURE_TYPED_PARAM_STRING
 
 On 06/24/2014 09:24 AM, Chen Hanxiao wrote:
  fix:
  virsh -c lxc:/// memtune DOMAIN
  error: Unable to get number of memory parameters
  error: unsupported flags (0x4) in function lxcDomainGetMemoryParameters
 
  Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
  ---
  v2: also fix a similar issue in lxcDomainGetSchedulerParametersFlags
 
   src/lxc/lxc_driver.c | 16 ++--
   1 file changed, 14 insertions(+), 2 deletions(-)
 
  diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
  index 06f3e18..d8a31d3 100644
  --- a/src/lxc/lxc_driver.c
  +++ b/src/lxc/lxc_driver.c
  @@ -895,7 +895,13 @@ lxcDomainGetMemoryParameters(virDomainPtr dom,
   size_t i;
 
   virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
  -  VIR_DOMAIN_AFFECT_CONFIG, -1);
  +  VIR_DOMAIN_AFFECT_CONFIG,
  +  VIR_TYPED_PARAM_STRING_OKAY, -1);
 
 This fails to compile for me:
   CC   lxc/libvirt_driver_lxc_impl_la-lxc_driver.lo
 lxc/lxc_driver.c:899:48: error: too many arguments provided to function-like
 macro invocation
   VIR_TYPED_PARAM_STRING_OKAY, -1);
^
 
Sorry for my mistake.

 
  +
  +/* We blindly return a string, and let libvirt.c and
  + * remote_driver.c do the filtering on behalf of older clients
  + * that can't parse it.  */
 
 The original comment was OK. This is incorrect - neither of these APIs return
 a string.
 

Thanks, I see.

  +flags = ~VIR_TYPED_PARAM_STRING_OKAY;
 
   if (!(vm = lxcDomObjFromDomain(dom)))
   goto cleanup;
  @@ -1993,7 +1999,13 @@ lxcDomainGetSchedulerParametersFlags(virDomainPtr 
  dom,
   virLXCDomainObjPrivatePtr priv;
 
   virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
  -  VIR_DOMAIN_AFFECT_CONFIG, -1);
  +  VIR_DOMAIN_AFFECT_CONFIG |
  +  VIR_TYPED_PARAM_STRING_OKAY, -1);
  +
  +/* We blindly return a string, and let libvirt.c and
  + * remote_driver.c do the filtering on behalf of older clients
  + * that can't parse it.  */
 
 Same here.
 
  +flags = ~VIR_TYPED_PARAM_STRING_OKAY;
 
   if (!(vm = lxcDomObjFromDomain(dom)))
   goto cleanup;
 
 
 Jan


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] lxc: don't update memUsage when failing to get memory usage

2014-06-23 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com]
 On Behalf Of Chen Hanxiao
 Sent: Friday, June 20, 2014 2:21 PM
 To: libvir-list@redhat.com
 Subject: [libvirt] [PATCH] lxc: don't update memUsage when failing to get 
 memory
 usage
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/lxc/lxc_cgroup.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
 index 8dfdc60..af95941 100644
 --- a/src/lxc/lxc_cgroup.c
 +++ b/src/lxc/lxc_cgroup.c
 @@ -194,7 +194,8 @@ static int virLXCCgroupGetMemUsage(virCgroupPtr cgroup,
  unsigned long memUsage;
 
  ret = virCgroupGetMemoryUsage(cgroup, memUsage);
 -meminfo-memusage = (unsigned long long) memUsage;
 +if (ret == 0)
 +meminfo-memusage = (unsigned long long) memUsage;
 
  return ret;
  }
 --
 1.9.0
 
 --
 libvir-list mailing list
 libvir-list@redhat.com
 https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH] vircgroup: Don't leak keypath if failed to kill process

2014-05-16 Thread chenhanx...@cn.fujitsu.com
ping

 -Original Message-
 From: Chen, Hanxiao/陈 晗霄
 Sent: Tuesday, May 13, 2014 4:01 PM
 To: libvir-list@redhat.com
 Cc: Chen, Hanxiao/陈 晗霄
 Subject: [libvirt][PATCH] vircgroup: Don't leak keypath if failed to kill 
 process
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
  src/util/vircgroup.c | 10 ++
  1 file changed, 6 insertions(+), 4 deletions(-)
 
 diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
 index fce380a..c578bd0 100644
 --- a/src/util/vircgroup.c
 +++ b/src/util/vircgroup.c
 @@ -3370,7 +3370,7 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
  int rc;
  bool killedAny = false;
  char *keypath = NULL;
 -DIR *dp;
 +DIR *dp = NULL;
  virCgroupPtr subgroup = NULL;
  struct dirent *ent;
  int direrr;
 @@ -3381,7 +3381,7 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
  return -1;
 
  if ((rc = virCgroupKillInternal(group, signum, pids))  0)
 -return -1;
 +goto cleanup;
  if (rc == 1)
  killedAny = true;
 
 @@ -3394,7 +3394,7 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
  }
  virReportSystemError(errno,
   _(Cannot open %s), keypath);
 -return -1;
 +goto cleanup;
  }
 
  while ((direrr = virDirRead(dp, ent, keypath))  0) {
 @@ -3429,7 +3429,9 @@ virCgroupKillRecursiveInternal(virCgroupPtr group,
 
   cleanup:
  virCgroupFree(subgroup);
 -closedir(dp);
 +VIR_FREE(keypath);
 +if (dp)
 +closedir(dp);
 
  return ret;
  }
 --
 1.9.0


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] libvirt 1.2.4 and virt-manager 0.9.0 are not incompatible

2014-05-06 Thread chenhanx...@cn.fujitsu.com
Hi,

You need to update libvirt-python:

http://libvirt.org/sources/python/


From: libvir-list-boun...@redhat.com [mailto:libvir-list-boun...@redhat.com] On 
Behalf Of xeon_feng
Sent: Tuesday, May 06, 2014 2:00 PM
To: libvirt-us...@redhat.com; libvir-list@redhat.com
Subject: [libvirt] libvirt 1.2.4 and virt-manager 0.9.0 are not incompatible

Hello everyone

I encountered a problem when I completed the update of libvirt from 0.10 to 
1.2.4 .
The problem was that  virt-manager(version 0.9.0) could not start and 
reported error : ImportError:  /usr/lib64/libvirt.so.0: version 
'LIBVIRT_PRIVIATE_0.10.2' not found (required by 
/usr/lib64/python2.6/site-packages/libvirtmod.so).
I found the libvirt.so.0 link file just in the /usr/lib64/ directory , but 
it was linking  to  libvirt.so.0.1002.4 .not to the libvirt.so.0.10.2
I made libvirt.so.0 to link to  libvirt.so.0.10.2 and restarted 
virt-manager , virt-manager started normally  then  restarted libvirtd  
failure, reporting error:l “ibvirtd: /usr/lib64/libvirt.so.0: version 
'LIBVIRT_1.2.3' not found (require by libvirtd) .”
I made   libvirt.so.0 to link to  libvirt.so.0.1002.4  and  restart 
libvirtd , libvirtd started normally  again.

Please help me to resolve the problem and give me some advise
Thanks a lot..


Xeon.Feng
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] docs: update docs for setting the QEMU BIOS file path

2014-04-29 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Jim Fehlig [mailto:jfeh...@suse.com]
 Sent: Tuesday, April 29, 2014 12:25 PM
 To: Chen, Hanxiao/陈 晗霄
 Cc: Nehal J Wani; libvir-list
 Subject: Re: [libvirt] [PATCH] docs: update docs for setting the QEMU BIOS 
 file
 path
 
 chenhanx...@cn.fujitsu.com wrote:
 
  -Original Message-
  From: Nehal J Wani [mailto:nehaljw.k...@gmail.com]
  Sent: Monday, April 28, 2014 1:07 PM
  To: Chen, Hanxiao/陈 晗霄
  Cc: libvir-list
  Subject: Re: [libvirt] [PATCH] docs: update docs for setting the QEMU BIOS 
  file
  path
 
 
 ddThe optional codeloader/code tag refers to a firmware
 blob
   used to assist the domain creation process. At this time, it is
   only needed by Xen fully virtualized
 
  Is the sentence only needed by Xen fully virtualized valid even now?
 
 
  I'm not familiar with XEN...
 
  Anyone can help?
 
 
 There is certainly a lot of Xen fully virtualized config with
 loader/usr/lib/xen/boot/hvmloader/loader.  But it sounds like your
 change makes the only needed by part invalid.  I.e. loader is used
 by Xen fully virtualized domains as well as setting the QEMU BIOS file
 path for QEMU/KVM domains.
 
Thanks for your help :)

- Chen

 Regards,
 Jim


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2] docs: update docs for setting the QEMU BIOS path

2014-04-29 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Martin Kletzander [mailto:mklet...@redhat.com]
 Sent: Tuesday, April 29, 2014 4:19 PM
 To: Chen, Hanxiao/陈 晗霄
 Cc: libvir-list@redhat.com
 Subject: Re: [libvirt] [PATCH v2] docs: update docs for setting the QEMU BIOS
 path
 
 On Tue, Apr 29, 2014 at 03:47:26PM +0800, Chen Hanxiao wrote:
 commit ddf2dfa1f79af0405df5ca10583764a497c7a0db
 provide a way to determine which bios files to use.
 
 s/provide/provided/
 
 But we need to update related docs.
 
 disccussed at:
 http://www.redhat.com/archives/libvir-list/2012-June/msg01286.html
 
 Signed-off-by: Chen Hanxiao chenhanx...@cn.fujitsu.com
 ---
 v2: updated description by Jim's comments.
 
  docs/formatdomain.html.in | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
 index b9bbcc9..e4bd87e 100644
 --- a/docs/formatdomain.html.in
 +++ b/docs/formatdomain.html.in
 @@ -126,9 +126,9 @@
  these. span class=sinceSince 0.0.1/span/dd
dtcodeloader/code/dt
ddThe optional codeloader/code tag refers to a firmware blob
 -used to assist the domain creation process. At this time, it is
 -only needed by Xen fully virtualized
 -domains. span class=sinceSince 0.1.0/span/dd
 +used to assist the domain creation process. It is used by Xen
 +fully virtualized domains as well as setting the QEMU BIOS file
 +path for QEMU/KVM domains. span class=sinceSince
 0.9.12/span/dd
 
 I'd like to keep the Since 0.1.0 there for the Xen part, so I added
 it back there and pushed, feel free to object.
 

Keeping Xen part would be a better choice.

Thanks,
- Chen


--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] docs: update docs for setting the QEMU BIOS file path

2014-04-28 Thread chenhanx...@cn.fujitsu.com


 -Original Message-
 From: Nehal J Wani [mailto:nehaljw.k...@gmail.com]
 Sent: Monday, April 28, 2014 1:07 PM
 To: Chen, Hanxiao/陈 晗霄
 Cc: libvir-list
 Subject: Re: [libvirt] [PATCH] docs: update docs for setting the QEMU BIOS 
 file
 path
 
 ddThe optional codeloader/code tag refers to a firmware blob
   used to assist the domain creation process. At this time, it is
   only needed by Xen fully virtualized
 
 Is the sentence only needed by Xen fully virtualized valid even now?

I'm not familiar with XEN...

Anyone can help?

Thanks,
- Chen

 For example, the support for UEFI firmware has also been introduced,
 which can be easily used by extracting bios.bin from
 http://download.opensuse.org/repositories/home:/jejb1:/UEFI/openSUSE_12.2
 /x86_64/OVMF-0.1+r14742-1.1.x86_64.rpm
 and passing  its path under the loader option.
 
 --
 Nehal J Wani

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list