qemu-commits
[Top][All Lists]
Advanced

[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

reply via email to

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