[Spice-commits] Changes to 'spice.v13'

Gerd Hoffmann kraxel at kemper.freedesktop.org
Thu Jul 8 04:26:33 PDT 2010


New branch 'spice.v13' available with the following commits:
commit e06cd8064b4d3754a6977cff1c5a65eb5fde162c
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Fri Apr 23 13:28:21 2010 +0200

    spice: live migration (wip).
    
    Handle spice client migration, i.e. inform a spice client connected
    about the new host and connection parameters, so it can move over the
    connection automatically.

commit 518eda9f55ba9c1affece19d4d807304f4a1147b
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Mon Jun 14 09:53:48 2010 +0200

    [ElectricFence] use memalign instead of posix_memalign

commit ea05d76e1c2cd1c88f7bca4cacb0ccdd63da3edf
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Fri Mar 12 16:26:18 2010 +0100

    spice: add pci vdi port backend (obsolete).
    
    This is *not* intended to be merged upstream.  It is just here
    because the virtio-serial windows guest drivers are not ready,
    so you can't go with the new spice-vmc yet.

commit c7f9834e769d1f9eb0e63b4c6c01a76714375498
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Tue Apr 20 13:33:54 2010 +0200

    spice: add virtio-serial based vdi port backend.
    
    Adds the spicevmc device.  This is a communication channel between the
    spice client and the guest.  It is used to send display information and
    mouse events from the spice clients to the guest.

commit fb4ccc3aa69906410312793f7d977ec2d2299e75
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Tue Apr 13 10:34:46 2010 +0200

    spice: add audio
    
    Add support for the spice audio interface.
    
    The driver is first in the driver list, but can_be_default is set only
    in case spice is active.  So if you are using spice the spice audio
    driver is the default one, otherwise whatever comes first after spice in
    the list.  Overriding the default using QEMU_AUDIO_DRV works in any
    case.

commit a57bd2e88bc96f88552f7e5259a2d8871c8e2d30
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Tue Apr 27 11:50:11 2010 +0200

    spice: add qxl device
    
    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".

commit c0aae248ac71fbccab42eb42ef3fd16436360561
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu Mar 11 11:13:32 2010 -0300

    spice: tls support
    
    Add options to the -spice command line switch to setup tls:
    
    tls-port
    	listening port
    
    x509-dir
    	x509 file directory.  Expects same filenames as
    	-vnc $display,x509=$dir
    
    x509-key-file
    x509-key-password
    x509-cert-file
    x509-cacert-file
    x509-dh-key-file
    	x509 files can also be set individually.
    
    tls-ciphers
    	which ciphers to use.

commit feda69f2bc2ba8788987e7729d0c9ebe9f8b2d50
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Tue May 11 22:28:44 2010 +0200

    all vga: refuse hotplugging.
    
    Try to pci hotplug a vga card, watch qemu die with hw_error().
    This patch fixes it.

commit 09b19839ec3bbb8725fae66b008adcf3edaa5252
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu May 6 11:14:11 2010 +0200

    switch vmware_vga to pci vgabios

commit 22df8377d9110e461607d86ae3986694583d8a58
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu May 6 11:13:11 2010 +0200

    switch stdvga to pci vgabios

commit be23ea5d692b8740bd1a941b7d1932ccb0a3b337
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Wed Mar 24 11:16:54 2010 +0100

    vgabios update to 0.6c + pcibios patches.

commit 62c135f3f11e7659c1ccbc660ba7fc35c654e57a
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Tue Apr 13 09:05:03 2010 +0200

    spice: add tablet support
    
    Add support for the spice tablet interface.  The tablet interface will
    be registered (and then used by the spice client) as soon as a absolute
    pointing device is available and used by the guest, i.e. you'll have to
    configure your guest with '-usbdevice tablet'.

commit 5c751545d65270b70dbfc43a22bfd5d428b2b3fe
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Wed Mar 24 15:47:18 2010 +0100

    spice: simple display
    
    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.

commit 972b0bc49c06dee7ee0c2c21165f40c16ae71b8e
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu Mar 11 11:13:29 2010 -0300

    spice: add mouse
    
    Open mouse channel.  Now you can move the guests mouse pointer.
    No tablet / absolute positioning (yet) though.

commit 0d40f8174e0112f8943ada37a368079085c8d4ed
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu Mar 11 11:13:28 2010 -0300

    spice: add keyboard
    
    Open keyboard channel.  Now you can type into the spice client and the
    keyboard events are sent to your guest.  You'll need some other display
    like vnc to actually see the guest responding to them though.

commit 56cbea381a8f97e01519cc20e458c1b6c104d6d8
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Thu Mar 11 11:13:27 2010 -0300

    spice: core bits
    
    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.

commit 9a7815a7dec175e45ffbff406899ba5f57085d64
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Wed Mar 24 10:26:51 2010 +0100

    add spice into the configure file

commit 0800c4471cd12f6a0d2f8418538690bc642c77ca
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Fri Apr 23 13:44:10 2010 +0200

    configure: add logging
    
    Write compile commands and messages to config.log.
    Useful for debugging configure.

commit 32f258855445f0a5b88f3dc2b4f238972bc996d9
Author: Gerd Hoffmann <kraxel at redhat.com>
Date:   Mon Jun 14 09:54:27 2010 +0200

    add pflib: PixelFormat conversion library.

