qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ebde59: block: Add more types for tracked req


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] ebde59: block: Add more types for tracked request
Date: Thu, 12 Nov 2015 10:30:06 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ebde595ce63369921dbbe1bd16fec0b230050d67
      
https://github.com/qemu/qemu/commit/ebde595ce63369921dbbe1bd16fec0b230050d67
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/io.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Add more types for tracked request

We'll track more request types besides read and write, change the
boolean field to an enum.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cdb5e3155eb323380c59f19fe88e28fedd85d3d8
      
https://github.com/qemu/qemu/commit/cdb5e3155eb323380c59f19fe88e28fedd85d3d8
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Track flush requests

Both bdrv_flush and bdrv_aio_flush eventually call bdrv_co_flush, add
tracked_request_begin and tracked_request_end pair in that function so
that all flush requests are now tracked.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b1066c875597649be1d1d6db4712bc504b4c4c81
      
https://github.com/qemu/qemu/commit/b1066c875597649be1d1d6db4712bc504b4c4c81
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Track discard requests

Both bdrv_discard and bdrv_aio_discard will call into bdrv_co_discard,
so add tracked_request_begin/end calls around the loop.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 4bb17ab51a78c6daaaa9d6c86d1c890d24c091c4
      
https://github.com/qemu/qemu/commit/4bb17ab51a78c6daaaa9d6c86d1c890d24c091c4
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/iscsi.c

  Log Message:
  -----------
  iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl

iscsi_ioctl emulates SG_GET_VERSION_NUM and SG_GET_SCSI_ID. Now that
bdrv_ioctl() will be emulated with .bdrv_aio_ioctl, replicate the logic
into iscsi_aio_ioctl to make them consistent.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 8b45f6878d291646cadc4786ae807e6a42c188b4
      
https://github.com/qemu/qemu/commit/8b45f6878d291646cadc4786ae807e6a42c188b4
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M include/block/block.h

  Log Message:
  -----------
  block: Add ioctl parameter fields to BlockRequest

The two fields that will be used by ioctl handling code later are added
as union, because it's used exclusively by ioctl code which dosn't need
the four fields in the other struct of the union.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5c5ae76acb024f05b8f021e9f1e10a0299328bdd
      
https://github.com/qemu/qemu/commit/5c5ae76acb024f05b8f021e9f1e10a0299328bdd
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both

Currently all drivers that support .bdrv_aio_ioctl also implement
.bdrv_ioctl redundantly.  To track ioctl requests in block layer it is
easier if we unify the two paths, because we'll need to run it in a
coroutine, as required by tracked_request_begin. While we're at it, use
.bdrv_aio_ioctl plus aio_poll() to emulate bdrv_ioctl().

Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 83c98d7b924eab36a0a2c7813731dbef439a91d3
      
https://github.com/qemu/qemu/commit/83c98d7b924eab36a0a2c7813731dbef439a91d3
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/iscsi.c
    M block/raw-posix.c
    M block/raw_bsd.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Drop BlockDriver.bdrv_ioctl

Now the callback is not used any more, drop the field along with all
implementations in block drivers, which are iscsi and raw.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 67da1dc5ce696c7b309b1db100da7d94292847b7
      
https://github.com/qemu/qemu/commit/67da1dc5ce696c7b309b1db100da7d94292847b7
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/io.c
    M include/block/block_int.h

  Log Message:
  -----------
  block: Introduce BlockDriver.bdrv_drain callback

Drivers can have internal request sources that generate IO, like the
need_check_timer in QED. Since we want quiesced periods that contain
nested event loops in block layer, we need to have a way to disable such
event sources.

Block drivers must implement the "bdrv_drain" callback if it has any
internal sources that can generate I/O activity, like a timer or a
worker thread (even in a library) that can schedule QEMUBH in an
asynchronous callback.

Update the comments of bdrv_drain and bdrv_drained_begin accordingly.

