[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 8ac9e2: libqos: use virtio_ids.h for device I
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 8ac9e2: libqos: use virtio_ids.h for device ID definitions |
Date: |
Mon, 20 Jun 2016 08:00:07 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 8ac9e205bd516d9cedbf28852d77c14ce977b74b
https://github.com/qemu/qemu/commit/8ac9e205bd516d9cedbf28852d77c14ce977b74b
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio.h
M tests/virtio-blk-test.c
M tests/virtio-net-test.c
M tests/virtio-scsi-test.c
Log Message:
-----------
libqos: use virtio_ids.h for device ID definitions
Avoid redefining device IDs. Use the standard Linux headers that are
already in the source tree.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: 7ad1e708e68426b4deaeb975636396ac4d6266b1
https://github.com/qemu/qemu/commit/7ad1e708e68426b4deaeb975636396ac4d6266b1
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio-pci.c
M tests/libqos/virtio.h
Log Message:
-----------
libqos: drop duplicated PCI vendor ID definition
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: 1373a4c2568282a8f998a778f09d9d628afcd7fd
https://github.com/qemu/qemu/commit/1373a4c2568282a8f998a778f09d9d628afcd7fd
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio.c
M tests/libqos/virtio.h
M tests/virtio-blk-test.c
Log Message:
-----------
libqos: drop duplicated virtio_config.h definitions
Note that VIRTIO_F_ANY_LAYOUT and VIRTIO_F_NOTIFY_ON_EMPTY are bit
numbers in virtio_config.h but bit masks in qtest virtio.h. Therefore
it's necessary to change users from X to (1u << X).
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: ee3b850a70613a9e0cedef8c79f76e9ee45cbef3
https://github.com/qemu/qemu/commit/ee3b850a70613a9e0cedef8c79f76e9ee45cbef3
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio-mmio.c
M tests/libqos/virtio-pci.c
M tests/libqos/virtio.c
M tests/libqos/virtio.h
M tests/virtio-blk-test.c
M tests/virtio-net-test.c
Log Message:
-----------
libqos: drop duplicated virtio_ring.h bit definitions
Note that virtio_ring.h defines feature bits using their bit number:
#define VIRTIO_RING_F_INDIRECT_DESC 28
On the other hand libqos virtio.h uses the bit mask:
#define QVIRTIO_F_RING_INDIRECT_DESC 0x10000000
The patch makes the necessary adjustments.
I have used "1u << BITMASK" instead of "1ULL << BITMASK" because the
64-bit feature fields are not implemented in libqos virtio.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: 780b11a097ada54306d43d6e64450e8d7e7a76e4
https://github.com/qemu/qemu/commit/780b11a097ada54306d43d6e64450e8d7e7a76e4
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio.c
M tests/libqos/virtio.h
Log Message:
-----------
libqos: drop duplicated virtio_vring.h structs
The descriptor element, used, and avail vring structs are defined in
virtio_ring.h. There is no need to duplicate them in libqos virtio.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: 4565a3e02998d1e12e3218fa230c5f29fd2bcd2e
https://github.com/qemu/qemu/commit/4565a3e02998d1e12e3218fa230c5f29fd2bcd2e
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/virtio-blk-test.c
Log Message:
-----------
libqos: drop duplicated virtio_blk.h definitions
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: 74f079a7eea9719e444b1e5162743ae1673a9813
https://github.com/qemu/qemu/commit/74f079a7eea9719e444b1e5162743ae1673a9813
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/virtio-scsi-test.c
Log Message:
-----------
libqos: drop duplicated virtio_scsi.h definitions
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: c75f4c061bacad0c41708bf17d526fac72314ad0
https://github.com/qemu/qemu/commit/c75f4c061bacad0c41708bf17d526fac72314ad0
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio-pci.c
M tests/libqos/virtio-pci.h
M tests/virtio-blk-test.c
M tests/virtio-scsi-test.c
Log Message:
-----------
libqos: drop duplicated virtio_pci.h definitions
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Commit: f1d3b99154138741161fc52f5a8c373bf71613c6
https://github.com/qemu/qemu/commit/f1d3b99154138741161fc52f5a8c373bf71613c6
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M tests/libqos/virtio-mmio.c
M tests/libqos/virtio-pci.c
M tests/libqos/virtio.c
M tests/libqos/virtio.h
M tests/virtio-blk-test.c
M tests/virtio-net-test.c
M tests/virtio-scsi-test.c
Log Message:
-----------
libqos: add qvirtqueue_cleanup()
qvirtqueue_setup() allocates the vring and virtqueue state. So far
there has been no function to free it. Callers have been using
guest_free() for the vring but forgot to free the QVirtQueue state.
This patch solves the memory leak by introducing qvirtqueue_cleanup().
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 3a36e474f2ca74ebd4f36044823a625389dfef01
https://github.com/qemu/qemu/commit/3a36e474f2ca74ebd4f36044823a625389dfef01
Author: Denis V. Lunev <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block/io.c
Log Message:
-----------
block: fixed BdrvTrackedRequest filling in bdrv_co_discard
The request area is specified in bytes, not in sectors.
Signed-off-by: Denis V. Lunev <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy<address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
CC: Stefan Hajnoczi <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Max Reitz <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 968d8b0627d3585d6b82da4239b9adf98614ab7c
https://github.com/qemu/qemu/commit/968d8b0627d3585d6b82da4239b9adf98614ab7c
Author: Denis V. Lunev <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block/io.c
Log Message:
-----------
block: fix race in bdrv_co_discard with drive-mirror
Actually we must set dirty bitmap dirty after we have written all our
zeroes for correct processing in drive mirror code. In the other case
we can face not zeroes in this area in mirror_iteration.
Signed-off-by: Denis V. Lunev <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy<address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
CC: Stefan Hajnoczi <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Max Reitz <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: ec050f77a549b300ee444634bccd9ec05d134c4d
https://github.com/qemu/qemu/commit/ec050f77a549b300ee444634bccd9ec05d134c4d
Author: Denis V. Lunev <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block/io.c
Log Message:
-----------
block: process before_write_notifiers in bdrv_co_discard
This is mandatory for correct backup creation. In the other case the
content under this area would be lost.
Dirty bits are set exactly like in bdrv_aligned_pwritev, i.e. they are set
even if notifier has returned a error.
Signed-off-by: Denis V. Lunev <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy<address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-id: address@hidden
CC: Fam Zheng <address@hidden>
CC: Stefan Hajnoczi <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Max Reitz <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 17bd51f936ac0719ef7a93fb77e30313b55c83b5
https://github.com/qemu/qemu/commit/17bd51f936ac0719ef7a93fb77e30313b55c83b5
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M blockdev.c
M blockjob.c
Log Message:
-----------
blockjob: move iostatus reset out of block_job_enter()
The QMP block-job-resume command and cancellation may want to reset the
job's iostatus. The next patches add a user who does not want to reset
iostatus so move it up to block_job_enter() callers.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Commit: a7f3b7ff03a4712b9fc1089cc568eea7296af069
https://github.com/qemu/qemu/commit/a7f3b7ff03a4712b9fc1089cc568eea7296af069
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M blockjob.c
M include/block/blockjob.h
Log Message:
-----------
blockjob: rename block_job_is_paused()
The block_job_is_paused() function name is not great because callers
only use it to determine whether pausing has been requested. Rename it
to highlight those semantics and remove it from the public header file
as there are no external callers.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: fc9c0a9c4b2c07cf2b8683f2617af584f14c93e7
https://github.com/qemu/qemu/commit/fc9c0a9c4b2c07cf2b8683f2617af584f14c93e7
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M blockjob.c
M include/block/blockjob.h
Log Message:
-----------
blockjob: add pause points
Block jobs are coroutines that usually perform I/O but sometimes also
sleep or yield. Currently only sleeping or yielded block jobs can be
paused. This means jobs that do not sleep or yield (using
block_job_yield()) are unaffected by block_job_pause().
Add block_job_pause_point() so that block jobs can mark quiescent points
that are suitable for pausing. This solves the problem that it can take
a block job a long time to pause if it is performing a long series of
I/O operations.
Transitioning to paused state involves a .pause()/.resume() callback.
These callbacks are used to ensure that I/O and event loop activity has
ceased while the job is at a pause point.
Note that this patch introduces a stricter pause state than previously.
The job->busy flag was incorrectly documented as a quiescent state
without I/O pending. This is violated by any job that has I/O pending
across sleep or block_job_yield(), like the mirror block job.
[Add missing block_job_should_pause() check to avoid deadlock after
job->driver->pause() in block_job_pause_point().
--Stefan]
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: 9f6bc648c40da61a50ea1f51048368faeea5d9a1
https://github.com/qemu/qemu/commit/9f6bc648c40da61a50ea1f51048368faeea5d9a1
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M blockjob.c
Log Message:
-----------
blockjob: add block_job_get_aio_context()
Add a helper function to document why block jobs sometimes run in the
QEMU main loop and to avoid code duplication in a following patch.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: e8a095dadb70e2ea6d5169d261920db3747bfa45
https://github.com/qemu/qemu/commit/e8a095dadb70e2ea6d5169d261920db3747bfa45
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block.c
M include/block/block_int.h
Log Message:
-----------
block: use safe iteration over AioContext notifiers
It's possible that an AioContext notifier user was close to finishing
when .detach_aio_context() or .attached_aio_context() is called. In
that case they may call bdrv_remove_aio_context_notifier() during the
callback.
Use safe iteration to avoid crashing when the notifier list is modified
during iteration. We must not only handle the case where the current
aio notifier is removed during a callback but also the one where any
other aio notifier is removed.
The next patch adds an AioContext notifier for block jobs and they
really could be terminating just as .detach_aio_context() is invoked.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: 463e0be101cb5a78ca6ee517d58604c3f3637bcd
https://github.com/qemu/qemu/commit/463e0be101cb5a78ca6ee517d58604c3f3637bcd
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M blockjob.c
M include/block/blockjob.h
Log Message:
-----------
blockjob: add AioContext attached callback
Block jobs that use additional BDSes or event loop resources need a
callback to get their affairs in order when the AioContext is switched.
Simple block jobs don't need an attach callback, they automatically work
thanks to the generic attach/detach notifiers that this patch adds.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: 565ac01f8d35236844dd0257a185f81425cd4b6a
https://github.com/qemu/qemu/commit/565ac01f8d35236844dd0257a185f81425cd4b6a
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block/mirror.c
Log Message:
-----------
mirror: follow AioContext change gracefully
Add block_job_pause_point() calls to mark quiescent points and make sure
to complete in-flight requests when switching AioContexts.
This patch solves undefined behavior in the mirror block job when the
BDS AioContext is changed by dataplane.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
Commit: 5ab4b69ce29908b327a91966dc78ea0fd7424075
https://github.com/qemu/qemu/commit/5ab4b69ce29908b327a91966dc78ea0fd7424075
Author: Stefan Hajnoczi <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block/backup.c
Log Message:
-----------
backup: follow AioContext change gracefully
Move s->target to the new AioContext when there is an AioContext change.
The backup_run() coroutine does not use asynchronous I/O so there is no
need to wait for in-flight requests in a BlockJobDriver->pause()
callback.
Guest writes are intercepted by the backup job. Treat them as guest
activity and do it even while the job is paused. This is necessary
since the only alternative would be to fail a job that experienced guest
writes during pause once the job is resumed. In practice the guest
writes don't interfere with AioContext switching since bdrv_drain() is
used by bdrv_set_aio_context().
Loops already contain pause points because of block_job_sleep_ns() calls
in the yield_and_check() helper function. It is necessary to convert a
raw qemu_coroutine_yield() to block_job_yield() so the
MIRROR_SYNC_MODE_NONE case can pause.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Commit: fd2590bccc0bd63833813592a3e193686cf1c623
https://github.com/qemu/qemu/commit/fd2590bccc0bd63833813592a3e193686cf1c623
Author: Peter Maydell <address@hidden>
Date: 2016-06-20 (Mon, 20 Jun 2016)
Changed paths:
M block.c
M block/backup.c
M block/io.c
M block/mirror.c
M blockdev.c
M blockjob.c
M include/block/block_int.h
M include/block/blockjob.h
M tests/libqos/virtio-mmio.c
M tests/libqos/virtio-pci.c
M tests/libqos/virtio-pci.h
M tests/libqos/virtio.c
M tests/libqos/virtio.h
M tests/virtio-blk-test.c
M tests/virtio-net-test.c
M tests/virtio-scsi-test.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into
staging
# gpg: Signature made Mon 20 Jun 2016 15:05:24 BST
# gpg: using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>"
# gpg: aka "Stefan Hajnoczi <address@hidden>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* remotes/stefanha/tags/block-pull-request:
backup: follow AioContext change gracefully
mirror: follow AioContext change gracefully
blockjob: add AioContext attached callback
block: use safe iteration over AioContext notifiers
blockjob: add block_job_get_aio_context()
blockjob: add pause points
blockjob: rename block_job_is_paused()
blockjob: move iostatus reset out of block_job_enter()
block: process before_write_notifiers in bdrv_co_discard
block: fix race in bdrv_co_discard with drive-mirror
block: fixed BdrvTrackedRequest filling in bdrv_co_discard
libqos: add qvirtqueue_cleanup()
libqos: drop duplicated virtio_pci.h definitions
libqos: drop duplicated virtio_scsi.h definitions
libqos: drop duplicated virtio_blk.h definitions
libqos: drop duplicated virtio_vring.h structs
libqos: drop duplicated virtio_ring.h bit definitions
libqos: drop duplicated virtio_config.h definitions
libqos: drop duplicated PCI vendor ID definition
libqos: use virtio_ids.h for device ID definitions
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/5edbd4e30426...fd2590bccc0b
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 8ac9e2: libqos: use virtio_ids.h for device ID definitions,
GitHub <=