commit 09d7ae9000fe27d1861cb0348cbf71563ded6148
Author: Blue Swirl <blauwirbel at gmail.com>
Date:   Wed Jul 7 19:37:53 2010 +0000

    Fix warning about uninitialized variable
    
    With gcc 4.2.1-sjlj (mingw32-2) I get this warning:
    /src/qemu/exec.c: In function 'qemu_ram_alloc':
    /src/qemu/exec.c:2777: warning: 'offset' may be used uninitialized in this function
    
    Fix by initializing the variable.
    
    Signed-off-by: Blue Swirl <blauwirbel at gmail.com>

commit 6defcc3784c21a846c520ef15b5dbe62f0a95075
Author: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
Date:   Wed Jul 7 15:25:30 2010 +0900

    sheepdog: fix compile error on systems without TCP_CORK
    
    WIN32 is not only the system which doesn't have TCP_CORK (e.g. OS X).
    
    Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
    Signed-off-by: Blue Swirl <blauwirbel at gmail.com>

commit 5efb397f877fc3002c8bc764f4656f4761bd965d
Merge: fb787f81e749fde8c74548f9db1472eb321b9a0c 33b1db1c8888b77e06c720ebef0482ed598eb384
Author: Anthony Liguori <aliguori at us.ibm.com>
Date:   Tue Jul 6 10:48:01 2010 -0500

    Merge remote branch 'kwolf/for-anthony' into staging

commit fb787f81e749fde8c74548f9db1472eb321b9a0c
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jul 2 11:13:29 2010 -0600

    ramblocks: No more being lazy about duplicate names
    
    Now that we have a working qemu_ram_free() and the primary runtime
    user of it has been updated, don't be lenient about duplicate id strings.
    We also shouldn't need to create them ondemand at the target.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 230741dcc7c15573efe41ee88b7533e0c3c76f66
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:10:19 2010 -0600

    pci: Free the space allocated for the option rom on removal
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 04b16653720cb3db353461e088612f8a24ff360b
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jul 2 11:13:17 2010 -0600

    qemu_ram_free: Implement it
    
    Now that we can support a ram_addr_t space with holes, we can implement
    qemu_ram_free().
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit a55bbe31873a5014fa6457c936858f11e2d22b32
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:10:05 2010 -0600

    savevm: Create a new continue flag to avoid resending block name
    
    Allows us to compress the protocol a bit by setting a flag on the
    offset which indicates we're still working within the same block
    as last time.  That way we can avoid sending the block name for
    every page.  Suggested by Anthony Liguori.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit e44359c35efbcd5ba9abf94bdd544a744046925a
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:57 2010 -0600

    savevm: Use RAM blocks for basis of migration
    
    We don't want to assume a contiguous address space, so migrate based
    on RAM blocks instead of a fixed linear address map.  This will allow
    us to have holes in the ram_addr_t namespace, so we can implement
    qemu_ram_free().
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 97ab12d46622d239b439e77d3c193cd775a37984
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:50 2010 -0600

    savevm: Migrate RAM based on name/offset
    
    Synchronize RAM blocks with the target and migrate using name/offset
    pairs.  This ensures both source and target have the same view of
    RAM and that we get the right bits into the right slot.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit cc9e98cb8f20d5ef87290591a8e4324c482f3cdd
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:43 2010 -0600

    ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path
    
    With these two pieces in place, we can start naming ramblocks.  When
    the device is present and it lives on a bus that provides a device
    path, we concatenate the path and the provided name.  Otherwise we
    just use name.  The resulting id string must be unique.  For now we
    assume an allocation for the same name and size is a device that has
    been removed and reinserted and return the same block.  This will go
    away once qemu_ram_free() is implemented.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 1724f04985367b15751f11f4a9558f8736b2ab59
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:35 2010 -0600

    qemu_ram_alloc: Add DeviceState and name parameters
    
    These will be used to generate unique id strings for ramblocks.  The name
    field is required, the device pointer is optional as most callers don't
    have a device.  When there's no device or the device isn't a child of
    a bus implementing BusInfo.get_dev_path, the name should be unique for
    the platform.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 01657c867d21bbabb1af22c6fe62ff80a2970446
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:28 2010 -0600

    virtio-net: Incorporate a DeviceState pointer and let savevm track instances
    
    Stuff a pointer to the DeviceState into the VirtIONet structure so that
    we can easily remove the vmstate entry later.  Also, let vmstate track
    the instance number (it should always be zero internally since the
    device path should now be unique).
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 5fce2b3e46b697230996568e1fed39d02a6bedb2
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:21 2010 -0600

    eepro100: Add a dev field to eeprom new/free functions
    
    This allows us to create a more meaningful savevm string.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 7685ee6abcb939104801f84b3fe9645412528088
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:14 2010 -0600

    savevm: Make use of DeviceState
    
    For callers that pass a device we can traverse up the qdev tree and
    make use of the BusInfo.get_dev_path information for creating unique
    savevm id strings.  This avoids needing to rely on the instance number,
    which can cause problems with device initialization order and hotplug.
    
    For compatibility, we also store away the old id string and instance
    so we can accept migrations from VMs as we add new get_dev_path
    implementations.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 0be71e324f774a77243f1a1487f468232d69542b
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:09:07 2010 -0600

    savevm: Add DeviceState param
    
    When available, we'd like to be able to access the DeviceState
    when registering a savevm.  For buses with a get_dev_path()
    function, this will allow us to create more unique savevm
    id strings.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 4f43c1ff3b8ce99de80db7c51423e5ba8b143802
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:08:59 2010 -0600

    pci: Implement BusInfo.get_dev_path()
    
    This works great for PCI since a <segment>:<bus>:<dev>.<fn> uniquely
    describes a global address.  No need to traverse up the qdev tree.
    PCI segment support is a placeholder for compatibility once we
    support multiple segments.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 6772b9364a9ef8b44a7c4deef0544df95bf88741
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:08:52 2010 -0600

    qdev: Add a get_dev_path() function to BusInfo
    
    This function is meant to provide a stable device path for buses
    which are able to implement it.  If a bus has a globally unique
    addresses scheme, one address level may be sufficient to provide
    a path.  Other buses may need to recursively traverse up the
    qdev tree.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 44ae28f3152138e71ccad66c201d730b93374bc2
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:08:45 2010 -0600

    pc: Allocate all ram in a single qemu_ram_alloc()
    
    This will benefit us when we migrate based on ramblock name since
    we won't be bouncing between separate blocks.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit d17b5288d91c935cc8795fa0620721da0a3865e1