Like bdrv_requests_pending(), we should consider all the children of bs.
Before, the while loop just works, as bdrv_requests_pending() already
tracks its children; now we mustn't miss the callback, so recurse down
explicitly.

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


  Commit: df9a681dc9ad41c9cdeb9ecc5d060ba9abd27e01
      
https://github.com/qemu/qemu/commit/df9a681dc9ad41c9cdeb9ecc5d060ba9abd27e01
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block.c
    M block/qed.c
    M blockdev.c
    M docs/bitmaps.md
    M include/block/block.h
    M include/block/block_int.h
    M qapi-schema.json

  Log Message:
  -----------
  qed: Implement .bdrv_drain

The "need_check_timer" is used to clear the "NEED_CHECK" flag in the
image header after a grace period once metadata update has finished. In
compliance to the bdrv_drain semantics we should make sure it remains
deleted once .bdrv_drain is called.

We cannot reuse qed_need_check_timer_cb because here it doesn't satisfy
the assertion.  Do the "plug" and "flush" calls manually.

Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 749ad5e887e85fd51d83bf4d08ed72858f937fd9
      
https://github.com/qemu/qemu/commit/749ad5e887e85fd51d83bf4d08ed72858f937fd9
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  iotests: add transactional incremental backup test

Test simple usage cases for using transactions to create
and synchronize incremental backups.

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


  Commit: 50f43f0ff9a640b901b2657492d642e14a57bd4d
      
https://github.com/qemu/qemu/commit/50f43f0ff9a640b901b2657492d642e14a57bd4d
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M blockdev.c

  Log Message:
  -----------
  block: rename BlkTransactionState and BdrvActionOps

These structures are misnomers, somewhat.

(1) BlockTransactionState is not state for a transaction,
    but is rather state for a single transaction action.
    Rename it "BlkActionState" to be more accurate.

(2) The BdrvActionOps describes operations for the BlkActionState,
    above. This name might imply a 'BdrvAction' or a 'BdrvActionState',
    which there isn't.
    Rename this to 'BlkActionOps' to match 'BlkActionState'.

Lastly, update the surrounding in-line documentation and comments
to reflect the current nature of how Transactions operate.

This patch changes only comments and names, and should not affect
behavior in any way.

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


  Commit: b976ea3cf591ac994cc17dcf0fc550c9aa9c0f5d
      
https://github.com/qemu/qemu/commit/b976ea3cf591ac994cc17dcf0fc550c9aa9c0f5d
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/backup.c

  Log Message:
  -----------
  backup: Extract dirty bitmap handling as a separate function

This will be reused by the coming new transactional completion code.

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


  Commit: 18930ba3d17866fff6df52ae6d2e54ce5c5ca04b
      
https://github.com/qemu/qemu/commit/18930ba3d17866fff6df52ae6d2e54ce5c5ca04b
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/mirror.c
    M blockdev.c
    M blockjob.c
    M include/block/blockjob.h
    M qemu-img.c

  Log Message:
  -----------
  blockjob: Introduce reference count and fix reference to job->bs

Add reference count to block job, meanwhile move the ownership of the
reference to job->bs from the caller (which is released in two
completion callbacks) to the block job itself. It is necessary for
block_job_complete_sync to work, because block job shouldn't live longer
than its bs, as asserted in bdrv_delete.

Now block_job_complete_sync can be simplified.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 57901ecb8e02f03464d5f37bb6edf82e5076812d
      
https://github.com/qemu/qemu/commit/57901ecb8e02f03464d5f37bb6edf82e5076812d
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M include/block/blockjob.h

  Log Message:
  -----------
  blockjob: Add .commit and .abort block job actions

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


  Commit: a689dbf2df74a55d43e3fc4d6aec30ed67ca998f
      
https://github.com/qemu/qemu/commit/a689dbf2df74a55d43e3fc4d6aec30ed67ca998f
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  blockjob: Add "completed" and "ret" in BlockJob

