1. 08 5月, 2011 2 次提交
  2. 05 5月, 2011 2 次提交
  3. 02 5月, 2011 2 次提交
  4. 20 4月, 2011 1 次提交
  5. 13 4月, 2011 2 次提交
  6. 07 4月, 2011 2 次提交
  7. 17 3月, 2011 1 次提交
  8. 16 3月, 2011 1 次提交
  9. 15 3月, 2011 1 次提交
  10. 13 3月, 2011 1 次提交
  11. 11 3月, 2011 1 次提交
    • V
      Fix performance regression in qemu_get_ram_ptr · 7d82af38
      Vincent Palatin 提交于
      When the commit f471a17e converted the
      ram_blocks structure to QLIST, it also removed the conditional check before
      switching the current block at the beginning of the list.
      
      In the common use case where ram_blocks has a few blocks with only one
      frequently accessed (the main RAM), this has a performance impact as it
      performs the useless list operations on each call (which are on a really
      hot path).
      
      On my machine emulation (ARM on amd64), this patch reduces the
      percentage of CPU time spent in qemu_get_ram_ptr from 6.3% to 2.1% in the
      profiling of a full boot.
      Signed-off-by: NVincent Palatin <vpalatin@chromium.org>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      7d82af38
  12. 14 2月, 2011 1 次提交
  13. 11 2月, 2011 1 次提交
  14. 16 1月, 2011 1 次提交
    • B
      tcg/sparc64: fix segfault · 4cd31ad2
      Blue Swirl 提交于
      With current OpenBSD, code_gen_buffer was mapped 8GB away from
      text segment. Then any helpers were beyond the 2GB range of call
      instruction genereated by TCG and so the calls would go nowhere,
      leading to a segfault.
      
      Fix by specifying an address for the code_gen_buffer,
      hopefully free and nearby the helpers.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      4cd31ad2
  15. 22 12月, 2010 1 次提交
  16. 11 12月, 2010 2 次提交
    • A
      Add endianness as io mem parameter · 2507c12a
      Alexander Graf 提交于
      As stated before, devices can be little, big or native endian. The
      target endianness is not of their concern, so we need to push things
      down a level.
      
      This patch adds a parameter to cpu_register_io_memory that allows a
      device to choose its endianness. For now, all devices simply choose
      native endian, because that's the same behavior as before.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      2507c12a
    • A
      exec: introduce endianness swapped mmio · dd310534
      Alexander Graf 提交于
      The way we're currently modeling mmio is too simplified. We assume that
      every device has the same endianness as the target CPU. In reality,
      most devices are little endian (all PCI and ISA ones I'm aware of). Some
      are big endian (special system devices) and a very little fraction is
      target native endian (fw_cfg).
      
      So instead of assuming every device to be native endianness, let's move
      to a model where the device tells us which endianness it's in.
      
      That way we can compile the devices only once and get rid of all the ugly
      swap will be done by the underlying layer.
      
      For the same of readability, this patch only introduces the helper framework
      but doesn't allow the registering code to set its endianness yet.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      dd310534
  17. 04 12月, 2010 1 次提交
  18. 03 12月, 2010 1 次提交
  19. 30 10月, 2010 1 次提交
  20. 21 10月, 2010 1 次提交
  21. 03 10月, 2010 1 次提交
  22. 25 9月, 2010 1 次提交
    • A
      Introduce qemu_madvise() · e78815a5
      Andreas Färber 提交于
      vl.c has a Sun-specific hack to supply a prototype for madvise(),
      but the call site has apparently moved to arch_init.c.
      
      Haiku doesn't implement madvise() in favor of posix_madvise().
      OpenBSD and Solaris 10 don't implement posix_madvise() but madvise().
      MinGW implements neither.
      
      Check for madvise() and posix_madvise() in configure and supply qemu_madvise()
      as wrapper. Prefer madvise() over posix_madvise() due to flag availability.
      Convert all callers to use qemu_madvise() and QEMU_MADV_*.
      
      Note that on Solaris the warning is fixed by moving the madvise() prototype,
      not by qemu_madvise() itself. It helps with porting though, and it simplifies
      most call sites.
      
      v7 -> v8:
      * Some versions of MinGW have no sys/mman.h header. Reported by Blue Swirl.
      
      v6 -> v7:
      * Adopt madvise() rather than posix_madvise() semantics for returning errors.
      * Use EINVAL in place of ENOTSUP.
      
      v5 -> v6:
      * Replace two leftover instances of POSIX_MADV_NORMAL with QEMU_MADV_INVALID.
        Spotted by Blue Swirl.
      
      v4 -> v5:
      * Introduce QEMU_MADV_INVALID, suggested by Alexander Graf.
        Note that this relies on -1 not being a valid advice value.
      
      v3 -> v4:
      * Eliminate #ifdefs at qemu_advise() call sites. Requested by Blue Swirl.
        This will currently break the check in kvm-all.c by calling madvise() with
        a supported flag, which will not fail. Ideas/patches welcome.
      
      v2 -> v3:
      * Reuse the *_MADV_* defines for QEMU_MADV_*. Suggested by Alexander Graf.
      * Add configure check for madvise(), too.
        Add defines to Makefile, not QEMU_CFLAGS.
        Convert all callers, untested. Suggested by Blue Swirl.
      * Keep Solaris' madvise() prototype around. Pointed out by Alexander Graf.
      * Display configure check results.
      
      v1 -> v2:
      * Don't rely on posix_madvise() availability, add qemu_madvise().
        Suggested by Blue Swirl.
      Signed-off-by: NAndreas Färber <afaerber@opensolaris.org>
      Cc: Blue Swirl <blauwirbel@gmail.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      e78815a5
  23. 28 8月, 2010 1 次提交
    • G
      Fix segfault in mmio subpage handling code. · 95c318f5
      Gleb Natapov 提交于
      It is possible that subpage mmio is registered over existing memory
      page. When this happens "memory" will have real memory address and not
      index into io_mem array so next access to the page will generate
      segfault. It is uncommon to have some part of a page to be accessed as
      memory and some as mmio, but qemu shouldn't crash even when guest does
      stupid things. So lets just pretend that the rest of the page is
      unassigned if guest configure part of the memory page as mmio.
      Signed-off-by: NGleb Natapov <gleb@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      95c318f5
  24. 23 8月, 2010 2 次提交
  25. 11 8月, 2010 1 次提交
  26. 22 7月, 2010 1 次提交
  27. 08 7月, 2010 1 次提交
  28. 06 7月, 2010 6 次提交