Author: Alex Williamson <alex.williamson at redhat.com>
Date:   Fri Jun 25 11:08:38 2010 -0600

    Remove uses of ram.last_offset (aka last_ram_offset)
    
    We currently need this either to allocate the next ram_addr_t for a
    new block, or for total memory to be migrated.  Both of which we can
    calculate without need of this to keep us in a contiguous address space.
    
    Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit f292787d9addffd5f0a2df9516c158bfb5792b61
Author: Gleb Natapov <gleb at redhat.com>
Date:   Mon Jul 5 11:36:34 2010 +0300

    make rtc alatm work
    
    Convert alarm time from BCD if needed before comparing with current
    time.
    
    Signed-off-by: Gleb Natapov <gleb at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 680a34eeb8f2d455121c67697fca146440e61612
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Tue Jul 6 10:58:03 2010 +0200

    scsi: Fix SCSI bus reset
    
    When the controller raises the SCSI reset line, we have to perform the
    requested reset on all disks attached to the controller's bus. Moreover,
    reset is edge triggered, so avoid repeating it if the line was already
    high.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 262ea18e890d51b8f86157f8e4aeb162b9ef2ad8
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Tue Jul 6 10:49:57 2010 +0200

    Fix io-thread build breakage of a88790a14f
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 33b1db1c8888b77e06c720ebef0482ed598eb384
Author: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
Date:   Mon Jun 21 05:01:00 2010 +0900

    block: add sheepdog driver for distributed storage support
    
    Sheepdog is a distributed storage system for QEMU. It provides highly
    available block level storage volumes to VMs like Amazon EBS.  This
    patch adds a qemu block driver for Sheepdog.
    
    Sheepdog features are:
    - No node in the cluster is special (no metadata node, no control
      node, etc)
    - Linear scalability in performance and capacity
    - No single point of failure
    - Autonomous management (zero configuration)
    - Useful volume management support such as snapshot and cloning
    - Thin provisioning
    - Autonomous load balancing
    
    The more details are available at the project site:
        http://www.osrg.net/sheepdog/
    
    Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit dce9e92834cc4f962e547cae46b73ca559d05b0c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 21:25:17 2010 +0200

    ide: Reject invalid CHS geometry
    
    drive_init() doesn't permit invalid CHS for if=ide, but that's
    worthless: we get it via if=none and -device.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 7aa9c811ca0761918a0252d0f923a80224953fa6
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 19:10:36 2010 +0200

    ide: Reject readonly drives unless CD-ROM
    
    drive_init() doesn't permit option readonly for if=ide, but that's
    worthless: we get it via if=none and -device.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit c4d74df726cb3791d9f1661b58067df5608b627e
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 19:07:51 2010 +0200

    ide: Make ide_init_drive() return success
    
    It still always succeeds.  The next commits will add failures.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit cd8722bb22ed41586ef489b3521173f1a80c9357
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri May 28 13:32:45 2010 +0200

    ide: Replace IDEState members is_cdrom, is_cf by drive_kind
    
    The two aren't independent variables.  Make that obvious.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit f597627ff5eb683501d65cf169f467bb4e894626
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 08:36:53 2010 +0200

    ide: Improve error messages
    
    Use error_report(), because it points to the error location.
    
    Reword "tried to assign twice" messages to make it clear that we're
    complaining about the unit property.
    
    Report invalid unit property instead of failing silently.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 42e766a24b53ff5042576449dd526f734ca8f659
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu May 27 21:08:18 2010 +0200

    scsi: Error locations for -drive if=scsi device initialization
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 94ac726842d37b50c7742ecb643bebe2e5d72cd2
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu May 27 21:06:04 2010 +0200

    error: New qemu_opts_loc_restore()
    
    Needed for decent error locations when complaining about options
    outside of qemu_opts_foreach().  That one sets the location
    already.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 620f862e1c3d0862923997c8d6632c5916da997c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu May 27 20:02:28 2010 +0200

    scsi: Reject unimplemented error actions
    
    drive_init() doesn't permit rerror for if=scsi, but that's worthless:
    we get it via if=none and -device.
    
    Moreover, scsi-generic doesn't support werror.  Since drive_init()
    doesn't catch that, option werror was silently ignored even with
    if=scsi.
    
    Wart: unlike drive_init(), we don't reject the default action when
    it's explicitly specified.  That's because we can't distinguish "no
    rerror option" from "rerror=report", or "no werror" from
    "rerror=enospc".  Left for another day.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit bd6c9a617d969752c9d3663f6ad29ae6d6d6c402
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu May 27 21:23:08 2010 +0200

    qdev: Don't hw_error() in qdev_init_nofail()
    
    Some of the failures are internal errors, and hw_error() is okay then.
    But the common way to fail is bad user input, e.g. -global
    isa-fdc.driveA=foo where drive foo has an unsupported rerror value.
    
    exit(1) instead.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit b47b35250fbfa062aedf6ab6e5faab84c4a76f4f
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu May 27 20:06:12 2010 +0200

    fdc: Reject unimplemented error actions
    
    drive_init() doesn't permit them for if=floppy, but that's worthless:
    we get them via if=none and -global.
    
    This can make device initialization fail.  Since all callers of
    fdctrl_init_isa() ignore its value, change it to die instead of
    returning failure.  Without this, some callers would ignore the
    failure, and others would crash.
    
    Wart: unlike drive_init(), we don't reject the default action when
    it's explicitly specified.  That's because we can't distinguish "no
    rerror option" from "rerror=report", or "no werror" from
    "rerror=enospc".  Left for another day.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 65d21bc73bda6515fd9b4ff5b2e90454f7a0b419
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 10:25:20 2010 +0200

    raw-posix: Fix test for host CD-ROM
    
    raw_pread_aligned() retries up to two times if the block device backs
    a virtual CD-ROM (a drive with media=cdrom and if=ide, scsi, xen or
    none).  This makes no sense.  Whether retrying reads can correct read
    errors can only depend on what we're reading, not on how the result
    gets used.  We need to check what whether we're reading from a
    physical CD-ROM or floppy here.
    
    I doubt retrying is useful even then.  Left for another day.
    
    Impact:
    
    * Virtual CD-ROM backed by host_cdrom behaves the same.
    
    * Virtual CD-ROM backed by file or host_device no longer retries.
    
    * A drive backed by host_cdrom now retries even if it's not a virtual
      CD-ROM.
    
    * Any drive backed by host_floppy now retries.
    
    While there, clean up gratuitous use of goto.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit d246673dcb9911218ff555bcdf28b250e38fa46c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Mon Jun 28 10:45:02 2010 +0200

    block migration: Fix test for read-only drive
    
    init_blk_migration_it() skips drives with type hint BDRV_TYPE_CDROM.
    The intention is to skip read-only drives.  However, BDRV_TYPE_CDROM
    is only a hint.  It is currently sufficent for read-only.  But it's
    not necessary, and it may not remain sufficient.
    
    Use bdrv_is_read_only() instead.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 528f7663473e146fd1b435d73ca21b219451877c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 15:26:48 2010 +0200

    blockdev: Clean up how readonly persists across virtual media change
    
    Since commit cb4e5f8e, monitor command change makes the new media
    readonly iff the type hint is BDRV_TYPE_CDROM, i.e. the drive was
    created with media=cdrom.  The intention is to avoid changing a block
    device's read-only-ness.  However, BDRV_TYPE_CDROM is only a hint.  It
    is currently sufficent for read-only.  But it's not necessary, and it
    may not remain sufficient.
    
    Use bdrv_is_read_only() instead.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 2930b313dd602d67a568815b0b031b824916cec9