They are set when block_job_completed is called.

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


  Commit: 94db6d2d30962cc0422a69c88c3b3e9981b33e50
      
https://github.com/qemu/qemu/commit/94db6d2d30962cc0422a69c88c3b3e9981b33e50
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M blockjob.c

  Log Message:
  -----------
  blockjob: Simplify block_job_finish_sync

With job->completed and job->ret to replace BlockFinishData.

Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c55a832fdddec2c350b585ade0476501f616608d
      
https://github.com/qemu/qemu/commit/c55a832fdddec2c350b585ade0476501f616608d
  Author: Fam Zheng <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  block: Add block job transactions

Sometimes block jobs must execute as a transaction group.  Finishing
jobs wait until all other jobs are ready to complete successfully.
Failure or cancellation of one job cancels the other jobs in the group.

Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
[Rewrite the implementation which is now contained in block_job_completed.
--Fam]
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Max Reitz <address@hidden>

Signed-off-by: John Snow <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c347b2c62a53b73cf6cc31225feb125d2f20f186
      
https://github.com/qemu/qemu/commit/c347b2c62a53b73cf6cc31225feb125d2f20f186
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/backup.c

  Log Message:
  -----------
  block/backup: Rely on commit/abort for cleanup

Switch over to the new .commit/.abort handlers for
cleaning up incremental bitmaps.

[split up from a patch originally by Stefan and Fam. --js]
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>

Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 78f51fde88d1925b5ae51ba789339baa9ff72ad1
      
https://github.com/qemu/qemu/commit/78f51fde88d1925b5ae51ba789339baa9ff72ad1
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  block: Add BlockJobTxn support to backup_run

Allow a BlockJobTxn to be passed into backup_run, which
will allow the job to join a transactional group if present.

Propagate this new parameter outward into new QMP helper
functions in blockdev.c to allow transaction commands to
pass forward their BlockJobTxn object in a forthcoming patch.

[split up from a patch originally by Stefan and Fam. --js]
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>

Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 94d16a640a1058653327392e08c6d39eeba1e499
      
https://github.com/qemu/qemu/commit/94d16a640a1058653327392e08c6d39eeba1e499
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M blockdev.c
    M qapi-schema.json
    M qmp-commands.hx

  Log Message:
  -----------
  block: add transactional properties

Add both transactional properties to the QMP transactional interface,
and add the BlockJobTxn that we create as a result of the err-cancel
property to the BlkActionState structure.

[split up from a patch originally by Stefan and Fam. --js]
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: John Snow <address@hidden>

Signed-off-by: John Snow <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: fc6c796ff2b049303473702d1ade9196d1843f5d
      
https://github.com/qemu/qemu/commit/fc6c796ff2b049303473702d1ade9196d1843f5d
  Author: John Snow <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  iotests: 124 - transactional failure test

Use a transaction to request an incremental backup across two drives.
Coerce one of the jobs to fail, and then re-run the transaction.

Verify that no bitmap data was lost due to the partial transaction
failure.

To support the 'err-cancel' QMP argument name it's necessary for
transaction_action() to convert underscores in Python argument names
to hyphens for QMP argument names.

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


  Commit: 6c6f312dd752c74c124ecfc4c34e8aaf7254c3b8
      
https://github.com/qemu/qemu/commit/6c6f312dd752c74c124ecfc4c34e8aaf7254c3b8
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M tests/Makefile
    A tests/test-blockjob-txn.c

  Log Message:
  -----------
  tests: add BlockJobTxn unit test

The BlockJobTxn unit test verifies that both single jobs and pairs of
jobs behave as a transaction group.  Either all jobs complete
successfully or the group is cancelled.

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


  Commit: 693044ebd20ce8730aae679ff58d52aa8ec60b0a
      
https://github.com/qemu/qemu/commit/693044ebd20ce8730aae679ff58d52aa8ec60b0a
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/block/xen_disk.c

  Log Message:
  -----------
  xen_disk: Account for flush operations

