qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 396374: qemu-img: eliminate memory leak


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 396374: qemu-img: eliminate memory leak
Date: Tue, 15 Mar 2016 03:30:08 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 396374caeadf044bad0aae9447eeeb109ea8651c
      
https://github.com/qemu/qemu/commit/396374caeadf044bad0aae9447eeeb109ea8651c
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: eliminate memory leak

Not particularly important since qemu-img exits immediately after
calling img_rebase, but easily fixed.  Coverity says thanks.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2b77e60ab86e240a06f1ef117ecd488e85d6226e
      
https://github.com/qemu/qemu/commit/2b77e60ab86e240a06f1ef117ecd488e85d6226e
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qapi.c

  Log Message:
  -----------
  block/qapi: Factor out bdrv_query_blk_stats()

The new functions handles the data that is taken from the BlockBackend.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: b07363a1a38695e12fc888b490b6215358752e85
      
https://github.com/qemu/qemu/commit/b07363a1a38695e12fc888b490b6215358752e85
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qapi.c

  Log Message:
  -----------
  block/qapi: Factor out bdrv_query_bds_stats()

The new functions handles the data that is taken from the
BlockDriverState.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: c21cc6ca989ebbeaed3e601ae4e521afbff5df54
      
https://github.com/qemu/qemu/commit/c21cc6ca989ebbeaed3e601ae4e521afbff5df54
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qapi.c

  Log Message:
  -----------
  block/qapi: Include empty drives in query-blockstats

Since commit 5ec18f8c, query-blockstats didn't return the statistics of
drives without media any more because such drives have only a BB now,
but not a BDS any more.

This patch fixes the regression so that query-blockstats iterates over
BBs by default and empty drives are displayed again.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: c540d53ac849f385521acb7552ade4f6d3f55ca6
      
https://github.com/qemu/qemu/commit/c540d53ac849f385521acb7552ade4f6d3f55ca6
  Author: Jeff Cody <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  block/vpc: choose size calculation method based on creator_app field

The VHD file format is used by both Virtual PC, and Hyper-V.  However,
how the virtual disk size is calculated varies between the two.

Virtual PC uses the CHS drive parameters to determine the drive size.
Hyper-V, on the other hand, uses the current_size field in the footer
when determining image size.

This is problematic for a few reasons:

* VHD images from Hyper-V, using CHS calculations, will likely be
  trunctated.

* If we just rely always on current_size, then QEMU may have data
  compatibility issues with Virtual PC (we may write too much data
  into a VHD file to be used by Virtual PC, for instance).

* Existing VHD images created by QEMU have used the CHS calculations,
  except for images exceeding the 127GB limit.  We want to remain
  compatible with our own generated images.

Luckily, the VHD specification defines a 'Creator App' field, that is
used to indicate what software created the VHD file.

This patch does two things:

    1. Uses the 'Creator App' field to help determine how to calculate
       size, and

    2. Adds a VPC format option 'force_size_calc', so that the user can
       override the 'Creator App' auto-detection, in case there exist
       VHD images with unknown or contradictory 'Creator App' entries.

N.B.: We currently use the maximum CHS value as an indication to use the
current_size field.  This patch does not change that, even with the
'force_size_calc' option.

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 798609bbe29df4edf4bbec46927fc12862b02378
      
https://github.com/qemu/qemu/commit/798609bbe29df4edf4bbec46927fc12862b02378
  Author: Jeff Cody <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    A tests/qemu-iotests/146
    A tests/qemu-iotests/146.out
    M tests/qemu-iotests/group
    A tests/qemu-iotests/sample_images/d2v-zerofilled.vhd.bz2
    A tests/qemu-iotests/sample_images/hyperv2012r2-dynamic.vhd.bz2
    A tests/qemu-iotests/sample_images/virtualpc-dynamic.vhd.bz2

  Log Message:
  -----------
  block/vpc: tests for auto-detecting VPC and Hyper-V VHD images

This tests auto-detection, and overrides, of VHD image sizes created
by Virtual PC, Hyper-V, and Disk2vhd.

This adds three sample images:

