1. 30 3月, 2016 16 次提交
    • D
      block: add flag to indicate that no I/O will be performed · abb06c5a
      Daniel P. Berrange 提交于
      When opening an image it is useful to know whether the caller
      intends to perform I/O on the image or not. In the case of
      encrypted images this will allow the block driver to avoid
      having to prompt for decryption keys when we merely want to
      query header metadata about the image. eg qemu-img info
      
      This flag is enforced at the top level only, since even if
      we don't want todo I/O on the 'qcow2' file payload, the
      underlying 'file' driver will still need todo I/O to read
      the qcow2 header, for example.
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      abb06c5a
    • M
      block/qapi: Pass bdrv_query_blk_stats() s->stats · 54302156
      Max Reitz 提交于
      bdrv_query_blk_stats() does not need access to all of BlockStats,
      BlockDeviceStats is enough and is what this function is actually
      supposed to fill.
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      54302156
    • M
      block/qapi: Set s->device in bdrv_query_stats() · 0e8f44be
      Max Reitz 提交于
      This is the only instance of bdrv_query_blk_stats() accessing anything
      in the BlockStats structure other than s->stats, so let us move it to
      its caller (where it makes just as much sense) allowing us to make
      bdrv_query_blk_stats() take a pointer to the BlockDeviceStats instead of
      BlockStats.
      Signed-off-by: NMax Reitz <mreitz@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      0e8f44be
    • P
      block/qapi: fix unbounded stack for dump_qdict · 5eda6227
      Peter Xu 提交于
      Using heap instead of stack for better safety.
      Signed-off-by: NPeter Xu <peterx@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      5eda6227
    • P
      block/qapi: make two printf() formats literal · 853ccfed
      Peter Xu 提交于
      Fix two places to use literal printf format when possible.
      Signed-off-by: NPeter Xu <peterx@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      853ccfed
    • K
      block: Remove blk_set_bs() · 72f41b6f
      Kevin Wolf 提交于
      The function is unused since commit f21d96d0 ('block: Use BdrvChild in
      BlockBackend').
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      72f41b6f
    • P
      block/raw-posix.c: Make physical devices usable in QEMU under Mac OS X host · d0855f12
      Programmingkid 提交于
      Mac OS X can be picky when it comes to allowing the user
      to use physical devices in QEMU. Most mounted volumes
      appear to be off limits to QEMU. If an issue is detected,
      a message is displayed showing the user how to unmount a
      volume. Now QEMU uses both CD and DVD media.
      Signed-off-by: NJohn Arbuckle <programmingkidx@gmail.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      d0855f12
    • K
      block: Reject writethrough mode except at the root · 73ac451f
      Kevin Wolf 提交于
      Writethrough mode is going to become a BlockBackend feature rather than
      a BDS one, so forbid it in places where we won't be able to support it
      when the code finally matches the envisioned design.
      
      We only allowed setting the cache mode of non-root nodes after the 2.5
      release, so we're still free to make this change.
      
      The target of block jobs is now always opened in a writeback mode
      because it doesn't have a BlockBackend attached. This makes more sense
      anyway because block jobs know when to flush. If the graph is modified
      on job completion, the original cache mode moves to the new root, so
      for the guest device writethough always stays enabled if it was
      configured this way.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      73ac451f
    • K
      block: Make backing files always writeback · b8816a43
      Kevin Wolf 提交于
      First of all, we're generally not writing to backing files, but when we
      do, it's in the context of block jobs which know very well when to flush
      the image.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      b8816a43
    • K
      block: Remove cache.writeback from blockdev-add · aaa436f9
      Kevin Wolf 提交于
      The WCE bit is a frontend property and should not be part of the backend
      configuration. This is especially important because the same BDS can be
      used by different users with different WCE requirements.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      aaa436f9
    • K
      block: Remove dirty bitmaps from bdrv_move_feature_fields() · 7a827aae
      Kevin Wolf 提交于
      This patch changes dirty bitmaps from following a BlockBackend in graph
      changes to sticking with the node they were created at. For the full
      discussion, read the following mailing list thread:
      
        [Qemu-block] block: Dirty bitmaps and COR in bdrv_move_feature_fields()
        https://lists.nongnu.org/archive/html/qemu-block/2016-02/msg00745.html
      
      In summary, the justification for this change is:
      
      * When moving the dirty bitmap to the top of the tree was introduced in
        bdrv_append() in commit a9fc4408, it didn't actually have any effect
        because there could never be a bitmap in use when bdrv_append() was
        called (op blockers would prevent this). This is still true today for
        all internal uses of dirty bitmaps.
      
      * Support for user-defined dirty bitmaps was introduced in 2.4, but we
        discouraged users from using it because we didn't consider it ready
        yet.
      
        Moreover, in 2.5, the bdrv_swap() removal introduced a bug that left
        dangling pointers if a dirty bitmap was present (the anchors of the
        dirty bitmap were swapped, but the back link in the first element
        wasn't updated), so it didn't even work correctly.
      
      * block-dirty-bitmap-add takes an arbitrary node name, even if no
        BlockBackend is attached. This suggests that it is a node level
        operation and not a BlockBackend one. Consequently, there is no reason
        for dirty bitmaps to stay with a BlockBackend that was attached to the
        node they were created for.
      
      * It was suggested that block-dirty-bitmap-add could track the node if a
        node name was specified, and track the BlockBackend if the device name
        was specified. This would however be inconsistent with other QMP
        commands. Commands that accept both device and node names currently
        interpret the device name just as an alias for the current root node
        of that BlockBackend.
      
      * Dirty bitmaps have a name that is only unique amongst the bitmaps in a
        specific node. Moving bitmaps could lead to name clashes. Automatic
        renaming would involve too much magic.
      
      * Persistent bitmaps are stored in a specific node. Moving them around
        automatically might be at least surprising, but it would probably also
        become a real problem because that would have to happen atomically
        without the management tool knowing of the operation.
      
      At the end of the day it seems to be very clear that it was a mistake to
      include dirty bitmaps in bdrv_move_feature_fields(). The functionality
      of moving bitmaps and/or attaching them to a BlockBackend instead will
      probably be needed, but it should be done with a new explicit QMP
      command or option.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      7a827aae
    • K
      block: Remove copy-on-read from bdrv_move_feature_fields() · 4c844983
      Kevin Wolf 提交于
      Ever since we first introduced bdrv_append() in commit 8802d1fd ('qapi:
      Introduce blockdev-group-snapshot-sync command'), the copy-on-read flag
      was moved to the new top layer when taking a snapshot. The only problem
      is that it doesn't make a whole lot of sense.
      
      The use case for manually enabled CoR is to avoid reading data twice
      from a slow remote image, so we want to save it to a local overlay, say
      an ISO image accessed via HTTP to a local qcow2 overlay. When taking a
      snapshot, we end up with a backing chain like this:
      
          http <- local.qcow2 <- snap_overlay.qcow2
      
      There is no point in doing CoR from local.qcow2 into snap_overlay.qcow2,
      we just want to keep copying data from the remote source into
      local.qcow2.
      
      The other use case of CoR is in the context of streaming, which isn't
      very interesting for bdrv_move_feature_fields() because op blockers
      prevent this combination.
      
      This patch makes the copy-on-read flag stay on the image for which it
      was originally set and prevents it from being propagated to the new
      overlay. It is no longer intended to move CoR to the BlockBackend level.
      In order for this to make sense, we also need to keep the respective
      image read-write.
      
      As a side effect of these changes, creating a live snapshot image (as
      opposed to using an existing externally created one) on top of a COR
      block device works now. It used to fail because it tried to open its
      backing file both read-only and with COR.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      4c844983
    • K
      block: Remove bdrv_make_anon() · 63eaaae0
      Kevin Wolf 提交于
      The call in hmp_drive_del() is dead code because blk_remove_bs() is
      called a few lines above. The only other remaining user is
      bdrv_delete(), which only abuses bdrv_make_anon() to remove it from the
      named nodes list. This path inlines the list entry removal into
      bdrv_delete() and removes bdrv_make_anon().
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMax Reitz <mreitz@redhat.com>
      63eaaae0
    • P
      Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging · 553934db
      Peter Maydell 提交于
      # gpg: Signature made Tue 29 Mar 2016 01:48:09 BST using RSA key ID C0DE3057
      # gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>"
      # gpg:                 aka "Jeffrey Cody <jeff@codyprime.org>"
      # gpg:                 aka "Jeffrey Cody <codyprime@gmail.com>"
      
      * remotes/cody/tags/block-pull-request:
        qemu-iotests: add no-op streaming test
        qemu-iotests: fix test_stream_partial()
        block: never cancel a streaming job without running stream_complete()
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      553934db
    • P
      Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into staging · 5b8e6b4c
      Peter Maydell 提交于
      slirp updates
      
      # gpg: Signature made Tue 29 Mar 2016 00:16:05 BST using RSA key ID FB6B2F1D
      # gpg: Good signature from "Samuel Thibault <samuel.thibault@gnu.org>"
      # gpg:                 aka "Samuel Thibault <sthibault@debian.org>"
      # gpg:                 aka "Samuel Thibault <samuel.thibault@inria.fr>"
      # gpg:                 aka "Samuel Thibault <samuel.thibault@labri.fr>"
      # gpg:                 aka "Samuel Thibault <samuel.thibault@ens-lyon.org>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
      #      Subkey fingerprint: F632 74CD C630 0873 CB3D  29D9 E3E5 1CE8 FB6B 2F1D
      
      * remotes/thibault/tags/samuel-thibault:
        Rework ipv6 options
        Use C99 flexible array instead of 1-byte trailing array
        Avoid embedding struct mbuf in other structures
        slirp: send icmp6 errors when UDP send failed
        slirp: Fix memory leak on small incoming ipv4 packet
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      5b8e6b4c
    • P
      Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20160328.0' into staging · 7cd592bc
      Peter Maydell 提交于
      VFIO updates 2016-03-28
      
       - Use 128bit math to avoid asserts with IOMMU regions (Bandan Das)
      
      # gpg: Signature made Mon 28 Mar 2016 23:16:52 BST using RSA key ID 3BB08B22
      # gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex@shazbot.org>"
      # gpg:                 aka "Alex Williamson <alwillia@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex.l.williamson@gmail.com>"
      
      * remotes/awilliam/tags/vfio-update-20160328.0:
        vfio: convert to 128 bit arithmetic calculations when adding mem regions
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      7cd592bc
  2. 29 3月, 2016 6 次提交
  3. 25 3月, 2016 3 次提交
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 84a5a801
      Peter Maydell 提交于
      * Log filtering from Alex and Peter
      * Chardev fix from Marc-André
      * config.status tweak from David
      * Header file tweaks from Markus, myself and Veronia (Outreachy candidate)
      * get_ticks_per_sec() removal from Rutuja (Outreachy candidate)
      * Coverity fix from myself
      * PKE implementation from myself, based on rth's XSAVE support
      
      # gpg: Signature made Thu 24 Mar 2016 20:15:11 GMT using RSA key ID 78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      
      * remotes/bonzini/tags/for-upstream: (28 commits)
        target-i386: implement PKE for TCG
        config.status: Pass extra parameters
        char: translate from QIOChannel error to errno
        exec: fix error handling in file_ram_alloc
        cputlb: modernise the debug support
        qemu-log: support simple pid substitution for logs
        target-arm: dfilter support for in_asm
        qemu-log: dfilter-ise exec, out_asm, op and opt_op
        qemu-log: new option -dfilter to limit output
        qemu-log: Improve the "exec" TB execution logging
        qemu-log: Avoid function call for disabled qemu_log_mask logging
        qemu-log: correct help text for -d cpu
        tcg: pass down TranslationBlock to tcg_code_gen
        util: move declarations out of qemu-common.h
        Replaced get_tick_per_sec() by NANOSECONDS_PER_SECOND
        hw: explicitly include qemu-common.h and cpu.h
        include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h
        isa: Move DMA_transfer_handler from qemu-common.h to hw/isa/isa.h
        Move ParallelIOArg from qemu-common.h to sysemu/char.h
        Move QEMU_ALIGN_*() from qemu-common.h to qemu/osdep.h
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      
      Conflicts:
      	scripts/clean-includes
      84a5a801
    • P
      Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160324' into staging · b68a8013
      Peter Maydell 提交于
      Support for booting from virtio-scsi devices in the s390-ccw bios.
      
      # gpg: Signature made Thu 24 Mar 2016 08:14:21 GMT using RSA key ID C6F02FAF
      # gpg: Good signature from "Cornelia Huck <huckc@linux.vnet.ibm.com>"
      # gpg:                 aka "Cornelia Huck <cornelia.huck@de.ibm.com>"
      
      * remotes/cohuck/tags/s390x-20160324:
        s390-ccw.img: rebuild image
        pc-bios/s390-ccw: disambiguation of "No zIPL magic" message
        pc-bios/s390-ccw: enhance bootmap detection
        pc-bios/s390-ccw: enable virtio-scsi
        pc-bios/s390-ccw: add virtio-scsi implementation
        pc-bios/s390-ccw: add scsi definitions
        pc-bios/s390-ccw: add simplified virtio call
        pc-bios/s390-ccw: make provisions for different backends
        pc-bios/s390-ccw: add vdev object to store all device details
        pc-bios/s390-ccw: update virtio implementation to allow up to 3 vrings
        pc-bios/s390-ccw: qemuize types
        pc-bios/s390-ccw: add utility functions and "export" some others
        pc-bios/s390-ccw: virtio_panic -> panic
        pc-bios/s390-ccw: add more disk layout checks
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      b68a8013
    • P
      Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20160324-1' into staging · f18f2e7c
      Peter Maydell 提交于
      input-linux + spice fixes
      
      # gpg: Signature made Thu 24 Mar 2016 07:54:45 GMT using RSA key ID D3E87138
      # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
      # gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
      # gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
      
      * remotes/kraxel/tags/pull-ui-20160324-1:
        spice: Disallow use of gl + TCP port
        input-linux: fix Coverity warning
        input-linux: switch over to -object
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      f18f2e7c
  4. 24 3月, 2016 15 次提交
    • P
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.6-20160324' into staging · 490dda05
      Peter Maydell 提交于
      ppc patch queue for 2016-03-24
      
      Accumulated patches for target-ppc, pseries machine type and related
      devices.
      
      * Preliminary patches from BenH & Cédric Le Goater's powernv code
          * We don't want the full machine type before 2.7
          * Adding some of the SPRs also fixes migration corner cases for
            spapr (when qemu has no knowledge of the registers, they're
            obviously not migrated)
          * We include some patches that aren't strictly fixes, but make
            applying the others easier, and they're low risk
      * Fix to buffer management which significantly improves throughput in
        the spapr-llan virtual network device
      * Start with 64-bit mode enabled on spapr.  This is the way it's
        supposed to be but we broke it a while back and didn't notice
        because Linux guests cope anyway.
          * Picked up by kvm-unit-tests
          * Still some bugs here that I'm working on
      
      # gpg: Signature made Thu 24 Mar 2016 04:29:42 GMT using RSA key ID 20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-2.6-20160324:
        ppc: move POWER8 Book4 regs in their own routine
        hw/net/spapr_llan: Enable the RX buffer pools by default for new machines
        hw/net/spapr_llan: Fix receive buffer handling for better performance
        hw/net/spapr_llan: Extract rx buffer code into separate functions
        ppc: A couple more dummy POWER8 Book4 regs
        ppc: Add dummy CIABR SPR
        ppc: Add POWER8 IAMR register
        ppc: Fix writing to AMR/UAMOR
        ppc: Initialize AMOR in PAPR mode
        ppc: Add dummy SPR_IC for POWER8
        ppc: Create cpu_ppc_set_papr() helper
        ppc: Add a bunch of hypervisor SPRs to Book3s
        ppc: Add macros to register hypervisor mode SPRs
        ppc: Update SPR definitions
        spapr/target-ppc/kvm: Only add hcall-instructions if KVM supports it
        ppc64: set MSR_SF bit
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      490dda05
    • P
      Merge remote-tracking branch 'remotes/lalrae/tags/mips-20160323' into staging · 10805344
      Peter Maydell 提交于
      MIPS patches 2016-03-23
      
      Changes:
      * add mips-softmmu-common.mak
      * indicate presence of IEEE 754-2008 FPU in MIPS64R6-generic and P5600
      
      # gpg: Signature made Wed 23 Mar 2016 16:38:04 GMT using RSA key ID 0B29DA6B
      # gpg: Good signature from "Leon Alrae <leon.alrae@imgtec.com>"
      
      * remotes/lalrae/tags/mips-20160323:
        default-configs: add mips-softmmu-common.mak
        target-mips: indicate presence of IEEE 754-2008 FPU in R6/R5+MSA CPUs
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      10805344
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20160323-1' into staging · 4f57a35d
      Peter Maydell 提交于
      cocoa queue:
       * update cocoa UI front end to use QKeyCodes
       * fix the help menu documentation links to actually work
         (with both an installed and an uninstalled QEMU)
      
      # gpg: Signature made Wed 23 Mar 2016 14:31:01 GMT using RSA key ID 14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"
      
      * remotes/pmaydell/tags/pull-cocoa-20160323-1:
        ui/cocoa.m: switch to QKeyCode
        qapi-schema.json: Add power and keypad equal keys
        ui/cocoa.m: fix help menus
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      4f57a35d
    • P
      target-i386: implement PKE for TCG · 0f70ed47
      Paolo Bonzini 提交于
      Tested with kvm-unit-tests.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0f70ed47
    • D
      config.status: Pass extra parameters · cf7cc929
      Dr. David Alan Gilbert 提交于
      This allows you to do:
        ./config.status --the-option-you-forgot
      Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Message-Id: <1452599928-7471-1-git-send-email-dgilbert@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      cf7cc929
    • P
      Merge remote-tracking branch 'remotes/bkoppelmann/tags/pull-tricore-20160323' into staging · a2ecc80d
      Peter Maydell 提交于
      TriCore FPU + bugfixes
      
      # gpg: Signature made Wed 23 Mar 2016 08:26:03 GMT using RSA key ID 6B69CA14
      # gpg: Good signature from "Bastian Koppelmann <kbastian@mail.uni-paderborn.de>"
      
      * remotes/bkoppelmann/tags/pull-tricore-20160323:
        target-tricore: Add ftoi and itof instructions
        target-tricore: Add cmp.f instruction
        target-tricore: Add div.f instruction
        target-tricore: Add mul.f instruction
        target-tricore: add add.f/sub.f instructions
        target-tricore: Move general CHECK_REG_PAIR of decode_rrr_divide
        target-tricore: Add FPU infrastructure
        target-tricore: Fix psw_read() clearing too many bits
        target-tricore: Fix helper_msub64_q_ssov not reseting OVF bit
        target-tricore: add missing break in insn decode switch stmt
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      a2ecc80d
    • C
      spice: Disallow use of gl + TCP port · 569a93cb
      Christophe Fergeau 提交于
      Currently, virgl support has to go through a local unix socket, trying
      to connect to a VM using -spice gl through spice://localhost:5900 will
      only result in a black screen.
      This commit errors out when the user tries to start a VM with both GL
      support and a port/tls-port set.
      This would fit better in spice-server, but currently QEMU does not call
      into spice-server when parsing 'gl' on its command line, so we have to
      do this check in QEMU instead.
      Signed-off-by: NChristophe Fergeau <cfergeau@redhat.com>
      Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-id: 1457955672-28758-1-git-send-email-cfergeau@redhat.com
      
      [ applied codestyle fix: break long line ]
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      569a93cb
    • G
      input-linux: fix Coverity warning · 81b00c96
      Gerd Hoffmann 提交于
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Message-id: 1458129049-12484-1-git-send-email-kraxel@redhat.com
      81b00c96
    • G
      input-linux: switch over to -object · 0e066b2c
      Gerd Hoffmann 提交于
      This patches makes input-linux use -object instead of a new command line
      switch.  So, instead of the switch ...
      
          -input-linux /dev/input/event$nr
      
      ... you must create an object this way:
      
          -object input-linux,id=$name,evdev=/dev/input/event$nr
      
      Bonus is that you can hot-add and hot-remove them via monitor now.
      Suggested-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1457681901-30916-1-git-send-email-kraxel@redhat.com
      0e066b2c
    • C
      ppc: move POWER8 Book4 regs in their own routine · 9d0e5c8c
      Cédric Le Goater 提交于
      commit fce55481360d "ppc: A couple more dummy POWER8 Book4 regs"
      squashed in to rapidly a set of POWER8 Book4 regs in the wrong
      routine. This patch introduces the missing gen_spr_power8_book4()
      routine to fix their location.
      Signed-off-by: NCédric Le Goater <clg@fr.ibm.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      9d0e5c8c
    • T
      hw/net/spapr_llan: Enable the RX buffer pools by default for new machines · 57c522f4
      Thomas Huth 提交于
      RX buffer pools are now enabled by default for new machine types.
      For older machine types, they are still disabled to avoid breaking
      migration.
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NLaurent Vivier <lvivier@redhat.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      57c522f4
    • T
      hw/net/spapr_llan: Fix receive buffer handling for better performance · 831e8822
      Thomas Huth 提交于
      tl;dr:
      This patch introduces an alternate way of handling the receive
      buffers of the spapr-vlan device, resulting in much better
      receive performance for the guest.
      
      Full story:
      One of our testers recently discovered that the performance of the
      spapr-vlan device is very poor compared to other NICs, and that
      a simple "ping -i 0.2 -s 65507 someip" in the guest can result
      in more than 50% lost ping packets (especially with older guest
      kernels < 3.17).
      
      After doing some analysis, it was clear that there is a problem
      with the way we handle the receive buffers in spapr_llan.c: The
      ibmveth driver of the guest Linux kernel tries to add a lot of
      buffers into several buffer pools (with 512, 2048 and 65536 byte
      sizes by default, but it can be changed via the entries in the
      /sys/devices/vio/1000/pool* directories of the guest). However,
      the spapr-vlan device of QEMU only tries to squeeze all receive
      buffer descriptors into one single page which has been supplied
      by the guest during the H_REGISTER_LOGICAL_LAN call, without
      taking care of different buffer sizes. This has two bad effects:
      First, only a very limited number of buffer descriptors is accepted
      at all. Second, we also hand 64k buffers to the guest even if
      the 2k buffers would fit better - and this results in dropped packets
      in the IP layer of the guest since too much skbuf memory is used.
      
      Though it seems at a first glance like PAPR says that we should store
      the receive buffer descriptors in the page that is supplied during
      the H_REGISTER_LOGICAL_LAN call, chapter 16.4.1.2 in the LoPAPR spec
      declares that "the contents of these descriptors are architecturally
      opaque, none of these descriptors are manipulated by code above
      the architected interfaces". That means we don't have to store
      the RX buffer descriptors in this page, but can also manage the
      receive buffers at the hypervisor level only. This is now what we
      are doing here: Introducing proper RX buffer pools which are also
      sorted by size of the buffers, so we can hand out a buffer with
      the best fitting size when a packet has been received.
      
      To avoid problems with migration from/to older version of QEMU,
      the old behavior is also retained and enabled by default. The new
      buffer management has to be enabled via a new "use-rx-buffer-pools"
      property.
      
      Now with the new buffer pool management enabled, the problem with
      "ping -s 65507" is fixed for me, and the throughput of a simple
      test with wget increases from creeping 3MB/s up to 20MB/s!
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      831e8822
    • T
      hw/net/spapr_llan: Extract rx buffer code into separate functions · d6f39fdf
      Thomas Huth 提交于
      Refactor the code a little bit by extracting the code that reads
      and writes the receive buffer list page into separate functions.
      There should be no functional change in this patch, this is just
      a preparation for the upcoming extensions that introduce receive
      buffer pools.
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NLaurent Vivier <lvivier@redhat.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      d6f39fdf
    • B
      ppc: A couple more dummy POWER8 Book4 regs · 9c1cf38d
      Benjamin Herrenschmidt 提交于
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      [clg: squashed in patch 'ppc: Add dummy ACOP SPR' ]
      Signed-off-by: NCédric Le Goater <clg@fr.ibm.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      9c1cf38d
    • B
      ppc: Add dummy CIABR SPR · eb5ceb4d
      Benjamin Herrenschmidt 提交于
      We should implement HW breakpoint/watchpoint, qemu supports them...
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      eb5ceb4d