1. 23 3月, 2016 2 次提交
  2. 08 3月, 2016 1 次提交
    • L
      cutils: add avx2 instruction optimization · 28b90d9c
      Liang Li 提交于
      buffer_find_nonzero_offset() is a hot function during live migration.
      Now it use SSE2 instructions for optimization. For platform supports
      AVX2 instructions, use AVX2 instructions for optimization can help
      to improve the performance of buffer_find_nonzero_offset() about 30%
      comparing to SSE2.
      
      Live migration can be faster with this optimization, the test result
      shows that for an 8GiB RAM idle guest just boots, this patch can help
      to shorten the total live migration time about 6%.
      
      This patch use the ifunc mechanism to select the proper function when
      running, for platform supports AVX2, execute the AVX2 instructions,
      else, execute the original instructions.
      Signed-off-by: NLiang Li <liang.z.li@intel.com>
      Suggested-by: NPaolo Bonzini <pbonzini@redhat.com>
      Suggested-by: NRichard Henderson <rth@twiddle.net>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <1457416397-26671-3-git-send-email-liang.z.li@intel.com>
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      28b90d9c
  3. 23 2月, 2016 2 次提交
  4. 11 2月, 2016 1 次提交
  5. 11 1月, 2016 1 次提交
  6. 10 11月, 2015 1 次提交
  7. 16 10月, 2015 1 次提交
    • J
      util - add automated ID generation utility · a0f19136
      Jeff Cody 提交于
      Multiple sub-systems in QEMU may find it useful to generate IDs
      for objects that a user may reference via QMP or HMP.  This patch
      presents a standardized way to do it, so that automatic ID generation
      follows the same rules.
      
      This patch enforces the following rules when generating an ID:
      
      1.) Guarantee no collisions with a user-specified ID
      2.) Identify the sub-system the ID belongs to
      3.) Guarantee of uniqueness
      4.) Spoiling predictability, to avoid creating an assumption
          of object ordering and parsing (i.e., we don't want users to think
          they can guess the next ID based on prior behavior).
      
      The scheme for this is as follows (no spaces):
      
                      # subsys D RR
      Reserved char --|    |   | |
      Subsystem String ----|   | |
      Unique number (64-bit) --| |
      Two-digit random number ---|
      
      For example, a generated node-name for the block sub-system may look
      like this:
      
          #block076
      
      The caller of id_generate() is responsible for freeing the generated
      node name string with g_free().
      Reviewed-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NJeff Cody <jcody@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      a0f19136
  8. 25 9月, 2015 1 次提交
  9. 09 9月, 2015 4 次提交
  10. 07 9月, 2015 2 次提交
  11. 19 8月, 2015 3 次提交
  12. 28 7月, 2015 1 次提交
  13. 06 7月, 2015 1 次提交
    • P
      Stop including qemu-common.h in memory.h · fba0a593
      Peter Maydell 提交于
      Including qemu-common.h from other header files is generally a bad
      idea, because it means it's very easy to end up with a circular
      dependency. For instance, if we wanted to include memory.h from
      qom/cpu.h we'd end up with this loop:
       memory.h -> qemu-common.h -> cpu.h -> cpu-qom.h -> qom/cpu.h -> memory.h
      
      Remove the include from memory.h. This requires us to fix up a few
      other files which were inadvertently getting declarations indirectly
      through memory.h.
      
      The biggest change is splitting the fprintf_function typedef out
      into its own header so other headers can get at it without having
      to include qemu-common.h.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-Id: <1435933104-15216-1-git-send-email-peter.maydell@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      fba0a593
  14. 26 6月, 2015 1 次提交
  15. 04 6月, 2015 1 次提交
  16. 30 4月, 2015 1 次提交
  17. 03 3月, 2015 1 次提交
  18. 14 1月, 2015 1 次提交
  19. 02 11月, 2014 1 次提交
    • M
      pidfile: stop making pidfile error a special case · fee78fd6
      Michael Tokarev 提交于
      In case of -daemonize, we write non-zero to the daemon
      pipe only if pidfile creation failed, so the parent will
      report error about pidfile problem.  There's no need to
      make special case for this, since all other errors are
      reported by the child just fine.  Let the parent report
      error and simplify logic in os_daemonize().
      
      This way, we don't need os_pidfile_error() function, since
      it only prints error now, so put the error reporting printf
      into the only place where qemu_create_pidfile() is called,
      in vl.c.
      
      While at it, fix wrong indentation in os_daemonize().
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      fee78fd6
  20. 03 10月, 2014 1 次提交
    • M
      util: Emancipate id_wellformed() from QemuOpts · f5bebbbb
      Markus Armbruster 提交于
      IDs have long spread beyond QemuOpts: not everything with an ID
      necessarily goes through QemuOpts.  Commit 9aebf3b8 is about such a
      case: block layer names are meant to be well-formed IDs, but some of
      them don't go through QemuOpts, and thus weren't checked.  The commit
      fixed that the straightforward way: rename the internal QemuOpts
      helper id_wellformed() to qemu_opts_id_wellformed() and give it
      external linkage.
      
      Instead of using it directly in block.c, the commit adds wrapper
      bdrv_is_valid_name(), probably to hide the connection to QemuOpts.
      
      Go one logical step further: emancipate IDs from QemuOpts.  Rename the
      function back to id_wellformed(), and put it in another file.  While
      there, clean up its value to bool.  Peel off the bdrv_is_valid_name()
      wrapper.
      
      [Replaced stray return 0 with return false to match bool returns used
      elsewhere in id_wellformed().
      --Stefan]
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      f5bebbbb
  21. 11 9月, 2014 1 次提交
  22. 07 8月, 2014 1 次提交
  23. 06 8月, 2014 2 次提交
  24. 14 7月, 2014 1 次提交
    • K
      dma-helpers: Fix too long qiov · 58f423fb
      Kevin Wolf 提交于
      If the size of the scatter/gather list isn't a multiple of 512, the
      number of sectors for the block layer request is rounded down, resulting
      in a qiov that doesn't match the request length. Truncate the qiov to the
      new length of the request.
      
      This fixes the IDE qtest case /x86_64/ide/bmdma/short_prdt.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      58f423fb
  25. 18 6月, 2014 1 次提交
  26. 19 5月, 2014 1 次提交
  27. 08 5月, 2014 1 次提交
  28. 27 3月, 2014 1 次提交
  29. 22 2月, 2014 1 次提交
  30. 20 2月, 2014 1 次提交
  31. 15 2月, 2014 1 次提交