hyperv2012r2-dynamic.vhd.bz2 - dynamic VHD image created with Hyper-V
virtualpc-dynamic.vhd.bz2    - dynamic VHD image created with Virtual PC
d2v-zerofilled.vhd.bz2       - dynamic VHD image created with Disk2vhd

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: fb9245c2610932d33ce148b58714fcc7b3c6eb5f
      
https://github.com/qemu/qemu/commit/fb9245c2610932d33ce148b58714fcc7b3c6eb5f
  Author: Jeff Cody <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  block/vpc: give option to force the current_size field in .bdrv_create

When QEMU creates a VHD image, it goes by the original spec,
calculating the current_size based on the nearest CHS geometry (with an
exception for disks > 127GB).

Apparently, Azure will only allow images that are sized to the nearest
MB, and the current_size as calculated from CHS cannot guarantee that.

Allow QEMU to create images similar to how Hyper-V creates images, by
setting current_size to the specified virtual disk size.  This
introduces an option, force_size, to be passed to the vpc format during
image creation, e.g.:

    qemu-img convert -f raw -o force_size -O vpc test.img test.vhd

When using the "force_size" option, the creator app field used by
QEMU will be "qem2" instead of "qemu", to indicate the difference.
In light of this, we also add parsing of the "qem2" field during
vpc_open.

Bug reference: https://bugs.launchpad.net/qemu/+bug/1490611

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1001dd9f844429c01ebf433cc67df8cf196d06d5
      
https://github.com/qemu/qemu/commit/1001dd9f844429c01ebf433cc67df8cf196d06d5
  Author: Jeff Cody <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M tests/qemu-iotests/146
    M tests/qemu-iotests/146.out

  Log Message:
  -----------
  block/vpc: add tests for image creation force_size parameter

Signed-off-by: Jeff Cody <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 58346b82edffff0fb886358aa6d69604b215a770
      
https://github.com/qemu/qemu/commit/58346b82edffff0fb886358aa6d69604b215a770
  Author: Changlong Xie <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M docs/qmp-events.txt

  Log Message:
  -----------
  docs: fix invalid node name in qmp event

Cc: Dr. David Alan Gilbert <address@hidden>
Cc: Wen Congyang <address@hidden>
Signed-off-by: Wen Congyang <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0ae053b7e1b74a551b89a84c706e0cb9a163d92c
      
https://github.com/qemu/qemu/commit/0ae053b7e1b74a551b89a84c706e0cb9a163d92c
  Author: Changlong Xie <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/quorum.c
    M docs/qmp-events.txt
    M qapi/block.json
    M qapi/event.json

  Log Message:
  -----------
  qmp event: Refactor QUORUM_REPORT_BAD

Introduce QuorumOpType, and make QUORUM_REPORT_BAD compatible
with it.

Cc: Dr. David Alan Gilbert <address@hidden>
Cc: Wen Congyang <address@hidden>
Signed-off-by: Wen Congyang <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 924e8a2bbc7cc62b3996efe9a2a460f541c04520
      
https://github.com/qemu/qemu/commit/924e8a2bbc7cc62b3996efe9a2a460f541c04520
  Author: Changlong Xie <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: modify vote rules for flush operation

Keep flush interface the same logic as quorum read/write, Otherwise in
following scenario, we'll encounter unexpected errors.

Quorum has two children(A, B). A do flush sucessfully, but B flush failed.
This cause the filesystem of guest become read-only with following errors:

end_request: I/O error, dev vda, sector 11159960
Aborting journal on device vda3-8
EXT4-fs error (device vda3): ext4_journal_start_sb:327: Detected abort journal
EXT4-fs (vda3): Remounting filesystem read-only

Cc: Dr. David Alan Gilbert <address@hidden>
Cc: Wen Congyang <address@hidden>
Signed-off-by: Wen Congyang <address@hidden>
Signed-off-by: Changlong Xie <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: f86b8b584b114d68036bf576057f51caec7b94ba
      
https://github.com/qemu/qemu/commit/f86b8b584b114d68036bf576057f51caec7b94ba
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  blockdev: Snapshotting must not open second instance of old top

Calling bdrv_img_create() with a size of -1 means that it determines the
size automatically by opening the backing file. However, in the case of
live snapshots, the backing file is already opened and we must avoid
opening the same image twice at the same time. Apart from that, just
getting the size from the already existing BDS is a lot less overhead
than opening a new instance.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>


  Commit: 73176bee9918a3738237b0e06eff72b497283869
      
