[libvirt] process= support for 'qemu-kvm -name' [Bug 576950]

Daniel Veillard veillard at redhat.com
Tue Oct 19 15:45:42 UTC 2010


On Mon, Oct 18, 2010 at 06:17:14PM -0400, John Morrissey wrote:
> On Mon, Oct 18, 2010 at 06:58:34PM +0100, Daniel P. Berrange wrote:
> > On Mon, Oct 18, 2010 at 01:45:12PM -0400, John Morrissey wrote:
> > > Unfortunately, qemu uses prctl() to set the process title, which has a
> > > limit of 16 characters. How about "qemu:$VM_NAME" for the process title
> > > (attached), so we waste as little as possible?
> > 
> > Urgh, 16 characters is tiny :-(  I think we had better add a configuration
> > parameter to /etc/qemu/qemu.conf to allow admins to turn this feature
> > on/off, with the default being off. At least until QEMU can support a
> > sensibly sized process name...
> [snip]
> > The patch looks fine, as long as you can add the qemu.conf config
> > param to turn it on/off
> 
> Sure, attached.
> 
> I tried to make some of the whitespace in the sample config more consistent;
> hope that doesn't cause headaches.
[...]
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -370,6 +370,10 @@ int qemudLoadDriverConfig(struct qemud_driver *driver,
>      CHECK_TYPE ("allow_disk_format_probing", VIR_CONF_LONG);
>      if (p) driver->allowDiskFormatProbing = p->l;
>  
> +    p = virConfGetValue (conf, "set_process_name");
> +    CHECK_TYPE ("set_process_name", VIR_CONF_LONG);
> +    if (p) driver->setProcessName = p->l;
> +
>      virConfFree (conf);
>      return 0;
>  }
> @@ -1165,8 +1169,11 @@ static unsigned long long qemudComputeCmdFlags(const char *help,
>          flags |= QEMUD_CMD_FLAG_ENABLE_KVM;
>      if (strstr(help, "-no-reboot"))
>          flags |= QEMUD_CMD_FLAG_NO_REBOOT;
> -    if (strstr(help, "-name"))
> +    if (strstr(help, "-name")) {
>          flags |= QEMUD_CMD_FLAG_NAME;
> +        if (strstr(help, ",process="))
> +            flags |= QEMUD_CMD_FLAG_NAME_PROCESS;
> +    }
>      if (strstr(help, "-uuid"))
>          flags |= QEMUD_CMD_FLAG_UUID;
>      if (strstr(help, "-xen-domid"))
[...]
> diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
> index d2e6857..005031d 100644
> --- a/src/qemu/qemu_conf.h
> +++ b/src/qemu/qemu_conf.h
> @@ -95,6 +95,7 @@ enum qemud_cmd_flags {
>      QEMUD_CMD_FLAG_ENABLE_KQEMU  = (1LL << 39), /* -enable-kqemu flag */
>      QEMUD_CMD_FLAG_FSDEV         = (1LL << 40), /* -fstype filesystem passthrough */
>      QEMUD_CMD_FLAG_NESTING       = (1LL << 41), /* -enable-nesting (SVM/VMX) */
> +    QEMUD_CMD_FLAG_NAME_PROCESS  = (1LL << 42), /* Is -name process= available */
>  };
>  

  Patch looks fine but I didn't applied it yet because "make check"
  raises an error now:

TEST: qemuhelptest
.....Computed flags do not match: got 0x64f0a8ffd7e, expected
0x24f0a8ffd7e
!Computed flags do not match: got 0x4425ef9dc6e, expected
0x425ef9dc6e
!Computed flags do not match: got 0x64ede6ffd7e, expected
0x24ede6ffd7e
!                                 8   FAIL
FAIL: qemuhelptest

 I think it's simply that the new flag must be added to some of the
expected result in tests/qemuhelptest.c, should not be hard to find
out and clear,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list