Author: john cooper <john.cooper at redhat.com>
Date:   Fri Jul 2 13:44:25 2010 -0400

    Add virtio disk identification support
    
    This patch adds the final missing bits for support of
    passing a serial/id string to a virtio-blk guest driver.
    
    The guest-side component already exists in the virtio
    driver, and has recently been reworked by Ryan to export
    a /sys interface for retrieval of the id from guest userland.
    
    Signed-off-by: john cooper <john.cooper at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 9ac228e02cf16202547e7025ef300369e0db7781
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Tue Jun 29 12:37:54 2010 +0200

    qcow2/vdi: Change check to distinguish error cases
    
    This distinguishes between harmless leaks and real corruption. Hopefully users
    better understand what qemu-img check wants to tell them.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit e076f3383b08a563d76c8beb9a716788a3987df9
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Tue Jun 29 11:43:13 2010 +0200

    qemu-img check: Distinguish different kinds of errors
    
    People think that their images are corrupted when in fact there are just some
    leaked clusters. Differentiating several error cases should make the messages
    more comprehensible.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 69e8b16255898524930fc2eef59aa5dc4cf3b01f
Author: Jes Sorensen <Jes.Sorensen at redhat.com>
Date:   Tue Jul 6 10:50:27 2010 +0200

    Include sys/mman.h before qemu-options.h
    
    The result of parsing qemu-options.def depends on whehter or not
    MAP_POPULATE is defined, so make sure to include sys/mman.h before
    including qemu-options.h.
    
    Reported by Frank Arnold.
    
    Signed-off-by: Jes Sorensen <Jes.Sorensen at redhat.com>
    Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>

commit 734003e6153b3552b9406ef598a1e67aac4a899e
Merge: 02d0ba1420803562109185f47be6f7430bfdefae de189a1b4a471d37a2909e97646654fc9751b52f
Author: Anthony Liguori <aliguori at us.ibm.com>
Date:   Tue Jul 6 08:31:43 2010 -0500

    Merge remote branch 'kwolf/for-anthony' into staging

commit 02d0ba1420803562109185f47be6f7430bfdefae
Merge: 9f5a1fae7ee1a7c66462e5b8e9d21552d4dc5027 a6c4d36425871fafc55ce3937bebd05e86f5ea81
Author: Anthony Liguori <aliguori at us.ibm.com>
Date:   Tue Jul 6 08:31:17 2010 -0500

    Merge remote branch 'qmp/for-anthony' into staging

