1. 21 3月, 2011 1 次提交
    • P
      change all rt_clock references to use millisecond resolution accessors · 7bd427d8
      Paolo Bonzini 提交于
      This was done with:
      
          sed -i '/get_clock\>.*rt_clock/s/get_clock\>/get_clock_ms/' \
              $(git grep -l 'get_clock\>.*rt_clock' )
          sed -i '/new_timer\>.*rt_clock/s/new_timer\>/new_timer_ms/' \
              $(git grep -l 'new_timer\>.*rt_clock' )
      
      after checking that get_clock and new_timer never occur twice
      on the same line.  There were no missed occurrences; however, even
      if there had been, they would have been caught by the compiler.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7bd427d8
  2. 16 3月, 2011 1 次提交
  3. 15 3月, 2011 1 次提交
  4. 07 3月, 2011 1 次提交
    • S
      simpletrace: Thread-safe tracing · 0b5538c3
      Stefan Hajnoczi 提交于
      Trace events outside the global mutex cannot be used with the simple
      trace backend since it is not thread-safe.  There is no check to prevent
      them being enabled so people sometimes learn this the hard way.
      
      This patch restructures the simple trace backend with a ring buffer
      suitable for multiple concurrent writers.  A writeout thread empties the
      trace buffer when threshold fill levels are reached.  Should the
      writeout thread be unable to keep up with trace generation, records will
      simply be dropped.
      
      Each time events are dropped a special record is written to the trace
      file indicating how many events were dropped.  The event ID is
      0xfffffffffffffffe and its signature is dropped(uint32_t count).
      Signed-off-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      0b5538c3
  5. 14 2月, 2011 7 次提交
  6. 05 2月, 2011 1 次提交
  7. 31 1月, 2011 4 次提交
    • M
      blockdev: Fix drive_add for drives without media · 319ae529
      Markus Armbruster 提交于
      Watch this:
      
          (qemu) drive_add 0 if=none
          (qemu) info block
          none0: type=hd removable=0 [not inserted]
          (qemu) drive_del none0
          Segmentation fault (core dumped)
      
      add_init_drive() is confused about drive_init()'s failure modes, and
      cleans up when it shouldn't.  This leaves the DriveInfo with member
      opts dangling.  drive_del attempts to free it, and dies.
      
      drive_init() behaves as follows:
      
      * If it created a drive with media, it returns its DriveInfo.
      
      * If it created a drive without media, it clears *fatal_error and
        returns NULL.
      
      * If it couldn't create a drive, it sets *fatal_error and returns
        NULL.
      
      Of its three callers:
      
      * drive_init_func() is correct.
      
      * usb_msd_init() assumes drive_init() failed when it returns NULL.
        This is correct only because it always passes option "file", and
        "drive without media" can't happen then.
      
      * add_init_drive() assumes drive_init() failed when it returns NULL.
        This is incorrect.
      
      Clean up drive_init() to return NULL on failure and only on failure.
      Drop its parameter fatal_error.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      319ae529
    • M
      blockdev: Replace drive_add()'s fmt, ... by optstr parameter · 5645b0f4
      Markus Armbruster 提交于
      Let the callers build the optstr.  Only one wants to.  All the others
      become simpler, because they don't have to worry about escaping '%'.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      5645b0f4
    • M
      blockdev: Reject multiple definitions for the same drive · 4e5d9b57
      Markus Armbruster 提交于
      We silently ignore multiple definitions for the same drive:
      
          $ qemu-system-x86_64 -nodefaults -vnc :1 -S -monitor stdio -drive if=ide,index=1,file=tmp.qcow2 -drive if=ide,index=1,file=nonexistant
          QEMU 0.13.50 monitor - type 'help' for more information
          (qemu) info block
          ide0-hd1: type=hd removable=0 file=tmp.qcow2 backing_file=tmp.img ro=0 drv=qcow2 encrypted=0
      
      With if=none, this can become quite confusing:
      
          $ qemu-system-x86_64 -nodefaults -vnc :1 -S -monitor stdio -drive if=none,index=1,file=tmp.qcow2,id=eins -drive if=none,index=1,file=nonexistant,id=zwei -device ide-drive,drive=eins -device ide-drive,drive=zwei
          qemu-system-x86_64: -device ide-drive,drive=zwei: Property 'ide-drive.drive' can't find value 'zwei'
      
      The second -device fails, because it refers to drive zwei, which got
      silently ignored.
      
      Make multiple drive definitions fail cleanly.
      
      Unfortunately, there's code that relies on multiple drive definitions
      being silently ignored: main() merrily adds default drives even when
      the user already defined these drives.  Fix that up.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      4e5d9b57
    • M
      blockdev: Make drive_add() take explicit type, index parameters · 2292ddae
      Markus Armbruster 提交于
      Before, type & index were hidden in printf-like fmt, ... parameters,
      which get expanded into an option string.  Rather inconvenient for
      uses later in this series.
      
      New IF_DEFAULT to ask for the machine's default interface.  Before,
      that was done by having no option "if" in the option string.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      2292ddae
  8. 24 1月, 2011 1 次提交
  9. 23 1月, 2011 1 次提交
  10. 28 12月, 2010 1 次提交
  11. 20 12月, 2010 1 次提交
    • I
      qbus: register reset handler for qbus whose parent is NULL · 80376c3f
      Isaku Yamahata 提交于
      Stefan Weil reported the regression caused by
      ec990eb6 as follows
      
      > The second regression also occurs with MIPS malta.
      > Networking no longer works with the default pcnet nic.
      >
      > This is caused because the reset function for pcnet is no
      > longer called during system boot. The result in an invalid
      > mac address (all zero) and a non-working nic.
      >
      > For this second regression I still have no simple solution.
      > Of course mips_malta.c should be converted to qdev which
      > would fix both problems (but only for malta system emulation).
      
      The issue is, it is assumed that all qbuses, qdeves are under
      main_system_bus. But there are qbuses whose parent is NULL. So it
      is necessary to trigger reset for those qbuses.
      (On the other hand, if NULL is passed to qdev_create(), its parent bus
      is main_system_bus.)
      Ideally those buses should be moved under bus controller
      device which is qdev. But it's not done yet.
      So register qbus reset handler for qbus whose parent is NULL.
      Reported-by: NStefan Weil <weil@mail.berlios.de>
      Signed-off-by: N"Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NIsaku Yamahata <yamahata@valinux.co.jp>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      80376c3f
  12. 19 12月, 2010 1 次提交
  13. 12 12月, 2010 4 次提交
  14. 09 12月, 2010 1 次提交
    • G
      spice: add qxl device · a19cbfb3
      Gerd Hoffmann 提交于
      qxl is a paravirtual graphics card.  The qxl device is the bridge
      between the guest and the spice server (aka libspice-server).  The
      spice server will send the rendering commands to the spice client, which
      will actually render them.
      
      The spice server is also able to render locally, which is done in case
      the guest wants read something from video memory.  Local rendering is
      also used to support display over vnc and sdl.
      
      qxl is activated using "-vga qxl".  qxl supports multihead, additional
      cards can be added via '-device qxl".
      
      [ v2: add copyright to files                     ]
      [ v2: use qemu-common.h for standard includes    ]
      [ v2: create separate qxl-vga device for primary ]
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      a19cbfb3
  15. 22 11月, 2010 1 次提交
  16. 21 11月, 2010 1 次提交
  17. 17 11月, 2010 1 次提交
  18. 04 11月, 2010 1 次提交
  19. 23 10月, 2010 1 次提交
    • B
      qemu-timer: move commonly used timer code to qemu-timer-common · c57c846a
      Blue Swirl 提交于
      Move timer init functions to a new file, qemu-timer-common.c. Make other
      critical timer functions inlined to preserve performance in
      qemu-timer.c, also move muldiv64() (used by the inline functions)
      to qemu-timer.h.
      
      Adjust block/raw-posix.c and simpletrace.c to use get_clock() directly.
      Remove a similar/duplicate definition in qemu-tool.c.
      
      Adjust hw/omap_clk.c to include qemu-timer.h because muldiv64() is used
      there.
      
      After this change, tracing can be used also for user code and
      simpletrace on Win32.
      
      Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Acked-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      c57c846a
  20. 01 10月, 2010 1 次提交
  21. 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
  22. 22 9月, 2010 4 次提交
    • G
      spice: simple display · a3e22260
      Gerd Hoffmann 提交于
      With that patch applied you'll actually see the guests screen in the
      spice client.  This does *not* bring qxl and full spice support though.
      This is basically the qxl vga mode made more generic, so it plays
      together with any qemu-emulated gfx card.  You can display stdvga or
      cirrus via spice client.  You can have both vnc and spice enabled and
      clients connected at the same time.
      a3e22260
    • G
      spice: core bits · 29b0040b
      Gerd Hoffmann 提交于
      Add -spice command line switch.  Has support setting passwd and port for
      now.  With this patch applied the spice client can successfully connect
      to qemu.  You can't do anything useful yet though.
      29b0040b
    • G
      526c5237
    • G
      Use display types for local display only. · 6b62dc2d
      Gerd Hoffmann 提交于
      This patch drops DT_VNC.  The display types are only used to select
      select the local display (i.e. curses, sdl, coca, ...).  Remote
      displays (for now only vnc, spice will follow) can be enabled
      independently.
      6b62dc2d
  23. 10 9月, 2010 1 次提交
  24. 09 9月, 2010 1 次提交
  25. 04 9月, 2010 1 次提交