1. 15 12月, 2014 1 次提交
  2. 07 10月, 2014 1 次提交
  3. 12 8月, 2014 1 次提交
    • A
      trace: add some tcg tracing support · 6db8b538
      Alex Bennée 提交于
      This adds a couple of tcg specific trace-events which are useful for
      tracing execution though tcg generated blocks. It's been tested with
      lttng user space tracing but is generic enough for all systems. The tcg
      events are:
      
        * translate_block - when a subject block is translated
        * exec_tb - when a translated block is entered
        * exec_tb_exit - when we exit the translated code
        * exec_tb_nocache - special case translations
      
      Of course we can only trace the entrance to the first block of a chain
      as each block will jump directly to the next when it can. See the -d
      nochain patch to allow more complete tracing at the expense of
      performance.
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      6db8b538
  4. 25 6月, 2014 1 次提交
  5. 19 6月, 2014 1 次提交
  6. 24 5月, 2014 2 次提交
  7. 13 5月, 2014 1 次提交
  8. 05 4月, 2014 1 次提交
    • A
      page_check_range: don't bail out early after unprotecting page · cd7ccc83
      Andrei Warkentin 提交于
      When checking a page range, if we found that a page was
      made read-only by QEMU because it contained translated code,
      we were incorrectly returning immediately after unprotecting
      that page, rather than continuing to check the entire range,
      so we might fail to unprotect pages later in the range, or
      might incorrectly return a "success" result even if later
      pages were not writable.
      
      In particular, this could cause segfaults in a case where
      signals are delivered back to back on a target architecture
      which uses trampoline code in the stack frame (as AArch64
      currently does). The second signal causes a segfault because
      the frame cannot be written to (it was protected because
      we translated and executed the restorer trampoline, and the
      unprotect logic did not unprotect the whole range).
      
      Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com
      [PMM: expanded commit message a bit]
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      cd7ccc83
  9. 14 3月, 2014 13 次提交
  10. 11 2月, 2014 1 次提交
  11. 18 1月, 2014 1 次提交
  12. 23 12月, 2013 1 次提交
  13. 10 12月, 2013 1 次提交
    • P
      split definitions for exec.c and translate-all.c radix trees · 03f49957
      Paolo Bonzini 提交于
      The exec.c and translate-all.c radix trees are quite different, and
      the exec.c one in particular is not limited to the CPU---it can be
      used also by devices that do DMA, and in that case the address space
      is not limited to TARGET_PHYS_ADDR_SPACE_BITS bits.
      
      We want to make exec.c's radix trees 64-bit wide.  As a first step,
      stop sharing the constants between exec.c and translate-all.c.
      exec.c gets P_L2_* constants, translate-all.c gets V_L2_*, for
      consistency with the existing V_L1_* symbols.  Though actually
      in the softmmu case translate-all.c is also indexed by physical
      addresses...
      
      This patch has no semantic change.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      03f49957
  14. 11 10月, 2013 1 次提交
  15. 21 9月, 2013 1 次提交
    • S
      translate-all: Fix formatting of dump output · 227b8175
      Stefan Weil 提交于
      The page dump writes a table with 3 abi_ulong values in each row.
      These values take 8 or 16 characters (depending on sizeof abi_ulong).
      
      Fix the table headings to be aligned with the table columns.
      
      old:
      start    end      size     prot
      0000000120000000-000000012021e000 000000000021e000 rwx
      0000004000000000-0000004000002000 0000000000002000 ---
      0000004000002000-0000004000802000 0000000000800000 rw-
      
      new:
      start            end              size             prot
      0000000120000000-000000012021e000 000000000021e000 rwx
      0000004000000000-0000004000002000 0000000000002000 ---
      0000004000002000-0000004000802000 0000000000800000 rw-
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      227b8175
  16. 03 9月, 2013 1 次提交
  17. 23 7月, 2013 1 次提交
    • A
      linux-user: Unlock mmap_lock when resuming guest from page_unprotect · d02532f0
      Alexander Graf 提交于
      The page_unprotect() function is running everything locked. Before every
      potential exit path of the function mmap_unlock() gets called to make sure
      we don't leak the lock.
      
      However, the function calls tb_invalidate_phys_page() which again can
      exit a signal through longjmp, leaving our mmap_unlock() attempts in vain.
      
      Add a hint to tb_invalidate_phys_page() that we need to unlock before we
      can leave back into guest context, so that we don't leak the lock.
      
      This fixes 16-bit i386 wine programs running in linux-user for me.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
      d02532f0
  18. 10 7月, 2013 2 次提交
  19. 20 6月, 2013 1 次提交
  20. 12 6月, 2013 1 次提交
  21. 29 5月, 2013 1 次提交
    • P
      memory: add address_space_translate · 149f54b5
      Paolo Bonzini 提交于
      Using phys_page_find to translate an AddressSpace to a MemoryRegionSection
      is unwieldy.  It requires to pass the page index rather than the address,
      and later memory_region_section_addr has to be called.  Replace
      memory_region_section_addr with a function that does all of it: call
      phys_page_find, compute the offset within the region, and check how
      big the current mapping is.  This way, a large flat region can be written
      with a single lookup rather than a page at a time.
      
      address_space_translate will also provide a single point where IOMMU
      forwarding is implemented.
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      149f54b5
  22. 25 5月, 2013 1 次提交
  23. 18 5月, 2013 1 次提交
  24. 27 4月, 2013 1 次提交
    • A
      PPC: Fix compile with profiling enabled · c8ff5daa
      Alexander Graf 提交于
      When using profiling, we rely on profile_getclock() being available
      at our disposal. Somehow that function got moved from an indirect
      include we used to have in translate-init.c, so that we were now
      left not properly compiling anymore.
      
      Add an explicit include to timer.h which defines profile_getclock,
      so that we can compile again.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      c8ff5daa
  25. 22 4月, 2013 1 次提交
  26. 16 4月, 2013 1 次提交