Currently both BLKIF_OP_WRITE and BLKIF_OP_FLUSH_DISKCACHE are being
accounted as write operations.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c618f331d314c34ff2390d2dbd3f926e513c7059
      
https://github.com/qemu/qemu/commit/c618f331d314c34ff2390d2dbd3f926e513c7059
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/ide/core.c

  Log Message:
  -----------
  ide: Account for write operations correctly

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5519593c07c71c55b196546a00c08106bd9a100b
      
https://github.com/qemu/qemu/commit/5519593c07c71c55b196546a00c08106bd9a100b
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c

  Log Message:
  -----------
  block: define 'clock_type' for the accounting code

Its value is still QEMU_CLOCK_REALTIME, but having it in a variable will
allow us to change its value easily in the future when running in qtest
mode.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: bd797fc15b4290e02c219b7cd6289a33cd6cd18b
      
https://github.com/qemu/qemu/commit/bd797fc15b4290e02c219b7cd6289a33cd6cd18b
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    A include/qemu/timed-average.h
    M tests/Makefile
    A tests/test-timed-average.c
    M util/Makefile.objs
    A util/timed-average.c

  Log Message:
  -----------
  util: Infrastructure for computing recent averages

This module computes the average of a set of values within a time
window, keeping also track of the minimum and maximum values.

In order to produce more accurate results it works internally by
creating two time windows of the same period, offsetted by half of
that period. Values are accounted on both windows and the data is
always returned from the oldest one.

[Add missing util/replay.o to test-timed-average dependencies to fix the
build.
--Stefan]

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: cb38fffbc968e797ae32039b1e2c47b940b30cb4
      
https://github.com/qemu/qemu/commit/cb38fffbc968e797ae32039b1e2c47b940b30cb4
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c
    M block/qapi.c
    M hmp.c
    M include/block/accounting.h
    M qapi/block-core.json
    M qmp-commands.hx

  Log Message:
  -----------
  block: Add idle_time_ns to BlockDeviceStats

This patch adds the new field 'idle_time_ns' to the BlockDeviceStats
structure, indicating the time that has passed since the previous I/O
operation.

It also adds the block_acct_idle_time_ns() call, to ensure that all
references to the clock type used for accounting are in the same
place. This will later allow us to use a different clock for iotests.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 7ee12dafe96a86dfa96af38cea1289305e429a55
      
https://github.com/qemu/qemu/commit/7ee12dafe96a86dfa96af38cea1289305e429a55
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c
    M block/qapi.c
    M include/block/accounting.h
    M qapi/block-core.json
    M qmp-commands.hx

  Log Message:
  -----------
  block: Add statistics for failed and invalid I/O operations

This patch adds the block_acct_failed() and block_acct_invalid()
functions to allow keeping track of failed and invalid I/O operations.

The number of failed and invalid operations is exposed in
BlockDeviceStats.

We don't keep track of the time spent on invalid operations because
they are cancelled immediately when they are started.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 362e9299b34b3101aaa20f20363441c9f055fa5e
      
https://github.com/qemu/qemu/commit/362e9299b34b3101aaa20f20363441c9f055fa5e
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c
    M block/qapi.c
    M blockdev.c
    M include/block/accounting.h
    M qapi/block-core.json
    M qmp-commands.hx

  Log Message:
  -----------
  block: Allow configuring whether to account failed and invalid ops

This patch adds two options, "stats-account-invalid" and
"stats-account-failed", that can be used to decide whether invalid and
failed I/O operations must be used when collecting statistics for
latency and last access time.

Signed-off-by: Alberto Garcia <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 979e9b03fc8c85d3b78a14410c64cbb16d348095
      
https://github.com/qemu/qemu/commit/979e9b03fc8c85d3b78a14410c64cbb16d348095
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c
    M block/block-backend.c
    M block/qapi.c
    M include/block/accounting.h
    M qapi/block-core.json
    M qmp-commands.hx

  Log Message:
  -----------
  block: Compute minimum, maximum and average I/O latencies

