[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 06/16] coroutine: move into libqemuutil.a lib
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v1 06/16] coroutine: move into libqemuutil.a library |
Date: |
Tue, 22 Sep 2015 14:07:27 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 18/09/2015 15:19, Daniel P. Berrange wrote:
> The coroutine files are currently referenced by the block-obj-y
> variable. The coroutine functionality though is already used by
> more than just the block code. eg migration code uses coroutine
> yield. In the future the I/O channel code will also use the
> coroutine yield functionality. Since the coroutine code is nicely
> self-contained it can be easily built as part of the libqemuutil.a
> library, making it widely available.
>
> The headers are also moved into include/qemu, instead of the
> include/block directory, since they are now part of the util
> codebase, and the impl was never in the block/ directory
> either.
>
> Signed-off-by: Daniel P. Berrange <address@hidden>
Since you are at it, can you add an entry to the MAINTAINERS file,
assigning it to Stefan and Kevin?
Paolo
> ---
> Makefile.objs | 4 ----
> block.c | 2 +-
> block/qcow2.h | 2 +-
> block/vdi.c | 2 +-
> block/write-threshold.c | 2 +-
> blockjob.c | 2 +-
> hw/9pfs/codir.c | 2 +-
> hw/9pfs/cofile.c | 2 +-
> hw/9pfs/cofs.c | 2 +-
> hw/9pfs/coxattr.c | 2 +-
> hw/9pfs/virtio-9p-coth.c | 2 +-
> hw/9pfs/virtio-9p-coth.h | 2 +-
> hw/9pfs/virtio-9p.h | 2 +-
> include/block/block.h | 2 +-
> include/block/block_int.h | 2 +-
> include/{block => qemu}/coroutine.h | 0
> include/{block => qemu}/coroutine_int.h | 2 +-
> migration/qemu-file-buf.c | 2 +-
> migration/qemu-file-stdio.c | 2 +-
> migration/qemu-file-unix.c | 2 +-
> migration/qemu-file.c | 2 +-
> migration/rdma.c | 2 +-
> nbd.c | 2 +-
> tests/test-coroutine.c | 4 ++--
> tests/test-vmstate.c | 2 +-
> thread-pool.c | 2 +-
> util/Makefile.objs | 3 +++
> coroutine-gthread.c => util/coroutine-gthread.c | 2 +-
> coroutine-sigaltstack.c => util/coroutine-sigaltstack.c | 2 +-
> coroutine-ucontext.c => util/coroutine-ucontext.c | 2 +-
> coroutine-win32.c => util/coroutine-win32.c | 2 +-
> qemu-coroutine-io.c => util/qemu-coroutine-io.c | 2 +-
> qemu-coroutine-lock.c => util/qemu-coroutine-lock.c | 4 ++--
> qemu-coroutine-sleep.c => util/qemu-coroutine-sleep.c | 2 +-
> qemu-coroutine.c => util/qemu-coroutine.c | 4 ++--
> 35 files changed, 38 insertions(+), 39 deletions(-)
> rename include/{block => qemu}/coroutine.h (100%)
> rename include/{block => qemu}/coroutine_int.h (98%)
> rename coroutine-gthread.c => util/coroutine-gthread.c (99%)
> rename coroutine-sigaltstack.c => util/coroutine-sigaltstack.c (99%)
> rename coroutine-ucontext.c => util/coroutine-ucontext.c (99%)
> rename coroutine-win32.c => util/coroutine-win32.c (98%)
> rename qemu-coroutine-io.c => util/qemu-coroutine-io.c (99%)
> rename qemu-coroutine-lock.c => util/qemu-coroutine-lock.c (98%)
> rename qemu-coroutine-sleep.c => util/qemu-coroutine-sleep.c (96%)
> rename qemu-coroutine.c => util/qemu-coroutine.c (98%)
>
> diff --git a/Makefile.objs b/Makefile.objs
> index 3df2efc..2e94eaf 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -14,10 +14,6 @@ block-obj-$(CONFIG_WIN32) += aio-win32.o
> block-obj-y += block/
> block-obj-y += qemu-io-cmds.o
>
> -block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
> -block-obj-y += qemu-coroutine-sleep.o
> -block-obj-y += coroutine-$(CONFIG_COROUTINE_BACKEND).o
> -
> block-obj-m = block/
>
> #######################################################################
> diff --git a/block.c b/block.c
> index 6268e37..cfc9a13 100644
> --- a/block.c
> +++ b/block.c
> @@ -33,7 +33,7 @@
> #include "sysemu/block-backend.h"
> #include "sysemu/sysemu.h"
> #include "qemu/notify.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "block/qapi.h"
> #include "qmp-commands.h"
> #include "qemu/timer.h"
> diff --git a/block/qcow2.h b/block/qcow2.h
> index d700bf1..27b919c 100644
> --- a/block/qcow2.h
> +++ b/block/qcow2.h
> @@ -26,7 +26,7 @@
> #define BLOCK_QCOW2_H
>
> #include "crypto/cipher.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> //#define DEBUG_ALLOC
> //#define DEBUG_ALLOC2
> diff --git a/block/vdi.c b/block/vdi.c
> index 062a654..d662f41 100644
> --- a/block/vdi.c
> +++ b/block/vdi.c
> @@ -53,7 +53,7 @@
> #include "block/block_int.h"
> #include "qemu/module.h"
> #include "migration/migration.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> #if defined(CONFIG_UUID)
> #include <uuid/uuid.h>
> diff --git a/block/write-threshold.c b/block/write-threshold.c
> index a53c1f5..0fe3891 100644
> --- a/block/write-threshold.c
> +++ b/block/write-threshold.c
> @@ -11,7 +11,7 @@
> */
>
> #include "block/block_int.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "block/write-threshold.h"
> #include "qemu/notify.h"
> #include "qapi-event.h"
> diff --git a/blockjob.c b/blockjob.c
> index 62bb906..dc42d15 100644
> --- a/blockjob.c
> +++ b/blockjob.c
> @@ -31,7 +31,7 @@
> #include "block/block_int.h"
> #include "qapi/qmp/qerror.h"
> #include "qapi/qmp/qjson.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "qmp-commands.h"
> #include "qemu/timer.h"
> #include "qapi-event.h"
> diff --git a/hw/9pfs/codir.c b/hw/9pfs/codir.c
> index 65ad329..ec9cc7f 100644
> --- a/hw/9pfs/codir.c
> +++ b/hw/9pfs/codir.c
> @@ -14,7 +14,7 @@
>
> #include "fsdev/qemu-fsdev.h"
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p-coth.h"
>
> int v9fs_co_readdir_r(V9fsPDU *pdu, V9fsFidState *fidp, struct dirent *dent,
> diff --git a/hw/9pfs/cofile.c b/hw/9pfs/cofile.c
> index 2efebf3..7cb55ee 100644
> --- a/hw/9pfs/cofile.c
> +++ b/hw/9pfs/cofile.c
> @@ -14,7 +14,7 @@
>
> #include "fsdev/qemu-fsdev.h"
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p-coth.h"
>
> int v9fs_co_st_gen(V9fsPDU *pdu, V9fsPath *path, mode_t st_mode,
> diff --git a/hw/9pfs/cofs.c b/hw/9pfs/cofs.c
> index 42ee614..e1953a9 100644
> --- a/hw/9pfs/cofs.c
> +++ b/hw/9pfs/cofs.c
> @@ -14,7 +14,7 @@
>
> #include "fsdev/qemu-fsdev.h"
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p-coth.h"
>
> static ssize_t __readlink(V9fsState *s, V9fsPath *path, V9fsString *buf)
> diff --git a/hw/9pfs/coxattr.c b/hw/9pfs/coxattr.c
> index 18ee08d..55c0d23 100644
> --- a/hw/9pfs/coxattr.c
> +++ b/hw/9pfs/coxattr.c
> @@ -14,7 +14,7 @@
>
> #include "fsdev/qemu-fsdev.h"
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p-coth.h"
>
> int v9fs_co_llistxattr(V9fsPDU *pdu, V9fsPath *path, void *value, size_t
> size)
> diff --git a/hw/9pfs/virtio-9p-coth.c b/hw/9pfs/virtio-9p-coth.c
> index 8185c53..5057f8d 100644
> --- a/hw/9pfs/virtio-9p-coth.c
> +++ b/hw/9pfs/virtio-9p-coth.c
> @@ -15,7 +15,7 @@
> #include "fsdev/qemu-fsdev.h"
> #include "qemu/thread.h"
> #include "qemu/event_notifier.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p-coth.h"
>
> /* v9fs glib thread pool */
> diff --git a/hw/9pfs/virtio-9p-coth.h b/hw/9pfs/virtio-9p-coth.h
> index 4f51b25..0fbe49a 100644
> --- a/hw/9pfs/virtio-9p-coth.h
> +++ b/hw/9pfs/virtio-9p-coth.h
> @@ -16,7 +16,7 @@
> #define _QEMU_VIRTIO_9P_COTH_H
>
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "virtio-9p.h"
> #include <glib.h>
>
> diff --git a/hw/9pfs/virtio-9p.h b/hw/9pfs/virtio-9p.h
> index 2e7d488..d7a4dc1 100644
> --- a/hw/9pfs/virtio-9p.h
> +++ b/hw/9pfs/virtio-9p.h
> @@ -13,7 +13,7 @@
> #include "fsdev/file-op-9p.h"
> #include "fsdev/virtio-9p-marshal.h"
> #include "qemu/thread.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> enum {
> P9_TLERROR = 6,
> diff --git a/include/block/block.h b/include/block/block.h
> index ef67353..4d77291 100644
> --- a/include/block/block.h
> +++ b/include/block/block.h
> @@ -4,7 +4,7 @@
> #include "block/aio.h"
> #include "qemu-common.h"
> #include "qemu/option.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "block/accounting.h"
> #include "qapi/qmp/qobject.h"
> #include "qapi-types.h"
> diff --git a/include/block/block_int.h b/include/block/block_int.h
> index 14ad4c3..c37ed77 100644
> --- a/include/block/block_int.h
> +++ b/include/block/block_int.h
> @@ -28,7 +28,7 @@
> #include "block/block.h"
> #include "qemu/option.h"
> #include "qemu/queue.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "qemu/timer.h"
> #include "qapi-types.h"
> #include "qemu/hbitmap.h"
> diff --git a/include/block/coroutine.h b/include/qemu/coroutine.h
> similarity index 100%
> rename from include/block/coroutine.h
> rename to include/qemu/coroutine.h
> diff --git a/include/block/coroutine_int.h b/include/qemu/coroutine_int.h
> similarity index 98%
> rename from include/block/coroutine_int.h
> rename to include/qemu/coroutine_int.h
> index 9aa1aae..42d6838 100644
> --- a/include/block/coroutine_int.h
> +++ b/include/qemu/coroutine_int.h
> @@ -26,7 +26,7 @@
> #define QEMU_COROUTINE_INT_H
>
> #include "qemu/queue.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> typedef enum {
> COROUTINE_YIELD = 1,
> diff --git a/migration/qemu-file-buf.c b/migration/qemu-file-buf.c
> index 2de9330..556f5dc 100644
> --- a/migration/qemu-file-buf.c
> +++ b/migration/qemu-file-buf.c
> @@ -29,7 +29,7 @@
> #include "qemu/error-report.h"
> #include "qemu/iov.h"
> #include "qemu/sockets.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "migration/migration.h"
> #include "migration/qemu-file.h"
> #include "migration/qemu-file-internal.h"
> diff --git a/migration/qemu-file-stdio.c b/migration/qemu-file-stdio.c
> index 285068b..002dc5d 100644
> --- a/migration/qemu-file-stdio.c
> +++ b/migration/qemu-file-stdio.c
> @@ -22,7 +22,7 @@
> * THE SOFTWARE.
> */
> #include "qemu-common.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "migration/qemu-file.h"
>
> typedef struct QEMUFileStdio {
> diff --git a/migration/qemu-file-unix.c b/migration/qemu-file-unix.c
> index bfbc086..e4f195a 100644
> --- a/migration/qemu-file-unix.c
> +++ b/migration/qemu-file-unix.c
> @@ -24,7 +24,7 @@
> #include "qemu-common.h"
> #include "qemu/iov.h"
> #include "qemu/sockets.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "migration/qemu-file.h"
> #include "migration/qemu-file-internal.h"
>
> diff --git a/migration/qemu-file.c b/migration/qemu-file.c
> index 6bb3dc1..d2359c4 100644
> --- a/migration/qemu-file.c
> +++ b/migration/qemu-file.c
> @@ -26,7 +26,7 @@
> #include "qemu/error-report.h"
> #include "qemu/iov.h"
> #include "qemu/sockets.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "migration/migration.h"
> #include "migration/qemu-file.h"
> #include "migration/qemu-file-internal.h"
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 9424834..854fde4 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -19,7 +19,7 @@
> #include "qemu/main-loop.h"
> #include "qemu/sockets.h"
> #include "qemu/bitmap.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include <stdio.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> diff --git a/nbd.c b/nbd.c
> index 07240bd..1724a1f 100644
> --- a/nbd.c
> +++ b/nbd.c
> @@ -19,7 +19,7 @@
> #include "block/nbd.h"
> #include "sysemu/block-backend.h"
>
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> #include <errno.h>
> #include <string.h>
> diff --git a/tests/test-coroutine.c b/tests/test-coroutine.c
> index b552d9f..f5951cb 100644
> --- a/tests/test-coroutine.c
> +++ b/tests/test-coroutine.c
> @@ -12,8 +12,8 @@
> */
>
> #include <glib.h>
> -#include "block/coroutine.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine.h"
> +#include "qemu/coroutine_int.h"
>
> /*
> * Check that qemu_in_coroutine() works
> diff --git a/tests/test-vmstate.c b/tests/test-vmstate.c
> index 1d620e0..4d13bd0 100644
> --- a/tests/test-vmstate.c
> +++ b/tests/test-vmstate.c
> @@ -27,7 +27,7 @@
> #include "qemu-common.h"
> #include "migration/migration.h"
> #include "migration/vmstate.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
>
> static char temp_file[] = "/tmp/vmst.test.XXXXXX";
> static int temp_fd;
> diff --git a/thread-pool.c b/thread-pool.c
> index ac909f4..402c778 100644
> --- a/thread-pool.c
> +++ b/thread-pool.c
> @@ -18,7 +18,7 @@
> #include "qemu/queue.h"
> #include "qemu/thread.h"
> #include "qemu/osdep.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "trace.h"
> #include "block/thread-pool.h"
> #include "qemu/main-loop.h"
> diff --git a/util/Makefile.objs b/util/Makefile.objs
> index 114d657..d8d7e7a 100644
> --- a/util/Makefile.objs
> +++ b/util/Makefile.objs
> @@ -18,3 +18,6 @@ util-obj-y += getauxval.o
> util-obj-y += readline.o
> util-obj-y += rfifolock.o
> util-obj-y += rcu.o
> +util-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
> +util-obj-y += qemu-coroutine-sleep.o
> +util-obj-y += coroutine-$(CONFIG_COROUTINE_BACKEND).o
> diff --git a/coroutine-gthread.c b/util/coroutine-gthread.c
> similarity index 99%
> rename from coroutine-gthread.c
> rename to util/coroutine-gthread.c
> index 6bd6d6b..0bcd778 100644
> --- a/coroutine-gthread.c
> +++ b/util/coroutine-gthread.c
> @@ -20,7 +20,7 @@
>
> #include <glib.h>
> #include "qemu-common.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine_int.h"
>
> typedef struct {
> Coroutine base;
> diff --git a/coroutine-sigaltstack.c b/util/coroutine-sigaltstack.c
> similarity index 99%
> rename from coroutine-sigaltstack.c
> rename to util/coroutine-sigaltstack.c
> index 63519ff..39842a4 100644
> --- a/coroutine-sigaltstack.c
> +++ b/util/coroutine-sigaltstack.c
> @@ -31,7 +31,7 @@
> #include <pthread.h>
> #include <signal.h>
> #include "qemu-common.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine_int.h"
>
> typedef struct {
> Coroutine base;
> diff --git a/coroutine-ucontext.c b/util/coroutine-ucontext.c
> similarity index 99%
> rename from coroutine-ucontext.c
> rename to util/coroutine-ucontext.c
> index 259fcb4..26cbebb 100644
> --- a/coroutine-ucontext.c
> +++ b/util/coroutine-ucontext.c
> @@ -27,7 +27,7 @@
> #include <stdint.h>
> #include <ucontext.h>
> #include "qemu-common.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine_int.h"
>
> #ifdef CONFIG_VALGRIND_H
> #include <valgrind/valgrind.h>
> diff --git a/coroutine-win32.c b/util/coroutine-win32.c
> similarity index 98%
> rename from coroutine-win32.c
> rename to util/coroutine-win32.c
> index 17ace37..4f922c5 100644
> --- a/coroutine-win32.c
> +++ b/util/coroutine-win32.c
> @@ -23,7 +23,7 @@
> */
>
> #include "qemu-common.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine_int.h"
>
> typedef struct
> {
> diff --git a/qemu-coroutine-io.c b/util/qemu-coroutine-io.c
> similarity index 99%
> rename from qemu-coroutine-io.c
> rename to util/qemu-coroutine-io.c
> index 28dc735..e1eae73 100644
> --- a/qemu-coroutine-io.c
> +++ b/util/qemu-coroutine-io.c
> @@ -24,7 +24,7 @@
> */
> #include "qemu-common.h"
> #include "qemu/sockets.h"
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "qemu/iov.h"
> #include "qemu/main-loop.h"
>
> diff --git a/qemu-coroutine-lock.c b/util/qemu-coroutine-lock.c
> similarity index 98%
> rename from qemu-coroutine-lock.c
> rename to util/qemu-coroutine-lock.c
> index 6b49033..130ee19 100644
> --- a/qemu-coroutine-lock.c
> +++ b/util/qemu-coroutine-lock.c
> @@ -23,8 +23,8 @@
> */
>
> #include "qemu-common.h"
> -#include "block/coroutine.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine.h"
> +#include "qemu/coroutine_int.h"
> #include "qemu/queue.h"
> #include "trace.h"
>
> diff --git a/qemu-coroutine-sleep.c b/util/qemu-coroutine-sleep.c
> similarity index 96%
> rename from qemu-coroutine-sleep.c
> rename to util/qemu-coroutine-sleep.c
> index 9abb7fd..b35db56 100644
> --- a/qemu-coroutine-sleep.c
> +++ b/util/qemu-coroutine-sleep.c
> @@ -11,7 +11,7 @@
> *
> */
>
> -#include "block/coroutine.h"
> +#include "qemu/coroutine.h"
> #include "qemu/timer.h"
> #include "block/aio.h"
>
> diff --git a/qemu-coroutine.c b/util/qemu-coroutine.c
> similarity index 98%
> rename from qemu-coroutine.c
> rename to util/qemu-coroutine.c
> index c17a92b..8953560 100644
> --- a/qemu-coroutine.c
> +++ b/util/qemu-coroutine.c
> @@ -16,8 +16,8 @@
> #include "qemu-common.h"
> #include "qemu/thread.h"
> #include "qemu/atomic.h"
> -#include "block/coroutine.h"
> -#include "block/coroutine_int.h"
> +#include "qemu/coroutine.h"
> +#include "qemu/coroutine_int.h"
>
> enum {
> POOL_BATCH_SIZE = 64,
>
- Re: [Qemu-devel] [PATCH v1 07/16] io: add abstract QIOChannel classes, (continued)
[Qemu-devel] [PATCH v1 10/16] io: add QIOTask class for async operations, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 16/16] io: add QIOChannelBuffer class, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 08/16] io: add helper module for creating watches on FDs, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 11/16] io: add QIOChannelSocket class, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 04/16] ui: convert VNC startup code to use SocketAddress, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 06/16] coroutine: move into libqemuutil.a library, Daniel P. Berrange, 2015/09/18
- Re: [Qemu-devel] [PATCH v1 06/16] coroutine: move into libqemuutil.a library,
Paolo Bonzini <=
[Qemu-devel] [PATCH v1 09/16] io: pull Buffer code out of VNC module, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 03/16] sockets: allow port to be NULL when listening on IP address, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 01/16] sockets: add helpers for creating SocketAddress from a socket, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 15/16] io: add QIOChannelCommand class, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 13/16] io: add QIOChannelTLS class, Daniel P. Berrange, 2015/09/18
[Qemu-devel] [PATCH v1 12/16] io: add QIOChannelFile class, Daniel P. Berrange, 2015/09/18