1. 23 7月, 2013 1 次提交
  2. 19 7月, 2013 1 次提交
  3. 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
  4. 15 7月, 2013 1 次提交
    • S
      blockdev: add sync mode to drive-backup QMP command · b53169ea
      Stefan Hajnoczi 提交于
      The drive-backup command is similar to the drive-mirror command, except
      no guest data written after the command executes gets copied.  Add a
      sync mode argument which determines whether the entire disk is copied,
      just allocated clusters, or only clusters being written to by the guest.
      
      Currently only sync mode 'full' is supported - it copies the entire disk.
      For read-only point-in-time snapshots we may only need sync mode 'none'
      since the target can be a qcow2 file using the guest's disk as its
      backing file (no need to copy the entire disk).  Finally, sync mode
      'top' is useful if we wish to preserve the backing chain.
      
      Note that this patch just adds the sync mode argument to drive-backup.
      It does not implement sync modes 'top' or 'none'.  This patch is
      necessary so we can add a drive-backup HMP command that behaves like the
      existing drive-mirror HMP command and takes a sync mode.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      b53169ea
  5. 13 7月, 2013 1 次提交
  6. 11 7月, 2013 2 次提交
  7. 29 6月, 2013 1 次提交
  8. 28 6月, 2013 3 次提交
    • S
      blockdev: add Abort transaction · 78b18b78
      Stefan Hajnoczi 提交于
      The Abort action can be used to test QMP 'transaction' failure.  Add it
      as the last action to exercise the .abort() and .cleanup() code paths
      for all previous actions.
      Reviewed-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      78b18b78
    • S
      blockdev: add DriveBackup transaction · 3037f364
      Stefan Hajnoczi 提交于
      This patch adds a transactional version of the drive-backup QMP command.
      It allows atomic snapshots of multiple drives along with automatic
      cleanup if there is a failure to start one of the backup jobs.
      
      Note that QMP events are emitted for block job completion/cancellation
      and the block job will be listed by query-block-jobs.
      
      @device: the name of the device whose writes should be mirrored.
      
      @target: the target of the new image. If the file exists, or if it
               is a device, the existing file/device will be used as the new
               destination.  If it does not exist, a new file will be created.
      
      @format: #optional the format of the new destination, default is to
               probe if @mode is 'existing', else the format of the source
      
      @mode: #optional whether and how QEMU should create a new image, default is
             'absolute-paths'.
      
      @speed: #optional the maximum speed, in bytes per second
      
      @on-source-error: #optional the action to take on an error on the source,
                        default 'report'.  'stop' and 'enospc' can only be used
                        if the block device supports io-status (see BlockInfo).
      
      @on-target-error: #optional the action to take on an error on the target,
                        default 'report' (no limitations, since this applies to
                        a different block device than @device).
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      3037f364
    • S
      block: add drive-backup QMP command · 99a9addf
      Stefan Hajnoczi 提交于
      @drive-backup
      
      Start a point-in-time copy of a block device to a new destination.  The
      status of ongoing drive-backup operations can be checked with
      query-block-jobs where the BlockJobInfo.type field has the value 'backup'.
      The operation can be stopped before it has completed using the
      block-job-cancel command.
      
      @device: the name of the device which should be copied.
      
      @target: the target of the new image. If the file exists, or if it
               is a device, the existing file/device will be used as the new
               destination.  If it does not exist, a new file will be created.
      
      @format: #optional the format of the new destination, default is to
               probe if @mode is 'existing', else the format of the source
      
      @mode: #optional whether and how QEMU should create a new image, default is
             'absolute-paths'.
      
      @speed: #optional the maximum speed, in bytes per second
      
      @on-source-error: #optional the action to take on an error on the source,
                        default 'report'.  'stop' and 'enospc' can only be used
                        if the block device supports io-status (see BlockInfo).
      
      @on-target-error: #optional the action to take on an error on the target,
                        default 'report' (no limitations, since this applies to
                        a different block device than @device).
      
      Note that @on-source-error and @on-target-error only affect background I/O.
      If an error occurs during a guest write request, the device's rerror/werror
      actions will be used.
      
      Returns: nothing on success
               If @device is not a valid block device, DeviceNotFound
      
      Since 1.6
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      99a9addf
  9. 27 6月, 2013 2 次提交
  10. 22 6月, 2013 1 次提交
  11. 14 6月, 2013 1 次提交
  12. 07 6月, 2013 1 次提交
  13. 24 5月, 2013 1 次提交
  14. 22 5月, 2013 1 次提交
  15. 20 5月, 2013 1 次提交
  16. 07 5月, 2013 1 次提交
    • E
      target-i386: Add "feature-words" property to X86CPU · 8e8aba50
      Eduardo Habkost 提交于
      This property will be useful for libvirt, as libvirt already has logic
      based on low-level feature bits (not feature names), so it will be
      really easy to convert the current libvirt logic to something using the
      "feature-words" property.
      
      The property will have two main use cases:
       - Checking host capabilities, by checking the features of the "host"
         CPU model
       - Checking which features are enabled on each CPU model
      
      Example output:
      
        $ ./QMP/qmp --path=/tmp/m \
          qom-get --path=/machine/icc-bridge/icc/child[0] \
                  --property=feature-words
        item[0].cpuid-register: EDX
        item[0].cpuid-input-eax: 2147483658
        item[0].features: 0
        item[1].cpuid-register: EAX
        item[1].cpuid-input-eax: 1073741825
        item[1].features: 0
        item[2].cpuid-register: EDX
        item[2].cpuid-input-eax: 3221225473
        item[2].features: 0
        item[3].cpuid-register: ECX
        item[3].cpuid-input-eax: 2147483649
        item[3].features: 101
        item[4].cpuid-register: EDX
        item[4].cpuid-input-eax: 2147483649
        item[4].features: 563346425
        item[5].cpuid-register: EBX
        item[5].cpuid-input-eax: 7
        item[5].features: 0
        item[5].cpuid-input-ecx: 0
        item[6].cpuid-register: ECX
        item[6].cpuid-input-eax: 1
        item[6].features: 2155880449
        item[7].cpuid-register: EDX
        item[7].cpuid-input-eax: 1
        item[7].features: 126614521
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      8e8aba50
  17. 01 5月, 2013 1 次提交
  18. 30 4月, 2013 1 次提交
  19. 25 4月, 2013 1 次提交
  20. 12 4月, 2013 3 次提交
  21. 05 4月, 2013 1 次提交
  22. 04 4月, 2013 1 次提交
  23. 26 3月, 2013 3 次提交
  24. 23 3月, 2013 1 次提交
  25. 17 3月, 2013 1 次提交
  26. 13 3月, 2013 7 次提交