https://github.com/qemu/qemu/commit/73176bee9918a3738237b0e06eff72b497283869
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block.c
    M blockdev.c
    M include/block/block.h

  Log Message:
  -----------
  block: Fix snapshot=on cache modes

Since commit 91a097e, we end up with a somewhat weird cache mode
configuration with snapshot=on: The commit broke the cache mode
inheritance for the snapshot overlay so that it is opened as
writethrough instead of unsafe now. The following bdrv_append() call to
put it on top of the tree swaps the WCE flag with the snapshot's backing
file (i.e. the originally given file), so what we eventually get is
cache=writeback on the temporary overlay and
cache=writethrough,cache.no-flush=on on the real image file.

This patch changes things so that the temporary overlay gets
cache=unsafe again like it used to, and the real images get whatever the
user specified. This means that cache.direct is now respected even with
snapshot=on, and in the case of committing changes, the final flush is
no longer ignored except explicitly requested by the user.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: a81d616437e53106c31ba5025d5f359e592a2ef4
      
https://github.com/qemu/qemu/commit/a81d616437e53106c31ba5025d5f359e592a2ef4
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  block: Fix cache mode defaults in bds_tree_init()

Without setting explicit defaults in the options, blockdev-add without
an ID ended up defaulting to writethrough. It should be writeback as
documented.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>


  Commit: 965415eb20b8f2252289166da1bc6e488b466873
      
https://github.com/qemu/qemu/commit/965415eb20b8f2252289166da1bc6e488b466873
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Switch to heap arrays for vmdk_write_cid

It is only called once for each opened image, so we can do it the easy
way.

Reviewed-by: Peter Xu <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5997c210b9ed7d6dbc64aa5049eb2bc4ec574aba
      
https://github.com/qemu/qemu/commit/5997c210b9ed7d6dbc64aa5049eb2bc4ec574aba
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Switch to heap arrays for vmdk_read_cid

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 71968dbfd8d190321ae54caf2ddfdf012ee97b3c
      
https://github.com/qemu/qemu/commit/71968dbfd8d190321ae54caf2ddfdf012ee97b3c
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Switch to heap arrays for vmdk_parent_open

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: abb21ac3e602430bd7a35e88ecc2eb62c91c7b42
      
https://github.com/qemu/qemu/commit/abb21ac3e602430bd7a35e88ecc2eb62c91c7b42
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M blockdev.c
    M device-hotplug.c
    M hmp-commands.hx
    M include/block/block_int.h

  Log Message:
  -----------
  hmp: 'drive_add -n' for creating a node without BB

This patch adds an option to the drive_add HMP command to create only a
BlockDriverState without a BlockBackend on top.

The motivation for this is that libvirt needs to specify options to a
migration target (specifically, detect-zeroes). drive-mirror doesn't
allow specifying options, and the proper way to do this is to create the
target BDS separately with blockdev-add (where you can specify options)
and then use blockdev-mirror to that BDS.

However, libvirt can't use blockdev-add as long as it is still
experimental, and we're expecting that it will still take some time, so
we need to resort to drive_add.

The problem with drive_add is that so far it always created a BB, and
BDSes with a BB can't be used as a mirroring target as long as we don't
support multiple BBs per BDS - and while we're working towards that
goal, it's another thing that will still take some time.

So to achieve the goal, the simplest solution to provide the
functionality now without adding one-off options to the mirror QMP
commands is to extend drive_add to create nodes without BBs.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2073d410ce3f2b1507bccd6aba68e8808647f9a9
      
https://github.com/qemu/qemu/commit/2073d410ce3f2b1507bccd6aba68e8808647f9a9
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  hmp: Extend drive_del to delete nodes without BB

Now that we can use drive_add to create new nodes without a BB, we also
want to be able to delete such nodes again.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: 6340472c54529c5b703deec3ab0d6bdfe644f11e
      
https://github.com/qemu/qemu/commit/6340472c54529c5b703deec3ab0d6bdfe644f11e
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/parallels.c
    M block/qcow.c
    M block/qcow2.c
    M block/sheepdog.c
    M block/vdi.c
    M block/vhdx.c
    M block/vmdk.c
    M block/vpc.c

  Log Message:
  -----------
  block: Use writeback in .bdrv_create() implementations