commit de189a1b4a471d37a2909e97646654fc9751b52f
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Thu Jul 1 16:08:51 2010 +0200

    block: Handle multiwrite errors only when all requests have completed
    
    Don't try to be clever by freeing all temporary data and calling all callbacks
    when the return value (an error) is certain. Doing so has at least two
    important problems:
    
    * The temporary data that is freed (qiov, possibly zero buffer) is still used
      by the requests that have not yet completed.
    * Calling the callbacks for all requests in the multiwrite means for the caller
      that it may free buffers etc. which are still in use.
    
    Just remember the error value and do the cleanup when all requests have
    completed.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 453f9a1652629e5805995b165be2e634c8487139
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Fri Jul 2 14:01:21 2010 +0200

    block: Fix early failure in multiwrite
    
    bdrv_aio_writev may call the callback immediately (and it will commonly do so
    in error cases). Current code doesn't consider this. For details see the
    comment added by this patch.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit c2abccecd93d5977460fdfdab19461ccfa09ae21
Author: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
Date:   Mon Jun 21 04:26:35 2010 +0900

    qemu-img: avoid calling exit(1) to release resources properly
    
    This patch removes exit(1) from error(), and properly releases
    resources such as a block driver and an allocated memory.
    
    For testing the Sheepdog block driver with qemu-iotests, it is
    necessary to call bdrv_delete() before the program exits.  Because the
    driver releases the lock of VM images in the close handler.
    
    Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit c0897e0cb94e83ec1098867b81870e4f51f225b9
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu Jun 24 19:58:20 2010 +0200

    pc: Fix CMOS info for drives defined with -device
    
    Drives defined with -drive if=ide get get created along with the IDE
    controller, inside machine->init().  That's before cmos_init().
    Drives defined with -device get created during generic device init.
    That's after cmos_init().  Because of that, CMOS has no information on
    them (type, geometry, translation).  Older versions of Windows such as
    XP reportedly choke on that.
    
    Split off the part of CMOS initialization that needs to know about
    -device devices, and turn it into a reset handler, so it runs after
    device creation.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 57c888664b5eb7edbbce4be98cb1406aa0d85c2b
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu Jun 24 19:59:29 2010 +0200

    ide: Make PIIX and ISA IDE init functions return the qdev
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 7d0d69509a966a5328e4fed7d0a942112d431c35
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 13:42:14 2010 +0200

    block: Fix virtual media change for if=none
    
    BlockDriverState member removable controls whether virtual media
    change (monitor commands change, eject) is allowed.  It is set when
    the "type hint" is BDRV_TYPE_CDROM or BDRV_TYPE_FLOPPY.
    
    The type hint is only set by drive_init().  It sets BDRV_TYPE_FLOPPY
    for if=floppy.  It sets BDRV_TYPE_CDROM for media=cdrom and if=ide,
    scsi, xen, or none.
    
    if=ide and if=scsi work, because the type hint makes it a CD-ROM.
    if=xen likewise, I think.
    
    For the same reason, if=none works when it's used by ide-drive or
    scsi-disk.  For other guest devices, there are problems:
    
    * fdc: you can't change virtual media
    
        $ qemu [...] -drive if=none,id=foo,... -global isa-fdc.driveA=foo
        QEMU 0.12.50 monitor - type 'help' for more information
        (qemu) eject foo
        Device 'foo' is not removable
    
      unless you add media=cdrom, but that makes it readonly.
    
    * virtio: if you add media=cdrom, you can change virtual media.  If
      you eject, the guest gets I/O errors.  If you change, the guest sees
      the drive's contents suddenly change.
    
    * scsi-generic: if you add media=cdrom, you can change virtual media.
      I didn't test what that does to the guest or the physical device,
      but it can't be pretty.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 3ac906f771c42363dc05e0a393defd21a57d3790
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu Jul 1 09:30:38 2010 +0200

    block: Clean up bdrv_snapshots()
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit f9092b108f7b35e463e58bd3dd348ff002ba9e63
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 10:33:39 2010 +0200

    savevm: Survive hot-unplug of snapshot device
    
    savevm.c keeps a pointer to the snapshot block device.  If you manage
    to get that device deleted, the pointer dangles, and the next snapshot
    operation will crash & burn.  Unplugging a guest device that uses it
    does the trick:
    
        $ MALLOC_PERTURB_=234 qemu-system-x86_64 [...]
        QEMU 0.12.50 monitor - type 'help' for more information
        (qemu) info snapshots
        No available block device supports snapshots
        (qemu) drive_add auto if=none,file=tmp.qcow2
        OK
        (qemu) device_add usb-storage,id=foo,drive=none1
        (qemu) info snapshots
        Snapshot devices: none1
        Snapshot list (from none1):
        ID        TAG                 VM SIZE                DATE       VM CLOCK
        (qemu) device_del foo
        (qemu) info snapshots
        Snapshot devices:
        Segmentation fault (core dumped)
    
    Move management of that pointer to block.c, and zap it when the device
    it points becomes unusable.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 8db520cee89bb84f21d107cea2d786894901bc54
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Wed Jun 30 17:43:40 2010 +0200

    blkdebug: Initialize state as 1
    
    state = 0 in rules means that the rule is valid for any state. Therefore it's
    impossible to have a rule that works only in the initial state. This changes
    the initial state from 0 to 1 to make this possible.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 698f0d52cde708557801de3c583cafc4a0497a14
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Wed Jun 30 17:42:23 2010 +0200

    blkdebug: Free QemuOpts after having read the config
    
    Forgetting to free them means that the next instance inherits all rules and
    gets its own rules only additionally.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 327cdad4163dcf3928472e0cdbf6b6b97c88670b
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Wed Jun 30 17:40:42 2010 +0200

    blkdebug: Fix set_state_opts definition
    
    The list head was initialized to point to the wrong list, so all actions ended
    up being handled as inject-error even if they were set-state in fact.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit bb67ab0290b9a83d4d444e2e9a0311d3b9b54385
