1. 22 12月, 2016 3 次提交
  2. 07 12月, 2016 1 次提交
    • P
      exec.c: Fix breakpoint invalidation race · a9353fe8
      Peter Maydell 提交于
      A bug (1647683) was reported showing a crash when removing
      breakpoints.  The reproducer was bisected to 3359baad when tb_flush
      was finally made thread safe.  While in MTTCG the locking in
      breakpoint_invalidate would have prevented any problems, but
      currently tb_lock() is a NOP for system emulation.
      
      The race is between a tb_flush from the gdbstub and the
      tb_invalidate_phys_addr() in breakpoint_invalidate().
      
      Ideally we'd have actual locking here; for the moment the
      simple fix is to do a full tb_flush() for a bp invalidate,
      since that is thread-safe even if no lock is taken.
      Reported-by: NJulian Brown <julian@codesourcery.com>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1481047629-7763-1-git-send-email-peter.maydell@linaro.org
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      a9353fe8
  3. 02 11月, 2016 2 次提交
  4. 01 11月, 2016 2 次提交
  5. 31 10月, 2016 2 次提交
  6. 26 10月, 2016 1 次提交
  7. 25 10月, 2016 3 次提交
  8. 24 10月, 2016 3 次提交
    • 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
    • V
      exec.c: Remove static allocation of sub_section of sub_page · 2615fabd
      Vijaya Kumar K 提交于
      Allocate sub_section dynamically. Remove dependency
      on TARGET_PAGE_SIZE to make run-time page size detection
      for arm platforms.
      Signed-off-by: NVijaya Kumar K <vijayak@cavium.com>
      Message-id: 1465808915-4887-3-git-send-email-vijayak@caviumnetworks.com
      [PMM: use flexible array member rather than separate malloc
       so we don't need an extra pointer deref when using it]
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      2615fabd
    • H
      exec.c: workaround regression caused by alignment change in d2f39add · 8360668e
      Haozhong Zhang 提交于
      Commit d2f39add "exec.c: Ensure right alignment also for file backed ram"
      added an additional alignment requirement on the size of backend file
      besides the previous page size. On x86, the alignment is changed from
      4KB in QEMU 2.6 to 2MB in QEMU 2.7.
      
      This change breaks certain usages in QEMU 2.7 on x86, e.g.
          -object memory-backend-file,id=mem1,mem-path=/tmp/,size=$SZ
          -device pc-dimm,id=dimm1,memdev=mem1
      where $SZ is multiple of 4KB but not 2MB (e.g. 1023M). QEMU 2.7
      reports the following error message and aborts:
      qemu-system-x86_64: -device pc-dimm,memdev=mem1,id=nv1: backend memory size must be multiple of 0x200000
      
      The same regression may also happen in other platforms as indicated by
      Igor Mammedov. This change is however necessary for s390 according to
      the commit message of d2f39add, so we workaround the regression by taking
      the change only on s390.
      Signed-off-by: NHaozhong Zhang <haozhong.zhang@intel.com>
      Reported-by: N"Xu, Anthony" <anthony.xu@intel.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      8360668e
  9. 13 10月, 2016 1 次提交
  10. 08 10月, 2016 1 次提交
  11. 27 9月, 2016 1 次提交
  12. 14 9月, 2016 2 次提交
  13. 06 9月, 2016 1 次提交
  14. 02 8月, 2016 1 次提交
  15. 27 7月, 2016 3 次提交
  16. 17 7月, 2016 1 次提交
    • P
      exec: avoid realloc in phys_map_node_reserve · 101420b8
      Peter Lieven 提交于
      this is the first step in reducing the brk heap fragmentation
      created by the map->nodes memory allocation. Since the introduction
      of RCU the freeing of the PhysPageMaps is delayed so that sometimes
      several hundred are allocated at the same time.
      
      Even worse the memory for map->nodes is allocated and shortly
      afterwards reallocated. Since the number of nodes it grows
      to in the end is the same for all PhysPageMaps remember this value
      and at least avoid the reallocation.
      
      The large number of simultaneous allocations (about 450 x 70kB in
      my configuration) has to be addressed later.
      Signed-off-by: NPeter Lieven <pl@kamp.de>
      Message-Id: <1468577030-21097-1-git-send-email-pl@kamp.de>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      101420b8
  17. 12 7月, 2016 1 次提交
  18. 17 6月, 2016 1 次提交
  19. 13 6月, 2016 1 次提交
  20. 09 6月, 2016 1 次提交
  21. 30 5月, 2016 2 次提交
  22. 29 5月, 2016 4 次提交
  23. 23 5月, 2016 2 次提交