This patch keeps track of the minimum, maximum and average latencies
of I/O operations during a certain interval of time.

The values are exposed in the BlockDeviceTimedStats structure.

An option to define the intervals to collect these statistics will be
added in a separate patch.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 96e4dedaff9922f87e4ec351d51d3f093198382a
      
https://github.com/qemu/qemu/commit/96e4dedaff9922f87e4ec351d51d3f093198382a
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c
    M block/qapi.c
    M include/block/accounting.h
    M include/qemu/timed-average.h
    M qapi/block-core.json
    M qmp-commands.hx
    M util/timed-average.c

  Log Message:
  -----------
  block: Add average I/O queue depth to BlockDeviceTimedStats

This patch adds two new fields to BlockDeviceTimedStats that track the
average number of pending read and write requests for a block device.

The values are calculated for the period of time defined for that
interval.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 2be5506fc85d5fef1abdb2128d446cb0b14b12bc
      
https://github.com/qemu/qemu/commit/2be5506fc85d5fef1abdb2128d446cb0b14b12bc
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M blockdev.c
    M qapi/block-core.json

  Log Message:
  -----------
  block: New option to define the intervals for collecting I/O statistics

The BlockAcctStats structure contains a list of BlockAcctTimedStats.
Each one of these collects statistics about the minimum, maximum and
average latencies of all I/O operations in a certain interval of time.

This patch adds a new "stats-intervals" option that allows defining
these intervals.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 556c2b60714e7dae3ed0eb3488910435263dc09f
      
https://github.com/qemu/qemu/commit/556c2b60714e7dae3ed0eb3488910435263dc09f
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M qemu-io-cmds.c

  Log Message:
  -----------
  qemu-io: Account for failed, invalid and flush operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 918a17a464bac332b14a19d87106acc81e476f05
      
https://github.com/qemu/qemu/commit/918a17a464bac332b14a19d87106acc81e476f05
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block/accounting.c

  Log Message:
  -----------
  block: Use QEMU_CLOCK_VIRTUAL for the accounting code in qtest mode

This patch switches to QEMU_CLOCK_VIRTUAL for the accounting code in
qtest mode, and makes the latency of the operation constant. This way we
can perform tests on the accounting code with reproducible results.

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 4214face09bed08279c68a67fa1a4b01be887346
      
https://github.com/qemu/qemu/commit/4214face09bed08279c68a67fa1a4b01be887346
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  iotests: Add test for the block device statistics

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 1753f3dc177a82f8b3c5ea8d2a32737db9411dd4
      
https://github.com/qemu/qemu/commit/1753f3dc177a82f8b3c5ea8d2a32737db9411dd4
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/block/nvme.c

  Log Message:
  -----------
  nvme: Account for failed and invalid operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 01762e03222154fef6d98087ce391aed8a157be5
      
https://github.com/qemu/qemu/commit/01762e03222154fef6d98087ce391aed8a157be5
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/block/virtio-blk.c

  Log Message:
  -----------
  virtio-blk: Account for failed and invalid operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 57ee366ce9cf8d9f7a52b7b654b9db78fe887349
      
https://github.com/qemu/qemu/commit/57ee366ce9cf8d9f7a52b7b654b9db78fe887349
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/block/xen_disk.c

  Log Message:
  -----------
  xen_disk: Account for failed and invalid operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ece2d05ed4adb9a9aa3ca9da0496be769dfb3a25
      
https://github.com/qemu/qemu/commit/ece2d05ed4adb9a9aa3ca9da0496be769dfb3a25
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/ide/atapi.c

  Log Message:
  -----------
  atapi: Account for failed and invalid operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: ecca3b397d06a957b18913ff9afc63860001cfdf
      
https://github.com/qemu/qemu/commit/ecca3b397d06a957b18913ff9afc63860001cfdf
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/ide/core.c

  Log Message:
  -----------
  ide: Account for failed and invalid operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b88b3c8b836ca55d8a4f738deed3b63c0ca84060
      
