1. 24 5月, 2013 7 次提交
  2. 23 5月, 2013 20 次提交
  3. 22 5月, 2013 13 次提交
    • M
      qemu: Enable multiqueue network · 03eb0663
      Michal Privoznik 提交于
      03eb0663
    • M
      qemu: Adapt qemuBuildInterfaceCommandLine to to multiqueue net · 1f24f682
      Michal Privoznik 提交于
      In order to learn libvirt multiqueue several things must be done:
      
      1) The '/dev/net/tun' device needs to be opened multiple times with
      IFF_MULTI_QUEUE flag passed to ioctl(fd, TUNSETIFF, &ifr);
      
      2) Similarly, '/dev/vhost-net' must be opened as many times as in 1)
      in order to keep 1:1 ratio recommended by qemu and kernel folks.
      
      3) The command line construction code needs to switch from 'fd=X' to
      'fds=X:Y:...:Z' and from 'vhostfd=X' to 'vhostfds=X:Y:...:Z'.
      
      4) The monitor handling code needs to learn to pass multiple FDs.
      1f24f682
    • M
      qemu: Move interface cmd line construction into a separate function · 565c07f1
      Michal Privoznik 提交于
      Currently, we have one huge function to construct qemu command line.
      This is very ineffective esp. if there's a fault somewhere.
      565c07f1
    • M
      Introduce /domain/devices/interface/driver/@queues attribute · 7e744f81
      Michal Privoznik 提交于
      This attribute is going to represent number of queues for
      multique vhost network interface. This commit implements XML
      extension part of the feature and add one test as well. For now,
      we can only do xml2xml test as qemu command line generation code
      is not adapted yet.
      7e744f81
    • G
      qemu: add ', share=<policy>' to qemu commandline · 3c539844
      Guannan Ren 提交于
      example: qemu ${otherargs} \
                   -vnc 127.0.0.1:0,share=allow-exclusive
      3c539844
    • G
      conf: add 'sharePolicy' attribute to graphics element for vnc · 2a58d076
      Guannan Ren 提交于
       -vnc :5900,share=allow-exclusive
      allows clients to ask for exclusive access which is
      implemented by dropping other connections Connecting
      multiple clients in parallel requires all clients asking
      for a shared session (vncviewer: -shared switch)
      
       -vnc :5900,share=force-shared
      disables exclusive client access.  Useful for shared
      desktop sessions, where you don't want someone forgetting
      specify -shared disconnect everybody else.
      
       -vnc :5900,share=ignore
      completely ignores the shared flag and allows everybody
      connect unconditionally
      2a58d076
    • G
      qemu: new vnc display sharing policy caps flag · d377d02d
      Guannan Ren 提交于
      QEMU_CAPS_VNC_SHARE_POLICY (qemu >= 1.1)
      d377d02d
    • J
      vbox: fix VIR_STRDUP value check · 1c65362f
      Ján Tomko 提交于
      In my review of 31532cab I missed the fact that VIR_STRDUP
      now returns 1 on success, and 0 if the source was NULL.
      
      (This still doesn't add proper OOM error handling.)
      1c65362f
    • O
      syntax-check: Add the rule to forbid whitespace before ";" · ba0880b2
      Osier Yang 提交于
      Only a few cases are allowed:
      
      1) The expression is empty for "for" loop, E.g.
      
        for (i = 0; ; i++)
      
      2) An empty statement
      
        while (write(statuswrite, &status, 1) == -1 &&
               errno == EINTR)
            ; /* empty */
      
      3) ";" is inside double-quote, I.e, as part of const string. E.g.
      
        vshPrint(ctl, "a ; b ; cd;\n");
      
      The "for" loop in src/rpc/virnettlscontext.c is the special case,
      1) applies for it, so change it together in this patch.
      ba0880b2
    • O
      nwfilter: Change the comment style · 1f49c0e1
      Osier Yang 提交于
      The more common habit is to add the comment after the statements.
      1f49c0e1
    • O
      Fix the syntax-check failure · 1f9dcbc7
      Osier Yang 提交于
      Introduced by commit 7ac2c4fe, pushed under build-breaker rule.
      1f9dcbc7
    • G
      interface: list all interfaces with flags == 0 · 7ac2c4fe
      Guannan Ren 提交于
      virConnectListAllInterfaces should support to list all of
      interfaces when the value of flags is 0. The behaviour is
      consistent with other virConnectListAll* APIs
      7ac2c4fe
    • E
      cgroup: be robust against cgroup movement races · 83e4c775
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=965169 documents a
      problem starting domains when cgroups are enabled; I was able
      to reliably reproduce the race about 5% of the time when I added
      hooks to domain startup by 3 seconds (as that seemed to be about
      the length of time that qemu created and then closed a temporary
      thread, probably related to aio handling of initially opening
      a disk image).  The problem has existed since we introduced
      virCgroupMoveTask in commit 91028296 (v0.10.0).
      
      There are some inherent TOCTTOU races when moving tasks between
      kernel cgroups, precisely because threads can be created or
      completed in the window between when we read a thread id from the
      source and when we write to the destination.  As the goal of
      virCgroupMoveTask is merely to move ALL tasks into the new
      cgroup, it is sufficient to iterate until no more threads are
      being created in the old group, and ignoring any threads that
      die before we can move them.
      
      It would be nicer to start the threads in the right cgroup to
      begin with, but by default, all child threads are created in
      the same cgroup as their parent, and we don't want vcpu child
      threads in the emulator cgroup, so I don't see any good way
      of avoiding the move.  It would also be nice if the kernel were
      to implement something like rename() as a way to atomically move
      a group of threads from one cgroup to another, instead of forcing
      a window where we have to read and parse the source, then format
      and write back into the destination.
      
      * src/util/vircgroup.c (virCgroupAddTaskStrController): Ignore
      ESRCH, because a thread ended between read and write attempts.
      (virCgroupMoveTask): Loop until all threads have moved.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      83e4c775