Author: Markus Armbruster <armbru at redhat.com>
Date:   Tue Jun 1 10:47:34 2010 +0200

    qemu-option: New qemu_opts_reset()
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 18846dee1a795b4345ac0bd10b70a3a46fd14287
Author: Markus Armbruster <armbru at redhat.com>
Date:   Tue Jun 29 16:58:30 2010 +0200

    block: Catch attempt to attach multiple devices to a blockdev
    
    For instance, -device scsi-disk,drive=foo -device scsi-disk,drive=foo
    happily creates two SCSI disks connected to the same block device.
    It's all downhill from there.
    
    Device usb-storage deliberately attaches twice to the same blockdev,
    which fails with the fix in place.  Detach before the second attach
    there.
    
    Also catch attempt to delete while a guest device model is attached.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit dfb0acd88782573e075251ef323e23a4bffdbf93
Author: Markus Armbruster <armbru at redhat.com>
Date:   Wed May 5 18:46:17 2010 +0200

    blockdev: drive_get_by_id() is no longer used, remove
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit f8b6cc0070aab8b75bd082582c829be1353f395f
Author: Markus Armbruster <armbru at redhat.com>
Date:   Wed May 5 16:36:52 2010 +0200

    qdev: Decouple qdev_prop_drive from DriveInfo
    
    Make the property point to BlockDriverState, cutting out the DriveInfo
    middleman.  This prepares the ground for block devices that don't have
    a DriveInfo.
    
    Currently all user-defined ones have a DriveInfo, because the only way
    to define one is -drive & friends (they go through drive_init()).
    DriveInfo is closely tied to -drive, and like -drive, it mixes
    information about host and guest part of the block device.  I'm
    working towards a new way to define block devices, with clean
    host/guest separation, and I need to get DriveInfo out of the way for
    that.
    
    Fortunately, the device models are perfectly happy with
    BlockDriverState, except for two places: ide_drive_initfn() and
    scsi_disk_initfn() need to check the DriveInfo for a serial number set
    with legacy -drive serial=...  Use drive_get_by_blockdev() there.
    
    Device model code should now use DriveInfo only when explicitly
    dealing with drives defined the old way, i.e. without -device.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Reviewed-by: Christoph Hellwig <hch at lst.de>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 14bafc540774baf316e9ce2474e97d5df6cb8e6c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 08:09:10 2010 +0200

    blockdev: Clean up automatic drive deletion
    
    We automatically delete blockdev host parts on unplug of the guest
    device.  Too much magic, but we can't change that now.
    
    The delete happens early in the guest device teardown, before the
    connection to the host part is severed.  Thus, the guest part's
    pointer to the host part dangles for a brief time.  No actual harm
    comes from this, but we'll catch such dangling pointers a few commits
    down the road.  Clean up the dangling pointers by delaying the
    automatic deletion until the guest part's pointer is gone.
    
    Device usb-storage deliberately makes two qdev properties refer to the
    same drive, because it automatically creates a second device.  Again,
    too much magic we can't change now.  Multiple references worked okay
    before, but now free_drive() dies for the second one.  Zap the extra
    reference.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit e4700e595ea0b24d5291dbd68deba26d7a955703
Author: Markus Armbruster <armbru at redhat.com>
Date:   Thu Jun 24 17:25:32 2010 +0200

    blockdev: New drive_get_by_blockdev()
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 15c7733bb231090e5ebd6d10060dccdb98bb4941
Author: Ryan Harper <ryanh at us.ibm.com>
Date:   Mon Jun 28 09:38:33 2010 -0500

    Don't reset bs->is_temporary in bdrv_open_common
    
    To fix https://bugs.launchpad.net/qemu/+bug/597402 where qemu fails to
    call unlink() on temporary snapshots due to bs->is_temporary getting clobbered
    in bdrv_open_common() after being set in bdrv_open() which calls the former.
    
    We don't need to initialize bs->is_temporary in bdrv_open_common().
    
    Signed-off-by: Ryan Harper <ryanh at us.ibm.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 0c6f9c17f301f713b88daba6baadf9d7474ece72
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 18:53:23 2010 +0200

    blockdev: Remove drive_get_serial()
    
    Unused since commit 6ced55a5.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit fa12fbbecefc6f9bf20374daa275a598096d113c
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 18:53:22 2010 +0200

    ide: Make it explicit that ide_create_drive() can't fail
    
    All callers of ide_create_drive() ignore its value.  Currently
    harmless, because it fails only when qdev_init() fails, which fails
    only when ide_drive_initfn() fails, which never fails.
    
    Brittle.  Change it to die instead of silently ignoring failure.
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit fa66b909f382619da15f8c7e323145adfa94fdac
Author: Markus Armbruster <armbru at redhat.com>
Date:   Fri Jun 25 18:53:21 2010 +0200

    scsi: scsi_bus_legacy_handle_cmdline() can fail, fix callers
    
    None of its callers checks for failure.  scsi_hot_add() can crash
    because of that:
    
    (qemu) drive_add 4 if=scsi,format=host_device,file=/dev/sg1
    scsi-generic: scsi generic interface too old
    Segmentation fault (core dumped)
    
    Fix all callers, not just scsi_hot_add().
    
    Signed-off-by: Markus Armbruster <armbru at redhat.com>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 39508e7adb0de3ef69caa1b494d823d8ac11d3f3
