1. 06 5月, 2015 6 次提交
  2. 05 5月, 2015 2 次提交
  3. 28 4月, 2015 3 次提交
    • J
      iotests: add QMP event waiting queue · 7898f74e
      John Snow 提交于
      A filter is added to allow callers to request very specific
      events to be pulled from the event queue, while leaving undesired
      events still in the stream.
      
      This allows us to poll for completion data for multiple asynchronous
      events in any arbitrary order.
      
      A new timeout context is added to the qmp pull_event method's
      wait parameter to allow tests to fail if they do not complete
      within some expected period of time.
      
      Also fixed is a bug in qmp.pull_event where we try to retrieve an event
      from an empty list if we attempt to retrieve an event with wait=False
      but no events have occurred.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Reviewed-by: NMax Reitz <mreitz@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-id: 1429314609-29776-19-git-send-email-jsnow@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      7898f74e
    • S
      scripts: add 'qemu coroutine' command to qemu-gdb.py · 9eddd6a4
      Stefan Hajnoczi 提交于
      The 'qemu coroutine <coroutine-address>' GDB command prints the
      backtrace for a CoroutineUContext.  This is useful for peeking inside
      yielded coroutines that are waiting for file descriptor events, timers,
      etc.
      
      For example:
      
        $ gdb tests/test-coroutine
        (gdb) b test_yield
        (gdb) r
        (gdb) b qemu_coroutine_enter
        (gdb) c
        (gdb) c
        Continuing.
      
        Breakpoint 2, qemu_coroutine_enter (co=0x555555c66520, opaque=0x0) at qemu-coroutine.c:103
        103	{
        (gdb) source scripts/qemu-gdb.py
        (gdb) qemu coroutine 0x555555c66520
        #0  0x000055555557a740 in qemu_coroutine_switch (from_=<optimized out>, to_=0x7ffff7f90a70, action=COROUTINE_YIELD) at coroutine-ucontext.c:177
        #1  0x0000555555566af9 in yield_5_times (opaque=0x7fffffffdbb7) at tests/test-coroutine.c:107
        #2  0x000055555557a7aa in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at coroutine-ucontext.c:80
        #3  0x00007ffff08de000 in __start_context () at /lib64/libc.so.6
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-id: 1427409754-8556-1-git-send-email-stefanha@redhat.com
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      9eddd6a4
    • S
      checkpatch: complain about ffs(3) calls · 8b6ee9ae
      Stefan Hajnoczi 提交于
      The ffs(3) family of functions is not portable.  MinGW doesn't always
      provide the function.
      
      Use ctz32() or ctz64() instead.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-id: 1427124571-28598-10-git-send-email-stefanha@redhat.com
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      8b6ee9ae
  4. 26 4月, 2015 1 次提交
  5. 25 4月, 2015 1 次提交
  6. 18 3月, 2015 1 次提交
  7. 17 3月, 2015 2 次提交
  8. 10 3月, 2015 2 次提交
  9. 03 3月, 2015 1 次提交
    • S
      trace: add DTrace reserved words for .d files · 0b7e89b1
      Stefan Hajnoczi 提交于
      DTrace on Mac OS X fails due to trace events using 'self' as an argument
      name:
      
        GEN   trace/generated-tracers-dtrace.h
      dtrace: failed to compile script trace/generated-tracers-dtrace.dtrace: line 1330: syntax error, unexpected DT_KEY_SELF, expecting ) near "self"
      make: *** [trace/generated-tracers-dtrace.h] Error 1
      
      Filter argument names according to the list of DTrace .d file reserved
      keywords.
      
      Note that DTrace on Mac and Linux still do not work after this patch.
      There are additional build issues remaining.
      Reported-by: NHenk Poley <henkpoley@gmail.com>
      Tested-by: NHenk Poley <henkpoley@gmail.com>
      Cc: Lluís Vilanova <vilanova@ac.upc.edu>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      0b7e89b1
  10. 28 2月, 2015 1 次提交
  11. 26 2月, 2015 4 次提交
  12. 24 2月, 2015 1 次提交
    • M
      qapi-types: add C99 index names to arrays · 912ae9c8
      Michael S. Tsirkin 提交于
      It's not easy to figure out how monitor translates
      strings: most QEMU code deals with translated indexes,
      these are translated using _lookup arrays,
      so you need to find the array name, and find the
      appropriate offset.
      
      This patch adds C99 indexes to lookup arrays, which makes it possible to
      find the correct key using simple grep, and see that the matching is
      correct at a glance.
      
      Example:
      
      Before:
      
      const char *MigrationCapability_lookup[] = {
          "xbzrle",
          "rdma-pin-all",
          "auto-converge",
          "zero-blocks",
          NULL,
      };
      
      After:
      
      const char *MigrationCapability_lookup[] = {
          [MIGRATION_CAPABILITY_XBZRLE] = "xbzrle",
          [MIGRATION_CAPABILITY_RDMA_PIN_ALL] = "rdma-pin-all",
          [MIGRATION_CAPABILITY_AUTO_CONVERGE] = "auto-converge",
          [MIGRATION_CAPABILITY_ZERO_BLOCKS] = "zero-blocks",
          [MIGRATION_CAPABILITY_MAX] = NULL,
      };
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      912ae9c8
  13. 17 2月, 2015 1 次提交
  14. 16 2月, 2015 1 次提交
  15. 12 2月, 2015 1 次提交
    • W
      kvm_stat: Add kvm_exit reasons for aarch64 · edecf5ec
      Wei Huang 提交于
      This patch defines the list of kvm_exit reasons for aarch64. This list is
      based on the Exception Class (EC) field of HSR register. With this patch
      users can trace the execution of guest VMs better. A sample output from
      command "kvm_stat -1 -t" is shown as the following:
      <...>
      kvm_exit(WATCHPT_HYP)          0         0
      kvm_exit(WFI)               9422      9361
      
      NOTE: This patch requires TRACE_EVENT(kvm_exit) to include exit_reason
      field in TP_ARGS. A patch to upstream kernel has been submitted.
      Signed-off-by: NWei Huang <wei@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      edecf5ec
  16. 10 2月, 2015 1 次提交
  17. 06 2月, 2015 6 次提交
    • D
      trace: Print PID and time in stderr traces · dd9fe29c
      Dr. David Alan Gilbert 提交于
      When debugging migration it's useful to know the PID of
      each trace message so you can figure out if it came from the source
      or the destination.
      
      Printing the time makes it easy to do latency measurements or timings
      between trace points.
      Signed-off-by: NDr. David Alan Gilbert <dgilbert@redhat.com>
      Message-id: 1421746875-9962-1-git-send-email-dgilbert@redhat.com
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      dd9fe29c
    • A
      Add migration stream analyzation script · b1742570
      Alexander Graf 提交于
      This patch adds a python tool to the scripts directory that can read
      a dumped migration stream if it contains the JSON description of the
      device states. I constructs a human readable JSON stream out of it.
      
      It's very simple to use:
      
        $ qemu-system-x86_64
          (qemu) migrate "exec:cat > mig"
        $ ./scripts/analyze_migration.py -f mig
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      b1742570
    • A
      vmstate-static-checker: update whitelist · 027f1569
      Amit Shah 提交于
      Commit 22382bb9 renamed the
      'hw_cursor_x' and 'hw_cursor_y' fields in cirrus_vga.  Update the static
      checker's whitelist to allow matching against the old and new names.
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Reviewed-by: NGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: NAmit Shah <amit.shah@redhat.com>
      Signed-off-by: NJuan Quintela <quintela@redhat.com>
      027f1569
    • M
      coverity: Model g_free() isn't necessarily free() · 7ad4c720
      Markus Armbruster 提交于
      Memory allocated with GLib needs to be freed with GLib.  Freeing it
      with free() instead of g_free() is a common error.  Harmless when
      g_free() is a trivial wrapper around free(), which is commonly the
      case.  But model the difference anyway.
      
      In a local scan, this flags four ALLOC_FREE_MISMATCH.  Requires
      --enable ALLOC_FREE_MISMATCH, because the checker is still preview.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      7ad4c720
    • M
      coverity: Model GLib string allocation partially · e4b77daa
      Markus Armbruster 提交于
      Without a model, Coverity can't know that the result of g_strdup()
      needs to be fed to g_free().
      
      One way to get such a model is to scan GLib, build a derived model
      file with cov-collect-models, and use that when scanning QEMU.
      Unfortunately, the Coverity Scan service we use doesn't support that.
      
      Thus, we're stuck with the other way: write a user model.  Doing that
      for all of GLib is hardly practical.  I'm doing it for the "String
      Utility Functions" we actually use that return dynamically allocated
      strings.
      
      In a local scan, this flags 20 additional RESOURCE_LEAKs.  The ones I
      checked look genuine.
      
      It also loses a NULL_RETURNS about ppce500_init() using
      qemu_find_file() without error checking.  I don't understand why.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      e4b77daa
    • M
      coverity: Improve model for GLib memory allocation · 9d7a4c66
      Markus Armbruster 提交于
      In current versions of GLib, g_new() may expand into g_malloc_n().
      When it does, Coverity can't see the memory allocation, because we
      don't model g_malloc_n().  Similarly for g_new0(), g_renew(),
      g_try_new(), g_try_new0(), g_try_renew().
      
      Model g_malloc_n(), g_malloc0_n(), g_realloc_n().  Model
      g_try_malloc_n(), g_try_malloc0_n(), g_try_realloc_n() by adding
      indeterminate out of memory conditions on top.
      
      To avoid undue duplication, replace the existing models for g_malloc()
      & friends by trivial wrappers around g_malloc_n() & friends.
      
      In a local scan, this flags four additional RESOURCE_LEAKs and one
      NULL_RETURNS.
      
      The NULL_RETURNS is a false positive: Coverity can now see that
      g_try_malloc(l1_sz * sizeof(uint64_t)) in
      qcow2_check_metadata_overlap() may return NULL, but is too stupid to
      recognize that a loop executing l1_sz times won't be entered then.
      
      Three out of the four RESOURCE_LEAKs appear genuine.  The false
      positive is in ppce500_prep_device_tree(): the pointer dies, but a
      pointer to a struct member escapes, and we get the pointer back for
      freeing with container_of().  Too funky for Coverity.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Acked-by: NPaolo Bonzini <pbonzini@redhat.com>
      9d7a4c66
  18. 26 1月, 2015 4 次提交
  19. 20 1月, 2015 1 次提交
    • P
      scripts/qapi-types.py: Add dummy member to empty structs · 83ecb22b
      Peter Maydell 提交于
      Make sure that all generated C structs have at least one field; this
      avoids potential issues with attempting to malloc space for
      zero-length structs in C (g_malloc(sizeof struct) would return NULL).
      It also avoids an incompatibility with C++ (where an empty struct is
      size 1); that isn't important to us now but might be in future.
      
      Generated empty structures look like this:
          struct Abort
          {
              char qapi_dummy_field_for_empty_struct;
          };
      
      This silences clang warnings like:
      ./qapi-types.h:3752:1: warning: empty struct has size 0 in C, size 1 in C++ [-Wextern-c-compat]
      struct Abort
      ^
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Message-id: 1419359069-16611-1-git-send-email-peter.maydell@linaro.org
      83ecb22b