1. 18 1月, 2019 6 次提交
  2. 17 1月, 2019 4 次提交
  3. 16 1月, 2019 1 次提交
  4. 15 1月, 2019 1 次提交
  5. 11 1月, 2019 1 次提交
  6. 10 1月, 2019 3 次提交
  7. 09 1月, 2019 3 次提交
    • M
      qemu: Use ULL instead of uint64_t for RDMA GID event · f8862714
      Michal Privoznik 提交于
      In the previous commit we are using uint64_t for storing subnet
      prefix and interface id that qemu reports in
      RDMA_GID_STATUS_CHANGED event. We also report them in some debug
      messages. This poses a problem because uint64_t can be UL or ULL
      depending on the host architecture and hence we wouldn't know
      which format to use. Switch to ULL which is big enough and
      doesn't suffer from the issue.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      f8862714
    • Y
      qemu: Process RDMA GID state change event · ed357cef
      Yuval Shaia 提交于
      This event is emitted on the monitor when a GID table in pvrdma device
      is modified and the change needs to be propagate to the backend RDMA
      device's GID table.
      
      The control over the RDMA device's GID table is done by updating the
      device's Ethernet function addresses.
      Usually the first GID entry is determine by the MAC address, the second
      by the first IPv6 address and the third by the IPv4 address. Other
      entries can be added by adding more IP addresses. The opposite is the
      same, i.e. whenever an address is removed, the corresponding GID entry
      is removed.
      
      The process is done by the network and RDMA stacks. Whenever an address
      is added the ib_core driver is notified and calls the device driver's
      add_gid function which in turn update the device.
      
      To support this in pvrdma device we need to hook into the create_bind
      and destroy_bind HW commands triggered by pvrdma driver in guest.
      Whenever a changed is made to the pvrdma device's GID table a special
      QMP messages is sent to be processed by libvirt to update the address of
      the backend Ethernet device.
      Signed-off-by: NYuval Shaia <yuval.shaia@oracle.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      ed357cef
    • A
      src: Fix a few unmarked_diagnostics issues · 5c7bfc6b
      Andrea Bolognani 提交于
      These were not caught by our current regular expressions
      but will be caught by the improved ones we're about to
      introduce, so fix them ahead of time.
      Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NJán Tomko <jtomko@redhat.com>
      5c7bfc6b
  8. 02 1月, 2019 8 次提交
  9. 21 12月, 2018 2 次提交
    • N
      qemu: don't log error for missing optional storage sources on start · c5411773
      Nikolay Shirokovskiy 提交于
      Because missing optional storage source is not error. The patch
      address only local files. Fixing other cases is a bit ugly.
      Below is example of error notice in log now:
      
      error: virStorageFileReportBrokenChain:427 :
         Cannot access storage file '/path/to/missing/optional/disk':
        	No such file or directory
      Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
      c5411773
    • N
      qemu: don't log error for missing optional storage sources on stats · 318d807a
      Nikolay Shirokovskiy 提交于
      Every time we call all domain stats for inactive domain with
      unavailable storage source we get error message in logs [1]. It's a bit noisy.
      While it's arguable whether we need such message or not for mandatory
      disks we would like not to see messages for optional disks. Let's
      filter at least for cases of local files. Fixing other cases would
      require passing flag down the stack to .backendInit of storage
      which is ugly.
      
      Stats for active domain are fine because we either drop disks
      with unavailable sources or clean source which is handled
      by virStorageSourceIsEmpty in qemuDomainGetStatsOneBlockFallback.
      
      We have these logs for successful stats since 25aa7035 (version 1.2.15)
      which in turn fixes 596a1371 (version 1.2.12 )which added substantial
      stats for offline disks.
      
      [1] error message example:
      qemuOpenFileAs:3324 : Failed to open file '/path/to/optional/disk': No such file or directory
      Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
      318d807a
  10. 19 12月, 2018 2 次提交
  11. 17 12月, 2018 2 次提交
    • J
      qemu: Add support for postcopy-requests migration statistics · 3f4914e0
      Jiri Denemark 提交于
      QEMU can report how many times during post-copy migration the domain
      running on the destination host tried to access a page which has not
      been migrated yet.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      Reviewed-by: NJán Tomko <jtomko@redhat.com>
      3f4914e0
    • D
      qemu: use line breaks in command line args written to log · 07c9d660
      Daniel P. Berrangé 提交于
      The QEMU command line arguments are very long and currently all written
      on a single line to /var/log/libvirt/qemu/$GUEST.log. This introduces
      logic to add line breaks after every env variable and "-" optional
      argument, and every positional argument. This will create a clearer log
      file, which will in turn present better in bug reports when people cut +
      paste from the log into a bug comment.
      
      An example log file entry now looks like this:
      
        2018-12-14 12:57:03.677+0000: starting up libvirt version: 5.0.0, qemu version: 3.0.0qemu-3.0.0-1.fc29, kernel: 4.19.5-300.fc29.x86_64, hostname: localhost.localdomain
        LC_ALL=C \
        PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin \
        HOME=/home/berrange \
        USER=berrange \
        LOGNAME=berrange \
        QEMU_AUDIO_DRV=none \
        /usr/bin/qemu-system-ppc64 \
        -name guest=guest,debug-threads=on \
        -S \
        -object secret,id=masterKey0,format=raw,file=/home/berrange/.config/libvirt/qemu/lib/domain-33-guest/master-key.aes \
        -machine pseries-2.10,accel=tcg,usb=off,dump-guest-core=off \
        -m 1024 \
        -realtime mlock=off \
        -smp 1,sockets=1,cores=1,threads=1 \
        -uuid c8a74977-ab18-41d0-ae3b-4041c7fffbcd \
        -display none \
        -no-user-config \
        -nodefaults \
        -chardev socket,id=charmonitor,fd=23,server,nowait \
        -mon chardev=charmonitor,id=monitor,mode=control \
        -rtc base=utc \
        -no-shutdown \
        -boot strict=on \
        -device qemu-xhci,id=usb,bus=pci.0,addr=0x1 \
        -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
        -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
        -msg timestamp=on
        2018-12-14 12:57:03.730+0000: shutting down, reason=failed
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      07c9d660
  12. 14 12月, 2018 4 次提交
    • D
      Enforce a standard header file guard symbol name · 568a4172
      Daniel P. Berrangé 提交于
      Require that all headers are guarded by a symbol named
      
        LIBVIRT_$FILENAME
      
      where $FILENAME is the uppercased filename, with all characters
      outside a-z changed into '_'.
      
      Note we do not use a leading __ because that is technically a
      namespace reserved for the toolchain.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      568a4172
    • D
      Fix many mistakes & inconsistencies in header file layout · 4cfd7090
      Daniel P. Berrangé 提交于
      This introduces a syntax-check script that validates header files use a
      common layout:
      
        /*
         ...copyright header...
         */
        <one blank line>
        #ifndef SYMBOL
        # define SYMBOL
        ....content....
        #endif /* SYMBOL */
      
      For any file ending priv.h, before the #ifndef, we will require a
      guard to prevent bogus imports:
      
        #ifndef SYMBOL_ALLOW
        # error ....
        #endif /* SYMBOL_ALLOW */
        <one blank line>
      
      The many mistakes this script identifies are then fixed.
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      4cfd7090
    • D
      fe2bd021
    • D
      Remove all Author(s): lines from source file headers · 60046283
      Daniel P. Berrangé 提交于
      In many files there are header comments that contain an Author:
      statement, supposedly reflecting who originally wrote the code.
      In a large collaborative project like libvirt, any non-trivial
      file will have been modified by a large number of different
      contributors. IOW, the Author: comments are quickly out of date,
      omitting people who have made significant contribitions.
      
      In some places Author: lines have been added despite the person
      merely being responsible for creating the file by moving existing
      code out of another file. IOW, the Author: lines give an incorrect
      record of authorship.
      
      With this all in mind, the comments are useless as a means to identify
      who to talk to about code in a particular file. Contributors will always
      be better off using 'git log' and 'git blame' if they need to  find the
      author of a particular bit of code.
      
      This commit thus deletes all Author: comments from the source and adds
      a rule to prevent them reappearing.
      
      The Copyright headers are similarly misleading and inaccurate, however,
      we cannot delete these as they have legal meaning, despite being largely
      inaccurate. In addition only the copyright holder is permitted to change
      their respective copyright statement.
      Reviewed-by: NErik Skultety <eskultet@redhat.com>
      Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
      60046283
  13. 13 12月, 2018 3 次提交
    • J
      qemu: Add check for whether KVM nesting is enabled · b183a753
      John Ferlan 提交于
      Support for nested KVM is handled via a kernel module configuration
      parameters values for kvm_intel, kvm_amd, kvm_hv (PPC), or kvm (s390).
      While it's possible to fetch the kmod config values via virKModConfig,
      unfortunately that is the static value and we need to get the
      current/dynamic value from the kernel file system.
      
      So this patch adds a new API virHostKVMSupportsNesting that will
      search the 3 kernel modules to get the nesting value and check if
      it is 'Y' (or 'y' just in case) to return a true/false whether
      the KVM kernel supports nesting.
      
      We need to do this in order to handle cases where adjustments to
      the value are made after libvirtd is started to force a refetch of
      the latest QEMU capabilities since the correct CPU settings need
      to be made for a guest to add the "vmx=on" to/for the guest config.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      ACKed-by: NMichal Privoznik <mprivozn@redhat.com>
      b183a753
    • M
      qemu: Don't use -mem-prealloc among with .prealloc=yes · c658764d
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1624223
      
      There are two ways to request memory preallocation on cmd line:
      -mem-prealloc and .prealloc attribute for a memory-backend-file.
      However, as it turns out it's not safe to use both at the same
      time. If -mem-prealloc is used then qemu will fully allocate the
      memory (this is done by actually touching every page that has
      been allocated). Then, if .prealloc=yes is specified,
      mbind(flags = MPOL_MF_STRICT | MPOL_MF_MOVE) is called which:
      
      a) has to (possibly) move the memory to a different NUMA node,
      b) can have no effect when hugepages are in play (thus ignoring user
      request to place memory on desired NUMA nodes).
      
      Prefer -mem-prealloc as it is more backward compatible
      compared to switching to "-numa node,memdev=  + -object
      memory-backend-file".
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
      c658764d
    • M
      qemuBuildMemoryBackendProps: Pass @priv instead of its individual members · 9923584c
      Michal Privoznik 提交于
      So far we have two arguments that we are passing to
      qemuBuildMemoryBackendProps() and that are taken from domain
      private data: @qemuCaps and @autoNodeset. In the next commit I
      will use one more item from there. Therefore, instead of having
      it as yet another argument to the function, pass pointer to the
      private data object.
      
      There is one change in qemuDomainAttachMemory() where previously
      @autoNodeset was NULL but now is priv->autoNodeset (which may be
      set). This is safe to do as @autoNodeset is advisory only.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Reviewed-by: NJohn Ferlan <jferlan@redhat.com>
      9923584c