Author: Christoph Hellwig <hch at lst.de>
Date:   Wed Jun 23 12:25:17 2010 +0200

    block: allow filenames with colons again for host devices
    
    Before the raw/file split we used to allow filenames with colons for host
    device only.  While this was more by accident than by design people rely
    on it, so we need to bring it back.
    
    So move the host device probing to be before the protocol detection
    again.
    
    Signed-off-by: Christoph Hellwig <hch at lst.de>
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit 19dbcbf7cc1892f5130b4edd5a4bb4ca800ef7d8
Author: Kevin Wolf <kwolf at redhat.com>
Date:   Tue Jun 22 16:59:46 2010 +0200

    qcow2: Fix error handling during metadata preallocation
    
    People were wondering why qemu-img check failed after they tried to preallocate
    a large qcow2 file and ran out of disk space.
    
    Signed-off-by: Kevin Wolf <kwolf at redhat.com>

commit a6c4d36425871fafc55ce3937bebd05e86f5ea81
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Mon Jun 28 18:27:47 2010 +0200

    monitor: Allow to exclude commands from QMP
    
    Ported commands that are marked 'user_only' will not be considered for
    QMP monitor sessions. This allows to implement new commands that do not
    (yet) provide a sufficiently stable interface for QMP use.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit e4940c603a209c82c2ea80cfeb244c5dec8e3118
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Thu Jun 24 17:58:20 2010 -0300

    QMP: handle_qmp_command(): Small cleanup
    
    Drop a unneeded label and QDECREF() call.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 0bbab46db67bd5a059aadabc498be3c371551506
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon May 31 17:32:50 2010 -0300

    QMP: Drop old input object checking
    
    Previous commit added qmp_check_input_obj(), it does all the
    checking we need.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit c917c8f3d07816f018a96121422de3b53f525fe4
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon May 31 17:28:01 2010 -0300

    QMP: Introduce qmp_check_input_obj()
    
    This is similar to qmp_check_client_args(), but it checks if
    the input object follows the specification (QMP/qmp-spec.txt
    section 2.3).
    
    As we're limited to three keys, the work here is quite simple:
    we iterate over the input object, checking each time if the
    current argument complies to the specification.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 60d76d7b073f6f25c9dbe4d68df7d012f73db27f
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Tue Jun 1 16:15:23 2010 -0300

    QError: Introduce QERR_QMP_EXTRA_MEMBER
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit f6b4fc8b23b1154577c72937b70e565716bb0a60
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Fri May 28 17:24:49 2010 -0300

    QMP: Drop old client argument checker
    
    Previous two commits added qmp_check_client_args(), which
    fully replaces this code and is way better.
    
    It's important to note that the new checker doesn't support
    the '/' arg type. As we don't have any of those handlers
    converted to QMP, this is just dead code.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 4af9193ae954f87225e1ba5d527f6a13e37b1e0e
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Tue Jun 22 11:44:05 2010 -0300

    QMP: New argument checker (second part)
    
    This commit introduces the second (and last) part of QMP's new
    argument checker.
    
    The job is done by check_client_args_type(), it iterates over
    the client's argument qdict and for for each argument it checks
    if it exists and if its type is valid.
    
    It's important to observe the following changes from the existing
    argument checker:
    
      - If the handler accepts an O-type argument, unknown arguments
        are passed down to it. It's up to O-type handlers to validate
        their arguments
    
      - Boolean types (eg. 'b' and '-') don't accept integers anymore,
        only json-bool
    
      - Argument types '/' and '.' are currently unsupported under QMP,
        thus they're not handled
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 2dbc8db0ba9e34b168c3b79a6c5435f770d3796e
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Wed May 26 16:13:09 2010 -0300

    QMP: New argument checker (first part)
    
    Current QMP's argument checker is more complex than it should be
    and has (at least) one serious bug: it ignores unknown arguments.
    
    To solve both problems we introduce a new argument checker. It's
    added on top of the existing one, so that there are no regressions
    during the transition.
    
    This commit introduces the first part of the new checker, which
    is run by qmp_check_client_args() and does the following:
    
      1. Check if all mandatory arguments were provided
      2. Set flags for argument validation
    
    In order to do that, we transform the args_type string (from
    qemu-montor.hx) into a qdict and iterate over it.
    
    Next commit adds the new checker's second part: type checking and
    invalid argument detection.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit eb159d13ee36a9ef2a83e3ab66f1b2ae1cc2d9f1
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Fri May 28 15:25:24 2010 -0300

    Monitor: handle optional '-' arg as a bool
    
    Historically, user monitor arguments beginning with '-' (eg. '-f')
    were passed as integers down to handlers.
    
    I've maintained this behavior in the new monitor because we didn't
    have a boolean type at the very beginning of QMP. Today we have it
    and this behavior is causing trouble to QMP's argument checker.
    
    This commit fixes the problem by doing the following changes:
    
    1. User Monitor
    
       Before: the optional arg was represented as a QInt, we'd pass 1
               down to handlers if the user specified the argument or
               0 otherwise
    
       This commit: the optional arg is represented as a QBool, we pass
                    true down to handlers if the user specified the
                    argument, otherwise _nothing_ is passed
    
    2. QMP
    
       Before: the client was required to pass the arg as QBool, but we'd
               convert it to QInt internally. If the argument wasn't passed,
               we'd pass 0 down
    
       This commit: still require a QBool, but doesn't do any conversion and
                    doesn't pass any default value
    
    3. Convert existing handlers (do_eject()/do_migrate()) to the new way
    
       Before: Both handlers would expect a QInt value, either 0 or 1
    
       This commit: Change the handlers to accept a QBool, they handle the
                    following cases:
    
                       A) true is passed: the option is enabled
                       B) false is passed: the option is disabled
                       C) nothing is passed: option not specified, use
                                             default behavior
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 35006ac856d6f0593c2185dd84ad004852053cf9
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon Jun 7 17:25:04 2010 -0300

    QDict: Introduce qdict_get_try_bool()
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit d02c6bd428ddebd11c6e8f1bf13013b97c397628
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon Jun 7 15:29:58 2010 -0300

    check-qdict: Introduce test for the new iteration API
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit f2b07f35d2ee1c6a501d1e3c68c0db42c70751fd
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon Jun 7 16:07:29 2010 -0300

    QDict: Introduce new iteration API
    
    It's composed of functions qdict_first() and qdict_next(), plus
    functions to access QDictEntry values.
    
    This API was suggested by Markus Armbruster <armbru at redhat.com> and
    it offers full control over the iteration process.
    
    The usage is simple, the following example prints all keys in 'qdict'
    (it's hopefully better than any English description):
    
       QDict *qdict;
       const QDictEntry *ent;
    
       [...]
    
       for (ent = qdict_first(qdict); ent; ent = qdict_next(qdict, ent)) {
            printf("%s ", qdict_entry_key(ent));
        }
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 0d078b2adec72fd74b00defb260724b33e87e184
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon Jun 7 16:53:51 2010 -0300

    QDict: Introduce functions to retrieve QDictEntry values
    
    Next commit will introduce a new QDict iteration API which
    returns QDictEntry entries, but we don't want users to directly
    access its members since QDictEntry should be private to QDict.
    
    In the near future this kind of data type will be turned into a
    forward reference.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit c8bc3cd72b4c530721d5be1bf9f599edb5d72160
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Mon Jun 7 15:45:22 2010 -0300

    QDict: Small terminology change
    
    Let's call a 'hash' only what is returned by our hash function,
    anything else is a 'bucket'.
    
    This helps avoiding confusion with regard to how we traverse
    our table.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 83aba69ec05e17ff34708a5b7a3b719dac5c8fc0
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Fri Jun 4 19:20:54 2010 -0300

    QDict: Rename 'err_value'
    
    A missing key is not an error.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 8754c81e11ab046c445425753f52cbb505f60a50
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Wed Jun 23 12:37:47 2010 -0300

    QError: Enhance QERR_DEVICE_NOT_ACTIVE's user desc
    
    The 'by the guest' part is misleading, it could be disabled by
    the host too.
    
    We will likely need more surgery if we care for the distinction,
    just dropping the problematic part is good enough for now.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 5af7bbae0ca45962d0bcd19753a947aabee6f7f1
Author: Luiz Capitulino <lcapitulino at redhat.com>
Date:   Tue Jun 22 19:10:46 2010 -0300

    QMP: Fix error reporting in the async API
    
    The current asynchronous command API doesn't return a QMP response
    when the async command fails.
    
    This is easy to reproduce with the balloon command (the sole async
    command we have so far): run qemu w/o the '-balloon virtio' option
    and try to issue the balloon command via QMP: no response will be
    sent to the client.
    
    This commit fixes the problem by making qmp_async_cmd_handler()
    return the handler's error code and then calling
    monitor_protocol_emitter() if the handler has returned an error.
    
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 410cbafebc7168a278a23c856b4f5ff276ef1c85
Author: Yoshiaki Tamura <tamura.yoshiaki at lab.ntt.co.jp>
Date:   Mon Jun 21 10:41:36 2010 +0900

    net: delete QemuOpts when net_client_init() fails.
    
    This fixes the following scenario using QMP.
    
    First, put a bogus argument "foo" to "type", which results in an error.
    {"execute": "netdev_add", "arguments": { "type": "foo", "id": "netdev1" } }
    Then, call it again with correct argument "user".
    {"execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
    This results in "DuplicatedId" error.
    
    Because the first command was invalid, it should be able to reuse the
    same "id", and the second command should work.
    
    Reported-by: Luiz Capitulino <lcapitulino at redhat.com>
    Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki at lab.ntt.co.jp>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit bbafc7a8798bc9ed1380e75033544e0614d344c7
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Wed Jun 16 00:38:46 2010 +0200

    QMP: Fix python helper /wrt long return strings
    
    Remove the arbitrary limitation of 1024 characters per return string and
    read complete lines instead. Required for device_show.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 8d7e84571bd3f44c106ed12cb316b1ca30915fc7
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Wed Jun 16 00:38:45 2010 +0200

    QMP: Teach basic capability negotiation to python example
    
    As sending "qmp_capabilities" on session start became mandatory, both
    python examples were broken.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 8ac470c1f945601de9f1f577791c48e95d5340db
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Wed Jun 16 00:38:39 2010 +0200

    monitor: Establish cmd flags and convert the async tag
    
    As we want to add more flags to monitor commands, convert the only so
    far existing one accordingly.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 3b6dbf277232920a6463fc01d630e4d9dc378ef6
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Wed Jun 16 00:38:34 2010 +0200

    monitor: Fix command completion vs. boolean switches
    
    We now have to move forward to the next argument type via next_arg_type.
    This patch fixes completion for 'eject' and maybe also other commands.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>

commit 03a63484a6978f68caff087bbaabcd1d383563af
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date:   Wed Jun 16 00:38:33 2010 +0200

    monitor: Fix leakage during completion processing
    
    Given too many arguments or an invalid command, we were leaking the
    duplicated argument strings.
    
    Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
    Signed-off-by: Luiz Capitulino <lcapitulino at redhat.com>



More information about the Spice-commits mailing list