1. 30 8月, 2013 7 次提交
  2. 23 8月, 2013 1 次提交
  3. 20 8月, 2013 1 次提交
  4. 23 7月, 2013 1 次提交
  5. 19 7月, 2013 1 次提交
  6. 16 7月, 2013 1 次提交
    • A
      net: add support of mac-programming over macvtap in QEMU side · b1be4280
      Amos Kong 提交于
      Currently macvtap based macvlan device is working in promiscuous
      mode, we want to implement mac-programming over macvtap through
      Libvirt for better performance.
      
      Design:
       QEMU notifies Libvirt when rx-filter config is changed in guest,
       then Libvirt query the rx-filter information by a monitor command,
       and sync the change to macvtap device. Related rx-filter config
       of the nic contains main mac, rx-mode items and vlan table.
      
      This patch adds a QMP event to notify management of rx-filter change,
      and adds a monitor command for management to query rx-filter
      information.
      
      Test:
       If we repeatedly add/remove vlan, and change macaddr of vlan
       interfaces in guest by a loop script.
      
      Result:
       The events will flood the QMP client(management), management takes
       too much resource to process the events.
      
       Event_throttle API (set rate to 1 ms) can avoid the events to flood
       QMP client, but it could cause an unexpected delay (~1ms), guests
       guests normally expect rx-filter updates immediately.
      
       So we use a flag for each nic to avoid events flooding, the event
       is emitted once until the query command is executed. The flag
       implementation could not introduce unexpected delay.
      
      There maybe exist an uncontrollable delay if we let Libvirt do the
      real change, guests normally expect rx-filter updates immediately.
      But it's another separate issue, we can investigate it when the
      work in Libvirt side is done.
      
      Michael S. Tsirkin: tweaked to enable events on start
      Michael S. Tsirkin: fixed not to crash when no id
      Michael S. Tsirkin: fold in patch:
         "additional fixes for mac-programming feature"
      Amos Kong: always notify QMP client if mactable is changed
      Amos Kong: return NULL list if no net client supports rx-filter query
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NAmos Kong <akong@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      b1be4280
  7. 10 7月, 2013 1 次提交
  8. 28 6月, 2013 2 次提交
  9. 11 6月, 2013 1 次提交
  10. 07 6月, 2013 1 次提交
  11. 06 6月, 2013 1 次提交
  12. 01 6月, 2013 1 次提交
  13. 18 5月, 2013 1 次提交
  14. 30 4月, 2013 2 次提交
  15. 16 4月, 2013 2 次提交
  16. 12 4月, 2013 1 次提交
  17. 09 4月, 2013 1 次提交
    • P
      hw: move headers to include/ · 0d09e41a
      Paolo Bonzini 提交于
      Many of these should be cleaned up with proper qdev-/QOM-ification.
      Right now there are many catch-all headers in include/hw/ARCH depending
      on cpu.h, and this makes it necessary to compile these files per-target.
      However, fixing this does not belong in these patches.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0d09e41a
  18. 05 4月, 2013 2 次提交
    • L
      hmp: human-monitor-command: stop using the Memory chardev driver · 48c043d0
      Luiz Capitulino 提交于
      The Memory chardev driver was added because, as the Monitor's output
      buffer was static, we needed a way to accumulate the output of an
      HMP commmand when ran by human-monitor-command.
      
      However, the Monitor's output buffer is now dynamic, so it's possible
      for the human-monitor-command to use it instead of the Memory chardev
      driver.
      
      This commit does that change, but there are two important
      observations about it:
      
       1. We need a way to signal to the Monitor that it shouldn't call
          chardev functions when flushing its output. This is done
          by adding a new flag to the Monitor object called skip_flush
      	(which is set to true by qmp_human_monitor_command())
      
       2. The current code has buffered semantics: QMP clients will
          only see a command's output if it flushes its output with
      	a new-line character. This commit changes this to unbuffered,
      	which means that QMP clients will see a command's output
      	whenever the command prints anything.
      
      	I don't think this will matter in practice though, as I believe
      	all HMP commands print the new-line character anyway.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Acked-by: NGerd Hoffmann <kraxel@redhat.com>
      48c043d0
    • L
      Monitor: Make output buffer dynamic · e1f2641b
      Luiz Capitulino 提交于
      Commit f628926b changed monitor_flush()
      to retry on qemu_chr_fe_write() errors. However, the Monitor's output
      buffer can keep growing while the retry is not issued and this can
      cause the buffer to overflow.
      
      To reproduce this issue, just start qemu and type on the Monitor:
      
      (qemu) ?
      
      This will cause an assertion to trig.
      
      To fix this problem this commit makes the Monitor buffer dynamic,
      which means that it can grow as much as needed.
      Signed-off-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Acked-by: NGerd Hoffmann <kraxel@redhat.com>
      e1f2641b
  19. 28 3月, 2013 1 次提交
  20. 26 3月, 2013 1 次提交
  21. 22 3月, 2013 2 次提交
  22. 19 3月, 2013 1 次提交
  23. 17 3月, 2013 1 次提交
  24. 13 3月, 2013 1 次提交
    • S
      Support for TPM command line options · d1a0cf73
      Stefan Berger 提交于
      This patch adds support for TPM command line options.
      The command line options supported here are
      
      ./qemu-... -tpmdev passthrough,path=<path to TPM device>,id=<id>
                 -device tpm-tis,tpmdev=<id>,id=<other id>
      
      and
      
      ./qemu-... -tpmdev help
      
      where the latter works similar to -soundhw help and shows a list of
      available TPM backends (for example 'passthrough').
      
      Using the type parameter, the backend is chosen, i.e., 'passthrough' for the
      passthrough driver. The interpretation of the other parameters along
      with determining whether enough parameters were provided is pushed into
      the backend driver, which needs to implement the interface function
      'create' and return a TPMDriverOpts structure if the VM can be started or
      'NULL' if not enough or bad parameters were provided.
      
      Monitor support for 'info tpm' has been added. It for example prints the
      following:
      
      (qemu) info tpm
      TPM devices:
       tpm0: model=tpm-tis
        \ tpm0: type=passthrough,path=/dev/tpm0,cancel-path=/sys/devices/pnp0/00:09/cancel
      Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
      Reviewed-by: NCorey Bryant <coreyb@linux.vnet.ibm.com>
      Reviewed-by: NJoel Schopp <jschopp@linux.vnet.ibm.com>
      Message-id: 1361987275-26289-2-git-send-email-stefanb@linux.vnet.ibm.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      d1a0cf73
  25. 12 3月, 2013 1 次提交
  26. 01 3月, 2013 1 次提交
  27. 24 2月, 2013 1 次提交
    • P
      Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp() · 6ab7e546
      Peter Maydell 提交于
      The setjmp() function doesn't specify whether signal masks are saved and
      restored; on Linux they are not, but on BSD (including MacOSX) they are.
      We want to have consistent behaviour across platforms, so we should
      always use "don't save/restore signal mask" (this is also generally
      going to be faster). This also works around a bug in MacOSX where the
      signal-restoration on longjmp() affects the signal mask for a completely
      different thread, not just the mask for the thread which did the longjmp.
      The most visible effect of this was that ctrl-C was ignored on MacOSX
      because the CPU thread did a longjmp which resulted in its signal mask
      being applied to every thread, so that all threads had SIGINT and SIGTERM
      blocked.
      
      The POSIX-sanctioned portable way to do a jump without affecting signal
      masks is to siglongjmp() to a sigjmp_buf which was created by calling
      sigsetjmp() with a zero savemask parameter, so change all uses of
      setjmp()/longjmp() accordingly. [Technically POSIX allows sigsetjmp(buf, 0)
      to save the signal mask; however the following siglongjmp() must not
      restore the signal mask, so the pair can be effectively considered as
      "sigjmp/longjmp which don't touch the mask".]
      
      For Windows we provide a trivial sigsetjmp/siglongjmp in terms of
      setjmp/longjmp -- this is OK because no user will ever pass a non-zero
      savemask.
      
      The setjmp() uses in tests/tcg/test-i386.c and tests/tcg/linux-test.c
      are left untouched because these are self-contained singlethreaded
      test programs intended to be run under QEMU's Linux emulation, so they
      have neither the portability nor the multithreading issues to deal with.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Tested-by: NStefan Weil <sw@weilnetz.de>
      Reviewed-by: NLaszlo Ersek <lersek@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      6ab7e546
  28. 16 2月, 2013 2 次提交