1. 16 6月, 2011 1 次提交
  2. 14 6月, 2011 1 次提交
  3. 08 6月, 2011 1 次提交
  4. 06 6月, 2011 2 次提交
  5. 19 5月, 2011 1 次提交
  6. 08 5月, 2011 4 次提交
  7. 27 4月, 2011 1 次提交
  8. 26 4月, 2011 1 次提交
  9. 07 4月, 2011 1 次提交
    • M
      exit if -drive specified is invalid instead of ignoring the "wrong" -drive · e2982c3a
      Michael Tokarev 提交于
      This fixes the problem when qemu continues even if -drive specification
      is somehow invalid, resulting in a mess.  Applicable for both current
      master and for stable-0.14 (and the same issue exist 0.13 and 0.12 too).
      
      The prob can actually be seriuos: when you start guest with two drives
      and make an error in the specification of one of them, and the guest
      has something like a raid array on the two drives, guest may start failing
      that array or kick "missing" drives which may result in a mess - this is
      what actually happened to me, I did't want a resync at all, and a resync
      resulted in re-writing (and allocating) a 4TB virtual drive I used for
      testing, which in turn resulted in my filesystem filling up and whole
      thing failing badly.  Yes it was just testing VM, I experimented with
      larger raid arrays, but the end result was quite, well, unexpected.
      Signed-off-by: NMichael Tokarev <mjt@tls.msk.ru>
      Acked-by: NJes Sorensen <Jes.Sorensen@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      e2982c3a
  10. 04 4月, 2011 3 次提交
  11. 29 3月, 2011 1 次提交
  12. 26 3月, 2011 1 次提交
  13. 25 3月, 2011 1 次提交
  14. 22 3月, 2011 6 次提交
  15. 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
  16. 16 3月, 2011 1 次提交
  17. 15 3月, 2011 1 次提交
  18. 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
  19. 14 2月, 2011 7 次提交
  20. 05 2月, 2011 1 次提交
  21. 31 1月, 2011 3 次提交
    • 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