There's no reason to use a writethrough cache mode while creating an
image.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c10c9d96158ce4d05f4325e64c0ce6a5fcd64b8b
      
https://github.com/qemu/qemu/commit/c10c9d96158ce4d05f4325e64c0ce6a5fcd64b8b
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/block-backend.c
    M include/sysemu/block-backend.h

  Log Message:
  -----------
  block: Introduce blk_set_allow_write_beyond_eof()

We check that the guest can't write beyond the end of its disk, but for
other internal users it can make sense to allow growing a file.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8942764f548e239b1b78c28bb662bef3e1221c3d
      
https://github.com/qemu/qemu/commit/8942764f548e239b1b78c28bb662bef3e1221c3d
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 6af40160209f579997e4adb05648813a717caab6
      
https://github.com/qemu/qemu/commit/6af40160209f579997e4adb05648813a717caab6
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qcow.c

  Log Message:
  -----------
  qcow: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 23588797b6830254ee25ed682bdd7f2cd65e1252
      
https://github.com/qemu/qemu/commit/23588797b6830254ee25ed682bdd7f2cd65e1252
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qcow2.c

  Log Message:
  -----------
  qcow2: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8a56fdadaff912b2f1ad581ac42580945e36a74b
      
https://github.com/qemu/qemu/commit/8a56fdadaff912b2f1ad581ac42580945e36a74b
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/qed.c

  Log Message:
  -----------
  qed: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: fba98d455a7de1f2ef801d60ae895b173f4738c5
      
https://github.com/qemu/qemu/commit/fba98d455a7de1f2ef801d60ae895b173f4738c5
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: a08f0c3b5fe8d2e08c3b7e797b359772819fbb92
      
https://github.com/qemu/qemu/commit/a08f0c3b5fe8d2e08c3b7e797b359772819fbb92
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vdi.c

  Log Message:
  -----------
  vdi: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 10bf03af128fa9ff5eb696c7b4dc145406f2de40
      
https://github.com/qemu/qemu/commit/10bf03af128fa9ff5eb696c7b4dc145406f2de40
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vhdx.c

  Log Message:
  -----------
  vhdx: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c4bea1690e3c920f8139356f79ff38ce92ddeaa9
      
https://github.com/qemu/qemu/commit/c4bea1690e3c920f8139356f79ff38ce92ddeaa9
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vmdk.c

  Log Message:
  -----------
  vmdk: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b8f45cdf7827e39f9a1e6cc446f5972cc6144237
      
https://github.com/qemu/qemu/commit/b8f45cdf7827e39f9a1e6cc446f5972cc6144237
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/vpc.c

  Log Message:
  -----------
  vpc: Use BB functions in .bdrv_create()

All users of the block layers are supposed to go through a BlockBackend.
The .bdrv_create() implementation is one such user, so this patch
converts it.

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b2f56462d51a49c28d2a7b214b3ae8e8d3329f1f
      
https://github.com/qemu/qemu/commit/b2f56462d51a49c28d2a7b214b3ae8e8d3329f1f
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/backup.c

  Log Message:
  -----------
  backup: Use Bitmap to replace "s->bitmap"

"s->bitmap" tracks done sectors, we only check bit states without using any
iterator which HBitmap is good for. Switch to "Bitmap" which is simpler and
more memory efficient.

Meanwhile, rename it to done_bitmap, to reflect the intention.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 78f9dc859d2db4c3bad382e09e0935bf959d07a6
      
https://github.com/qemu/qemu/commit/78f9dc859d2db4c3bad382e09e0935bf959d07a6
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M include/block/block.h

  Log Message:
  -----------
  block: Include hbitmap.h in block.h

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 9a3f5cf1bfd2b1e11a496bdaf038cc7d825e01df
      
https://github.com/qemu/qemu/commit/9a3f5cf1bfd2b1e11a496bdaf038cc7d825e01df
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M include/block/block.h
    M include/qemu/typedefs.h

  Log Message:
  -----------
  typedefs: Add BdrvDirtyBitmap

Following patches to refactor and move block dirty bitmap code could use
this.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: ebab225910d7bb3d805176ff89b5efc5f18653c3
      
