1. 28 2月, 2017 1 次提交
  2. 26 10月, 2016 1 次提交
  3. 24 10月, 2016 1 次提交
    • P
      cpu: Support a target CPU having a variable page size · 20bccb82
      Peter Maydell 提交于
      Support target CPUs having a page size which isn't knownn
      at compile time. To use this, the CPU implementation should:
       * define TARGET_PAGE_BITS_VARY
       * not define TARGET_PAGE_BITS
       * define TARGET_PAGE_BITS_MIN to the smallest value it
         might possibly want for TARGET_PAGE_BITS
       * call set_preferred_target_page_bits() in its realize
         function to indicate the actual preferred target page
         size for the CPU (and report any error from it)
      
      In CONFIG_USER_ONLY, the CPU implementation should continue
      to define TARGET_PAGE_BITS appropriately for the guest
      OS page size.
      
      Machines which want to take advantage of having the page
      size something larger than TARGET_PAGE_BITS_MIN must
      set the MachineClass minimum_page_bits field to a value
      which they guarantee will be no greater than the preferred
      page size for any CPU they create.
      
      Note that changing the target page size by setting
      minimum_page_bits is a migration compatibility break
      for that machine.
      
      For debugging purposes, attempts to use TARGET_PAGE_SIZE
      before it has been finally confirmed will assert.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      20bccb82
  4. 11 8月, 2016 1 次提交
  5. 07 6月, 2016 1 次提交
  6. 19 5月, 2016 4 次提交
  7. 23 3月, 2016 9 次提交
  8. 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
  9. 23 2月, 2016 2 次提交
  10. 11 2月, 2016 1 次提交
  11. 11 1月, 2016 1 次提交
  12. 10 11月, 2015 1 次提交
  13. 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
  14. 25 9月, 2015 1 次提交
  15. 09 9月, 2015 4 次提交
  16. 07 9月, 2015 2 次提交
  17. 19 8月, 2015 3 次提交
  18. 28 7月, 2015 1 次提交
  19. 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
  20. 26 6月, 2015 1 次提交
  21. 04 6月, 2015 1 次提交
  22. 30 4月, 2015 1 次提交