1. 15 8月, 2014 8 次提交
  2. 14 8月, 2014 7 次提交
    • J
      Maximum vlanid should be 4095 in interface.rng · 2a8fabba
      Jianwei Hu 提交于
      The correct vlanid range is 0~4095.
      
      After merging this patch, we can not validate a interface xml with vlanid >= 4096.
      [root@localhost ~]# cat vlan.xml
      <interface type='vlan' name='eno1.4096'>
         <start mode='onboot'/>
         <protocol family='ipv4'>
          <dhcp/>
         </protocol>
         <vlan tag='4096'>
           <interface name='eno1'/>
         </vlan>
      </interface>
      [root@localhost ~]# virt-xml-validate vlan.xml
      vlan.xml:1: element interface: Relax-NG validity error : Invalid sequence in interleave
      vlan.xml:6: element vlan: Relax-NG validity error : Element interface failed to validate content
      vlan.xml:6: element vlan: Relax-NG validity error : Element vlan failed to validate attributes
      vlan.xml fails to validate
      [root@localhost ~]#
      
      Here is a ip command help on this.
      [root@localhost /]# ip link add link eno1 name eno1.90 type vlan help
      Usage: ... vlan [ protocol VLANPROTO ] id VLANID                [ FLAG-LIST ]
                      [ ingress-qos-map QOS-MAP ] [ egress-qos-map QOS-MAP ]
      
      VLANPROTO: [ 802.1Q / 802.1ad ]
      VLANID := 0-4095
      FLAG-LIST := [ FLAG-LIST ] FLAG
      FLAG := [ reorder_hdr { on | off } ] [ gvrp { on | off } ] [ mvrp { on | off } ]
              [ loose_binding { on | off } ]
      QOS-MAP := [ QOS-MAP ] QOS-MAPPING
      QOS-MAPPING := FROM:TO
      2a8fabba
    • R
      LXC: Fix virLXCControllerSetupDevPTS() wrt user namespaces · 41885a02
      Richard Weinberger 提交于
      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 kernel commit 23adbe12
      ("fs,userns: Change inode_capable to capable_wrt_inode_uidgid")
      uncovered that issue.
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      41885a02
    • J
      docs: fix missing forward slash · 49cd6815
      Jianwei Hu 提交于
         Should like below:
          <interface type='server'>
            <mac address='52:54:00:22:c9:42'/>
            <source address='192.168.0.1' port='5558'/>
          </interface>
          ...
          <interface type='client'>
            <mac address='52:54:00:8b:c9:51'/>
            <source address='192.168.0.1' port='5558'/>
          </interface>
      49cd6815
    • S
      qemu: Tidy up job handling during live migration · f0f9eed8
      Sam Bobroff 提交于
      During a QEMU live migration several warning messages about job
      handling could be written to syslog on the destination host:
      
      "entering monitor without asking for a nested job is dangerous"
      
      The messages are written because the job handling during migration
      uses hard coded asyncJob values in several places that are incorrect.
      
      This patch passes the required asyncJob value around and prevents
      the warnings as well as any issues that the warnings may be referring
      to.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1130089Signed-off-by: NSam Bobroff <sam.bobroff@au1.ibm.com>
      Signed-off-by: NJán Tomko <jtomko@redhat.com>
      f0f9eed8
    • J
      build: force configure failed when perl is missing · 3f03398d
      Jincheng Miao 提交于
      Perl is necessary to our build processing, it will invoke a lot of
      generating script, like: gendispatch.pl. If perl is missing, it's
      ok for build from git checkout, because autogen.sh will tell you.
      But for compiling from a release tarball, configure will just record
      a missing message, and continue, then build failed, like:
      https://www.redhat.com/archives/libvirt-users/2014-August/msg00050.html
      
      So need to enhance configure script to handle this negative case.
      Reported-by: NHongbin Lu <hongbin@savinetwork.ca>
      Signed-off-by: NJincheng Miao <jmiao@redhat.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      3f03398d
    • M
      conf: fix parsing 'cmd_per_lun' and 'max_sectors' · ca8ef1df
      Mo yuxiang 提交于
      commit d9504941 introduces two new attributes "cmd_per_lun" and
      "max_sectors" same with the names QEMU uses for virtio-scsi.
      But the case of parsing them is not exact. Change to parse
      them if controller has "driver" element.
      Signed-off-by: NMo yuxiang <moyuxiang@huawei.com>
      ca8ef1df
    • C
      LXC: resolve issues in lxcDomainSetMaxMemory · bd3b76e3
      Chen Hanxiao 提交于
      This patch changes the setmaxmem function to support the '--live',
      '--config', and '--current' flags by revectoring the code through
      the setmem function using the VIR_DOMAIN_MEM_MAXIMUM flag. The
      setmem code is refactored to handle both cases depending on the flag.
      
      The changed maxmem code for the MEM_MAXIMUM path will not allow
      modification to the memory values of an active guest unless the --config
      switch is used.
      Signed-off-by: NChen Hanxiao <chenhanxiao@cn.fujitsu.com>
      bd3b76e3
  3. 13 8月, 2014 4 次提交
    • P
      daemon: Limit default log level to journald to VIR_LOG_INFO · c018efa8
      Peter Krempa 提交于
      Libvirt is really chatty when the DEBUG log level is enabled. When a
      host uses journald we'd enable debug logging to journald when only
      specifying the debug log level. As journald may employ rate throttling
      this would lock up the daemon until it's able to flush all debug
      messages.
      
      This patch changes the default log level to VIR_LOG_INFO when using the
      default (unconfigured) log output to journald.
      
      To still allow debug logging to journald the user now has to explicitly
      specify journald as a log output with priority 1 in the "log_outputs"
      configuration option. This patch also changes the config file template
      to be explicit about this change and notify the user about the possible
      consequence of debug logging into journald.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1121955
      c018efa8
    • P
      libvirtd: conf: Mention support for logging into journald · 7b6228d1
      Peter Krempa 提交于
      Our docs didn't mention the explicit option to log into journald.
      7b6228d1
    • E
      maint: improve syntax check for space around = · b50c8603
      Eric Blake 提交于
      Laine Stump noted on IRC that syntax check wasn't flagging his
      typo of 'i= 0'.  This fixes it.
      
      * build-aux/bracket-spacing.pl: Tighten 'space around =' rule.
      * src/storage/storage_backend.c
      (virStorageBackendCreateExecCommand): Fix offenders.
      * src/util/virnuma.c (virNumaGetDistances): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainSnapshotDeleteMetadataOnly)
      (vboxNetworkGetXMLDesc): Likewise.
      * src/xenapi/xenapi_driver.c (xenapiDomainLookupByName):
      Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      b50c8603
    • D
      bhyve: fix error message in bhyveStateInitialize · aad6e85f
      Dmitry Guryanov 提交于
      If we failed to create BHYVE_STATE_DIR, we should show this
      path, not BHYVE_LOG_DIR.
      aad6e85f
  4. 12 8月, 2014 13 次提交
    • M
      qemu_conf: Undefine the correct symbol · bf4cbe40
      Michal Privoznik 提交于
      At the beginning of the qemu config file parsing function there
      are 3 helper macros defined: GET_VALUE_BOOL, GET_VALUE_LONG and
      GET_VALUE_STR. Later, when they are no longer needed they are
      undefined in order to keep the namespace clean. However, the
      GET_VALUE_STRING is undefined instead of GET_VALUE_STR.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      bf4cbe40
    • R
      storage: ZFS support · 0257d06b
      Roman Bogorodskiy 提交于
      Implement ZFS storage backend driver. Currently supported
      only on FreeBSD because of ZFS limitations on Linux.
      
      Features supported:
      
       - pool-start, pool-stop
       - pool-info
       - vol-list
       - vol-create / vol-delete
      
      Pool definition looks like that:
      
       <pool type='zfs'>
        <name>myzfspool</name>
        <source>
          <name>actualpoolname</name>
        </source>
       </pool>
      
      The 'actualpoolname' value is a name of the pool on the system,
      such as shown by 'zpool list' command. Target makes no sense
      here because volumes path is always /dev/zvol/$poolname/$volname.
      
      User has to create a pool on his own, this driver doesn't
      support pool creation currently.
      
      A volume could be used with Qemu by adding an entry like this:
      
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='myzfspool' volume='vol5'/>
            <target dev='hdc' bus='ide'/>
          </disk>
      0257d06b
    • P
      qemu: migration: Check domain live state after exitting the monitor · 1b7c2c54
      Peter Krempa 提交于
      In qemuMigrationToFile we enter the monitor multiple times and don't
      check if the VM is still alive after returning form the monitor. Add the
      checks to skip pieces of code in case the VM crashes while saving it's
      state.
      1b7c2c54
    • P
      qemu: managedsave: Check that VM is alive after entering async job · 3fe9f61d
      Peter Krempa 提交于
      Saving a shutoff VM doesn't make sense and libvirtd crashes while
      attempting to do that. Check that the domain is alive after entering
      the save async job.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1129207
      3fe9f61d
    • P
      qemu: process: Fix header format of qemuProcessSetVcpuAffinities · e3f5af6a
      Peter Krempa 提交于
      Fix header alignment and remove the unused conn parameter.
      e3f5af6a
    • E
    • M
      conf: Format interface's driver more frequently · 3085702b
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1128751
      
      There's this <driver/> element under <interface/> which can have
      several attributes. However, the driver element is currently formated
      only if the driver's name or txmode has been specified. This makes
      only a little sense as we parse even partial <driver/>, for instance:
      
          <interface type='user'>
            <mac address='52:54:00:e5:48:58'/>
            <model type='virtio'/>
            <driver ioeventfd='on' event_idx='on' queues='5'/>
          </interface>
      
      But such XML would never get formatted back.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      3085702b
    • E
      docs: use correct hints per bus type in <disk> examples · 51cb34b3
      Eric Blake 提交于
      Commit 4cf53158 tried to set up unique labels per disk in the
      example, but ended up choosing strings that don't correspond
      to the usual choice of bus types.  Tweak the strings once again.
      
      * docs/formatdomain.html.in: Use preferred names.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      51cb34b3
    • L
      network: populate interface pool immediately when network is started · 2a193f64
      Laine Stump 提交于
      When a network is defined with "<pf dev='xyz'/>", libvirt will query
      sysfs to learn the list of all virtual functions (VF) associated with
      that Physical Function (PF) then populate the network's interface pool
      accordingly. This action was previously done only when the first guest
      actually requested an interface from the network. This patch changes
      it to populate the pool immediately when the network is started. This
      way any problems with the PF or its VFs will become apparent sooner.
      
      Note that we can't remove the old calls to networkCreateInterfacePool
      that happen whenever a guest requests an interface - doing so would be
      asking for failures on hosts that had libvirt upgraded with a network
      that had been started but not yet used.
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1047818
      2a193f64
    • L
      network: make networkCreateInterfacePool more robust · cd7759cb
      Laine Stump 提交于
      networkCreateInterfacePool was a bit loose in its error cleanup, which
      could result in a network definition with interfaces in the pool that
      were NULL. This would in turn lead to a libvirtd crash when a guest
      tried to attach an interface using the network with that pool.
      
      In particular this would happen when creating a pool to be used for
      macvtap connections. macvtap needs the netdev name of the virtual
      function in order to use it, and each VF only has a netdev name if it
      is currently bound to a network driver. If one of the VFs of a PF
      happened to be bound to the pci-stub or vfio-pci driver (indicating
      it's already in use for PCI passthrough), or no driver at all, it
      would have no name. In this case networkCreateInterfacePool would
      return an error, but would leave the netdef->forward.nifs set to the
      total number of VFs in the PF. The interface attach that triggered
      calling of networkCreateInterfacePool (it uses a "lazy fill" strategy)
      would simply fail, but the very next attempt to attach an interface
      using the same network pool would result in a crash.
      
      This patch refactors networkCreateInterfacePool to bring it more in
      line with current coding practices (label name, use of a switch with
      no default case) as well as providing the following two changes to
      behavior:
      
      1) If a VF with no netdev name is encountered, just log a warning and
      continue; only fail if exactly 0 devices are found to put in the pool.
      
      2) If the function fails, clean up any partial interface pool and set
      netdef->forward.nifs to 0.
      
      This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1111455
      cd7759cb
    • G
      Make 'uri' command a bit more prominent. · 7dc11d6b
      Guido Günther 提交于
      This tries to address
      
          https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688778
      
      were libvirt autodetected vbox:///session and it wasn't listed in the
      manpage.
      7dc11d6b
    • G
      Don't fail qemu driver intialization if we can't determine hugepage size · ee2a7c54
      Guido Günther 提交于
      Otherwise we fail like
      
        libvirt version: 1.2.7, package: 6 (root 2014-08-08-16:09:22 bogon)
        virAuditOpen:62 : Unable to initialize audit layer: Protocol not supported
        virFileGetDefaultHugepageSize:2958 : internal error: Unable to parse /proc/meminfo
        virStateInitialize:749 : Initialization of QEMU state driver failed: internal error: Unable to parse /proc/meminfo
        daemonRunStateInit:922 : Driver state initialization failed
      
      if the data can't be determined.
      
      Reference: http://bugs.debian.org/757609
      ee2a7c54
    • G
      Include param.h in case of HAVE_BSD_CPU_AFFINITY · 712374d1
      Guido Günther 提交于
      This fixes compilation on kFreeBSD which otherwise fails like
      
        CC       util/libvirt_util_la-virprocess.lo
      In file included from /usr/include/sys/cpuset.h:35:0,
                       from util/virprocess.c:43:
      /usr/include/sys/_cpuset.h:49:43: error: 'NBBY' undeclared here (not in
      a function)
        long __bits[howmany(CPU_SETSIZE, _NCPUBITS)];
                                                 ^
      In file included from util/virprocess.c:43:0:
      /usr/include/sys/cpuset.h:215:12: error: unknown type name 'cpusetid_t'
       int cpuset(cpusetid_t *);
                  ^
      /usr/include/sys/cpuset.h:216:30: error: expected ')' before 'id_t'
       int cpuset_setid(cpuwhich_t, id_t, cpusetid_t);
                                    ^
      /usr/include/sys/cpuset.h:217:42: error: expected ')' before 'id_t'
       int cpuset_getid(cpulevel_t, cpuwhich_t, id_t, cpusetid_t *);
                                                ^
      /usr/include/sys/cpuset.h:218:48: error: expected ')' before 'id_t'
       int cpuset_getaffinity(cpulevel_t, cpuwhich_t, id_t, size_t, cpuset_t
      *);
                                                      ^
      /usr/include/sys/cpuset.h:219:48: error: expected ')' before 'id_t'
       int cpuset_setaffinity(cpulevel_t, cpuwhich_t, id_t, size_t, const
      cpuset_t *);
      
      And it's the correct usage as documented in
      
        http://www.freebsd.org/cgi/man.cgi?query=cpuset_setid
      
      Also change the #ifdef HAVE_BSH_CPU_AFFINITY to #if for consistency.
      712374d1
  5. 11 8月, 2014 2 次提交
    • T
      qemu: use guest-fsfreeze-freeze-list command if mountpoints to freeze specified · 09dbb478
      Tomoki Sekiyama 提交于
      A command to freeze a part of mounted file systems is implemented in
      upstream QEMU-guest-agent with a name of 'guest-fsfreeze-freeze-list'.
      This fixes the name of the command used to partial fsfreeze in qemu driver
      when 'mountpoints' option is specified to virDomainFSFreeze API.
      Signed-off-by: NTomoki Sekiyama <tomoki.sekiyama@hds.com>
      09dbb478
    • J
      qemu: Actually clear bandwidth settings · 337c6eec
      Jianwei Hu 提交于
      The virDomainSetInterfaceParameters implementation in qemu over
      VIR_DOMAIN_AFFECT_CONFIG doesn't work as expected. When trying to
      clear out the bandwidth settings for an interface, it has no
      actual effect:
      
          virsh # domiftune --config $domain $interface
          inbound.average: 100
          inbound.peak   : 0
          inbound.burst  : 0
          outbound.average: 10
          outbound.peak  : 0
          outbound.burst : 0
      
          virsh domiftune --config $domain $interface 0 0
      
          virsh # domiftune --config $domain $interface
          inbound.average: 100
          inbound.peak   : 0
          inbound.burst  : 0
          outbound.average: 10
          outbound.peak  : 0
          outbound.burst : 0
      
      But according to virsh man page:
      
          To clear inbound or outbound settings, use --inbound or
          --outbound respectfully with average value of zero.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      337c6eec
  6. 09 8月, 2014 6 次提交