https://github.com/qemu/qemu/commit/ebab225910d7bb3d805176ff89b5efc5f18653c3
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block.c
    M block/Makefile.objs
    A block/dirty-bitmap.c
    M include/block/block.h
    A include/block/dirty-bitmap.h

  Log Message:
  -----------
  block: Move block dirty bitmap code to separate files

The only code change is making bdrv_dirty_bitmap_truncate public. It is
used in block.c.

Also two long lines (bdrv_get_dirty) are wrapped.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: fcce736719d04effab3d9a07d29ab4cecaf841dd
      
https://github.com/qemu/qemu/commit/fcce736719d04effab3d9a07d29ab4cecaf841dd
  Author: Fam Zheng <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M include/block/block.h

  Log Message:
  -----------
  block: Remove unused typedef of BlockDriverDirtyHandler

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: e3f66e03680ec2a1f43393d551bc83c5d469f84b
      
https://github.com/qemu/qemu/commit/e3f66e03680ec2a1f43393d551bc83c5d469f84b
  Author: Max Reitz <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M tests/qemu-iotests/081.out

  Log Message:
  -----------
  iotests: Correct 081's reference output

The newly added type parameter for the QUORUM_REPORT_BAD event changed
the output of iotest 081, so the reference should be amended
accordingly.

Signed-off-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Alberto Garcia <address@hidden>


  Commit: b9c600d20716b3d942cb07188ff998fb236a8365
      
https://github.com/qemu/qemu/commit/b9c600d20716b3d942cb07188ff998fb236a8365
  Author: Alberto Garcia <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block/quorum.c

  Log Message:
  -----------
  quorum: Fix crash in quorum_aio_cb()

quorum_aio_cb() emits the QUORUM_REPORT_BAD event if there's
an I/O error in a Quorum child. However sacb->aiocb must be
correctly initialized for this to happen. read_quorum_children() and
read_fifo_child() are not doing this, which results in a QEMU crash.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 6d425eb94d34df3fdcebbe512ae6091a307cb022
      
https://github.com/qemu/qemu/commit/6d425eb94d34df3fdcebbe512ae6091a307cb022
  Author: Alberto Garcia <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Separate QUORUM_REPORT_BAD events according to the node name

The QUORUM_REPORT_BAD event is emitted whenever there's an I/O error
in a child of a Quorum device. This event is emitted at a maximum rate
of 1 per second. This means that an error in one of the children will
mask errors in the other children if they happen within the same 1
second interval.

This patch modifies qapi_event_throttle_equal() so QUORUM_REPORT_BAD
events are kept separately if they come from different children.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: dc5999787181f6d090217f45570067e55333835b
      
https://github.com/qemu/qemu/commit/dc5999787181f6d090217f45570067e55333835b
  Author: Alberto Garcia <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M monitor.c

  Log Message:
  -----------
  monitor: Use QEMU_CLOCK_VIRTUAL for the event queue in qtest mode

This allows us to perform tests on the monitor queues to verify that
the rate limits are enforced.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>


  Commit: 7223c48cff7aec07517a30c2fbfadbb45de9eb14
      
https://github.com/qemu/qemu/commit/7223c48cff7aec07517a30c2fbfadbb45de9eb14
  Author: Alberto Garcia <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    A tests/qemu-iotests/148
    A tests/qemu-iotests/148.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  iotests: Add test for QMP event rates

This test verifies that the rate-limited QMP events are emitted at a
maximum rate of 1 per second as defined in monitor_qapi_event_conf in
monitor.c

It also checks that QUORUM_REPORT_BAD events generated from different
nodes are kept in separate queues so they don't mask each other.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
address@hidden: Renamed test from 146 to 148]
Signed-off-by: Max Reitz <address@hidden>


  Commit: 0d611402a1e53a968a03c7c5e2f87114be92a319
      