https://github.com/qemu/qemu/commit/b88b3c8b836ca55d8a4f738deed3b63c0ca84060
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/ide/macio.c

  Log Message:
  -----------
  macio: Account for failed operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: d7628080f3bd074f80666561beadfdd5e2f5b0df
      
https://github.com/qemu/qemu/commit/d7628080f3bd074f80666561beadfdd5e2f5b0df
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M hw/scsi/scsi-disk.c

  Log Message:
  -----------
  scsi-disk: Account for failed operations

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: aece5edc96f211eec6febdafc9bbbb99315a2efd
      
https://github.com/qemu/qemu/commit/aece5edc96f211eec6febdafc9bbbb99315a2efd
  Author: Alberto Garcia <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

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

  Log Message:
  -----------
  block: Update copyright of the accounting code

Signed-off-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: b2df6a79df6343d0ed4ea05d83b3ff1d849e8d25
      
https://github.com/qemu/qemu/commit/b2df6a79df6343d0ed4ea05d83b3ff1d849e8d25
  Author: Peter Maydell <address@hidden>
  Date:   2015-11-12 (Thu, 12 Nov 2015)

  Changed paths:
    M block.c
    M block/accounting.c
    M block/backup.c
    M block/block-backend.c
    M block/io.c
    M block/iscsi.c
    M block/mirror.c
    M block/qapi.c
    M block/qed.c
    M block/raw-posix.c
    M block/raw_bsd.c
    M blockdev.c
    M blockjob.c
    M docs/bitmaps.md
    M hmp.c
    M hw/block/nvme.c
    M hw/block/virtio-blk.c
    M hw/block/xen_disk.c
    M hw/ide/atapi.c
    M hw/ide/core.c
    M hw/ide/macio.c
    M hw/scsi/scsi-disk.c
    M include/block/accounting.h
    M include/block/block.h
    M include/block/block_int.h
    M include/block/blockjob.h
    A include/qemu/timed-average.h
    M qapi-schema.json
    M qapi/block-core.json
    M qemu-img.c
    M qemu-io-cmds.c
    M qmp-commands.hx
    M tests/Makefile
    M tests/qemu-iotests/124
    M tests/qemu-iotests/124.out
    A tests/qemu-iotests/136
    A tests/qemu-iotests/136.out
    M tests/qemu-iotests/group
    A tests/test-blockjob-txn.c
    A tests/test-timed-average.c
    M util/Makefile.objs
    A util/timed-average.c

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

Block layer patches (rebased Stefan's pull request)

# gpg: Signature made Thu 12 Nov 2015 15:34:16 GMT using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"

* remotes/kevin/tags/for-upstream: (43 commits)
  block: Update copyright of the accounting code
  scsi-disk: Account for failed operations
  macio: Account for failed operations
  ide: Account for failed and invalid operations
  atapi: Account for failed and invalid operations
  xen_disk: Account for failed and invalid operations
  virtio-blk: Account for failed and invalid operations
  nvme: Account for failed and invalid operations
  iotests: Add test for the block device statistics
  block: Use QEMU_CLOCK_VIRTUAL for the accounting code in qtest mode
  qemu-io: Account for failed, invalid and flush operations
  block: New option to define the intervals for collecting I/O statistics
  block: Add average I/O queue depth to BlockDeviceTimedStats
  block: Compute minimum, maximum and average I/O latencies
  block: Allow configuring whether to account failed and invalid ops
  block: Add statistics for failed and invalid I/O operations
  block: Add idle_time_ns to BlockDeviceStats
  util: Infrastructure for computing recent averages
  block: define 'clock_type' for the accounting code
  ide: Account for write operations correctly
  ...

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


Compare: https://github.com/qemu/qemu/compare/cfcc7c144879...b2df6a79df63

reply via email to

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