https://github.com/qemu/qemu/commit/0d611402a1e53a968a03c7c5e2f87114be92a319
  Author: Kevin Wolf <address@hidden>
  Date:   2016-03-14 (Mon, 14 Mar 2016)

  Changed paths:
    M block.c
    M block/Makefile.objs
    M block/backup.c
    A block/dirty-bitmap.c
    M block/quorum.c
    M include/block/block.h
    A include/block/dirty-bitmap.h
    M include/qemu/typedefs.h
    M monitor.c
    M tests/qemu-iotests/081.out
    A tests/qemu-iotests/148
    A tests/qemu-iotests/148.out
    M tests/qemu-iotests/group

  Log Message:
  -----------
  Merge remote-tracking branch 'mreitz/tags/pull-block-for-kevin-2016-03-14-v2' 
into queue-block

Block patches for pi day, v2.

# gpg: Signature made Mon Mar 14 17:35:29 2016 CET using RSA key ID E838ACAD
# gpg: Good signature from "Max Reitz <address@hidden>"

* mreitz/tags/pull-block-for-kevin-2016-03-14-v2:
  iotests: Add test for QMP event rates
  monitor: Use QEMU_CLOCK_VIRTUAL for the event queue in qtest mode
  monitor: Separate QUORUM_REPORT_BAD events according to the node name
  quorum: Fix crash in quorum_aio_cb()
  iotests: Correct 081's reference output
  block: Remove unused typedef of BlockDriverDirtyHandler
  block: Move block dirty bitmap code to separate files
  typedefs: Add BdrvDirtyBitmap
  block: Include hbitmap.h in block.h
  backup: Use Bitmap to replace "s->bitmap"

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1a8b40816839f71ef2076bbd88c4aecaf5b8d75b
      
https://github.com/qemu/qemu/commit/1a8b40816839f71ef2076bbd88c4aecaf5b8d75b
  Author: Peter Maydell <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M block.c
    M block/Makefile.objs
    M block/backup.c
    M block/block-backend.c
    A block/dirty-bitmap.c
    M block/parallels.c
    M block/qapi.c
    M block/qcow.c
    M block/qcow2.c
    M block/qed.c
    M block/quorum.c
    M block/sheepdog.c
    M block/vdi.c
    M block/vhdx.c
    M block/vmdk.c
    M block/vpc.c
    M blockdev.c
    M device-hotplug.c
    M docs/qmp-events.txt
    M hmp-commands.hx
    M include/block/block.h
    M include/block/block_int.h
    A include/block/dirty-bitmap.h
    M include/qemu/typedefs.h
    M include/sysemu/block-backend.h
    M monitor.c
    M qapi/block.json
    M qapi/event.json
    M qemu-img.c
    M tests/qemu-iotests/081.out
    A tests/qemu-iotests/146
    A tests/qemu-iotests/146.out
    A tests/qemu-iotests/148
    A tests/qemu-iotests/148.out
    M tests/qemu-iotests/group
    A tests/qemu-iotests/sample_images/d2v-zerofilled.vhd.bz2
    A tests/qemu-iotests/sample_images/hyperv2012r2-dynamic.vhd.bz2
    A tests/qemu-iotests/sample_images/virtualpc-dynamic.vhd.bz2

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Mon 14 Mar 2016 16:36:52 GMT using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"

* remotes/kevin/tags/for-upstream: (40 commits)
  iotests: Add test for QMP event rates
  monitor: Use QEMU_CLOCK_VIRTUAL for the event queue in qtest mode
  monitor: Separate QUORUM_REPORT_BAD events according to the node name
  quorum: Fix crash in quorum_aio_cb()
  iotests: Correct 081's reference output
  block: Remove unused typedef of BlockDriverDirtyHandler
  block: Move block dirty bitmap code to separate files
  typedefs: Add BdrvDirtyBitmap
  block: Include hbitmap.h in block.h
  backup: Use Bitmap to replace "s->bitmap"
  vpc: Use BB functions in .bdrv_create()
  vmdk: Use BB functions in .bdrv_create()
  vhdx: Use BB functions in .bdrv_create()
  vdi: Use BB functions in .bdrv_create()
  sheepdog: Use BB functions in .bdrv_create()
  qed: Use BB functions in .bdrv_create()
  qcow2: Use BB functions in .bdrv_create()
  qcow: Use BB functions in .bdrv_create()
  parallels: Use BB functions in .bdrv_create()
  block: Introduce blk_set_allow_write_beyond_eof()
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/618a5a8bc52b...1a8b40816839

reply via email to

[Prev in Thread] Current Thread [Next in Thread]