Message ID | 1409036239-592-1-git-send-email-famz@redhat.com |
---|---|
State | New |
Headers | show |
Il 26/08/2014 08:57, Fam Zheng ha scritto: > Dataplane doesn't depend on linux-aio any more, so we don't need the > compiling condition now. > > Configure options are kept but just print a message. > > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > configure | 21 ++------------------- > hw/block/Makefile.objs | 2 +- > hw/block/virtio-blk.c | 22 ++-------------------- > hw/virtio/Makefile.objs | 2 +- > include/hw/virtio/virtio-blk.h | 2 -- > 5 files changed, 6 insertions(+), 43 deletions(-) > > diff --git a/configure b/configure > index 2063cf6..68cb4d2 100755 > --- a/configure > +++ b/configure > @@ -327,7 +327,6 @@ glusterfs="" > glusterfs_discard="no" > glusterfs_zerofill="no" > archipelago="" > -virtio_blk_data_plane="" > gtk="" > gtkabi="" > vte="" > @@ -1092,9 +1091,8 @@ for opt do > ;; > --enable-archipelago) archipelago="yes" > ;; > - --disable-virtio-blk-data-plane) virtio_blk_data_plane="no" > - ;; > - --enable-virtio-blk-data-plane) virtio_blk_data_plane="yes" > + --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane) > + echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2 > ;; > --disable-gtk) gtk="no" > ;; > @@ -2936,16 +2934,6 @@ else > fi > > ########################################## > -# adjust virtio-blk-data-plane based on linux-aio > - > -if test "$virtio_blk_data_plane" = "yes" -a \ > - "$linux_aio" != "yes" ; then > - error_exit "virtio-blk-data-plane requires Linux AIO, please try --enable-linux-aio" > -elif test -z "$virtio_blk_data_plane" ; then > - virtio_blk_data_plane=$linux_aio > -fi > - > -########################################## > # attr probe > > if test "$attr" != "no" ; then > @@ -4319,7 +4307,6 @@ echo "coroutine backend $coroutine" > echo "coroutine pool $coroutine_pool" > echo "GlusterFS support $glusterfs" > echo "Archipelago support $archipelago" > -echo "virtio-blk-data-plane $virtio_blk_data_plane" > echo "gcov $gcov_tool" > echo "gcov enabled $gcov" > echo "TPM support $tpm" > @@ -4778,10 +4765,6 @@ if test "$quorum" = "yes" ; then > echo "CONFIG_QUORUM=y" >> $config_host_mak > fi > > -if test "$virtio_blk_data_plane" = "yes" ; then > - echo 'CONFIG_VIRTIO_BLK_DATA_PLANE=$(CONFIG_VIRTIO)' >> $config_host_mak > -fi > - > if test "$vhdx" = "yes" ; then > echo "CONFIG_VHDX=y" >> $config_host_mak > fi > diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs > index bf46f03..d4c3ab7 100644 > --- a/hw/block/Makefile.objs > +++ b/hw/block/Makefile.objs > @@ -12,4 +12,4 @@ common-obj-$(CONFIG_NVME_PCI) += nvme.o > obj-$(CONFIG_SH4) += tc58128.o > > obj-$(CONFIG_VIRTIO) += virtio-blk.o > -obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ > +obj-$(CONFIG_VIRTIO) += dataplane/ > diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c > index d9167ce..643eb2f 100644 > --- a/hw/block/virtio-blk.c > +++ b/hw/block/virtio-blk.c > @@ -18,10 +18,8 @@ > #include "hw/block/block.h" > #include "sysemu/blockdev.h" > #include "hw/virtio/virtio-blk.h" > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > -# include "dataplane/virtio-blk.h" > -# include "migration/migration.h" > -#endif > +#include "dataplane/virtio-blk.h" > +#include "migration/migration.h" > #include "block/scsi.h" > #ifdef __linux__ > # include <scsi/sg.h> > @@ -432,7 +430,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > .num_writes = 0, > }; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start > * dataplane here instead of waiting for .set_status(). > */ > @@ -440,7 +437,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > virtio_blk_data_plane_start(s->dataplane); > return; > } > -#endif > > while ((req = virtio_blk_get_request(s))) { > virtio_blk_handle_request(req, &mrb); > @@ -497,11 +493,9 @@ static void virtio_blk_reset(VirtIODevice *vdev) > { > VirtIOBlock *s = VIRTIO_BLK(vdev); > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > if (s->dataplane) { > virtio_blk_data_plane_stop(s->dataplane); > } > -#endif > > /* > * This should cancel pending requests, but can't do nicely until there > @@ -591,12 +585,10 @@ static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status) > VirtIOBlock *s = VIRTIO_BLK(vdev); > uint32_t features; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > if (s->dataplane && !(status & (VIRTIO_CONFIG_S_DRIVER | > VIRTIO_CONFIG_S_DRIVER_OK))) { > virtio_blk_data_plane_stop(s->dataplane); > } > -#endif > > if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) { > return; > @@ -691,7 +683,6 @@ static const BlockDevOps virtio_block_ops = { > .resize_cb = virtio_blk_resize, > }; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > /* Disable dataplane thread during live migration since it does not > * update the dirty memory bitmap yet. > */ > @@ -722,16 +713,13 @@ static void virtio_blk_migration_state_changed(Notifier *notifier, void *data) > } > } > } > -#endif /* CONFIG_VIRTIO_BLK_DATA_PLANE */ > > static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > { > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > VirtIOBlock *s = VIRTIO_BLK(dev); > VirtIOBlkConf *blk = &(s->blk); > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > Error *err = NULL; > -#endif > static int virtio_blk_id; > > if (!blk->conf.bs) { > @@ -760,7 +748,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > > s->vq = virtio_add_queue(vdev, 128, virtio_blk_handle_output); > s->complete_request = virtio_blk_complete_request; > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > virtio_blk_data_plane_create(vdev, blk, &s->dataplane, &err); > if (err != NULL) { > error_propagate(errp, err); > @@ -769,7 +756,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > } > s->migration_state_notifier.notify = virtio_blk_migration_state_changed; > add_migration_state_change_notifier(&s->migration_state_notifier); > -#endif > > s->change = qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); > register_savevm(dev, "virtio-blk", virtio_blk_id++, 2, > @@ -787,11 +773,9 @@ static void virtio_blk_device_unrealize(DeviceState *dev, Error **errp) > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > VirtIOBlock *s = VIRTIO_BLK(dev); > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > remove_migration_state_change_notifier(&s->migration_state_notifier); > virtio_blk_data_plane_destroy(s->dataplane); > s->dataplane = NULL; > -#endif > qemu_del_vm_change_state_handler(s->change); > unregister_savevm(dev, "virtio-blk", s); > blockdev_mark_auto_del(s->bs); > @@ -816,9 +800,7 @@ static Property virtio_blk_properties[] = { > #ifdef __linux__ > DEFINE_PROP_BIT("scsi", VirtIOBlock, blk.scsi, 0, true), > #endif > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > DEFINE_PROP_BIT("x-data-plane", VirtIOBlock, blk.data_plane, 0, false), > -#endif > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs > index ec9e855..d21c397 100644 > --- a/hw/virtio/Makefile.objs > +++ b/hw/virtio/Makefile.objs > @@ -2,7 +2,7 @@ common-obj-y += virtio-rng.o > common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o > common-obj-y += virtio-bus.o > common-obj-y += virtio-mmio.o > -common-obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ > +common-obj-$(CONFIG_VIRTIO) += dataplane/ > > obj-y += virtio.o virtio-balloon.o > obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o > diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h > index afb7b8d..f4c5239 100644 > --- a/include/hw/virtio/virtio-blk.h > +++ b/include/hw/virtio/virtio-blk.h > @@ -131,10 +131,8 @@ typedef struct VirtIOBlock { > VMChangeStateEntry *change; > /* Function to push to vq and notify guest */ > void (*complete_request)(struct VirtIOBlockReq *req, unsigned char status); > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > Notifier migration_state_notifier; > struct VirtIOBlockDataPlane *dataplane; > -#endif > } VirtIOBlock; > > typedef struct MultiReqBuffer { > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
The Tuesday 26 Aug 2014 à 14:57:19 (+0800), Fam Zheng wrote : > Dataplane doesn't depend on linux-aio any more, so we don't need the > compiling condition now. > > Configure options are kept but just print a message. > > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > configure | 21 ++------------------- > hw/block/Makefile.objs | 2 +- > hw/block/virtio-blk.c | 22 ++-------------------- > hw/virtio/Makefile.objs | 2 +- > include/hw/virtio/virtio-blk.h | 2 -- > 5 files changed, 6 insertions(+), 43 deletions(-) > > diff --git a/configure b/configure > index 2063cf6..68cb4d2 100755 > --- a/configure > +++ b/configure > @@ -327,7 +327,6 @@ glusterfs="" > glusterfs_discard="no" > glusterfs_zerofill="no" > archipelago="" > -virtio_blk_data_plane="" > gtk="" > gtkabi="" > vte="" > @@ -1092,9 +1091,8 @@ for opt do > ;; > --enable-archipelago) archipelago="yes" > ;; > - --disable-virtio-blk-data-plane) virtio_blk_data_plane="no" > - ;; > - --enable-virtio-blk-data-plane) virtio_blk_data_plane="yes" > + --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane) > + echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2 > ;; > --disable-gtk) gtk="no" > ;; > @@ -2936,16 +2934,6 @@ else > fi > > ########################################## > -# adjust virtio-blk-data-plane based on linux-aio > - > -if test "$virtio_blk_data_plane" = "yes" -a \ > - "$linux_aio" != "yes" ; then > - error_exit "virtio-blk-data-plane requires Linux AIO, please try --enable-linux-aio" > -elif test -z "$virtio_blk_data_plane" ; then > - virtio_blk_data_plane=$linux_aio > -fi > - > -########################################## > # attr probe > > if test "$attr" != "no" ; then > @@ -4319,7 +4307,6 @@ echo "coroutine backend $coroutine" > echo "coroutine pool $coroutine_pool" > echo "GlusterFS support $glusterfs" > echo "Archipelago support $archipelago" > -echo "virtio-blk-data-plane $virtio_blk_data_plane" > echo "gcov $gcov_tool" > echo "gcov enabled $gcov" > echo "TPM support $tpm" > @@ -4778,10 +4765,6 @@ if test "$quorum" = "yes" ; then > echo "CONFIG_QUORUM=y" >> $config_host_mak > fi > > -if test "$virtio_blk_data_plane" = "yes" ; then > - echo 'CONFIG_VIRTIO_BLK_DATA_PLANE=$(CONFIG_VIRTIO)' >> $config_host_mak > -fi > - > if test "$vhdx" = "yes" ; then > echo "CONFIG_VHDX=y" >> $config_host_mak > fi > diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs > index bf46f03..d4c3ab7 100644 > --- a/hw/block/Makefile.objs > +++ b/hw/block/Makefile.objs > @@ -12,4 +12,4 @@ common-obj-$(CONFIG_NVME_PCI) += nvme.o > obj-$(CONFIG_SH4) += tc58128.o > > obj-$(CONFIG_VIRTIO) += virtio-blk.o > -obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ > +obj-$(CONFIG_VIRTIO) += dataplane/ > diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c > index d9167ce..643eb2f 100644 > --- a/hw/block/virtio-blk.c > +++ b/hw/block/virtio-blk.c > @@ -18,10 +18,8 @@ > #include "hw/block/block.h" > #include "sysemu/blockdev.h" > #include "hw/virtio/virtio-blk.h" > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > -# include "dataplane/virtio-blk.h" > -# include "migration/migration.h" > -#endif > +#include "dataplane/virtio-blk.h" > +#include "migration/migration.h" > #include "block/scsi.h" > #ifdef __linux__ > # include <scsi/sg.h> > @@ -432,7 +430,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > .num_writes = 0, > }; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start > * dataplane here instead of waiting for .set_status(). > */ > @@ -440,7 +437,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) > virtio_blk_data_plane_start(s->dataplane); > return; > } > -#endif > > while ((req = virtio_blk_get_request(s))) { > virtio_blk_handle_request(req, &mrb); > @@ -497,11 +493,9 @@ static void virtio_blk_reset(VirtIODevice *vdev) > { > VirtIOBlock *s = VIRTIO_BLK(vdev); > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > if (s->dataplane) { > virtio_blk_data_plane_stop(s->dataplane); > } > -#endif > > /* > * This should cancel pending requests, but can't do nicely until there > @@ -591,12 +585,10 @@ static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status) > VirtIOBlock *s = VIRTIO_BLK(vdev); > uint32_t features; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > if (s->dataplane && !(status & (VIRTIO_CONFIG_S_DRIVER | > VIRTIO_CONFIG_S_DRIVER_OK))) { > virtio_blk_data_plane_stop(s->dataplane); > } > -#endif > > if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) { > return; > @@ -691,7 +683,6 @@ static const BlockDevOps virtio_block_ops = { > .resize_cb = virtio_blk_resize, > }; > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > /* Disable dataplane thread during live migration since it does not > * update the dirty memory bitmap yet. > */ > @@ -722,16 +713,13 @@ static void virtio_blk_migration_state_changed(Notifier *notifier, void *data) > } > } > } > -#endif /* CONFIG_VIRTIO_BLK_DATA_PLANE */ > > static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > { > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > VirtIOBlock *s = VIRTIO_BLK(dev); > VirtIOBlkConf *blk = &(s->blk); > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > Error *err = NULL; > -#endif > static int virtio_blk_id; > > if (!blk->conf.bs) { > @@ -760,7 +748,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > > s->vq = virtio_add_queue(vdev, 128, virtio_blk_handle_output); > s->complete_request = virtio_blk_complete_request; > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > virtio_blk_data_plane_create(vdev, blk, &s->dataplane, &err); > if (err != NULL) { > error_propagate(errp, err); > @@ -769,7 +756,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) > } > s->migration_state_notifier.notify = virtio_blk_migration_state_changed; > add_migration_state_change_notifier(&s->migration_state_notifier); > -#endif > > s->change = qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); > register_savevm(dev, "virtio-blk", virtio_blk_id++, 2, > @@ -787,11 +773,9 @@ static void virtio_blk_device_unrealize(DeviceState *dev, Error **errp) > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > VirtIOBlock *s = VIRTIO_BLK(dev); > > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > remove_migration_state_change_notifier(&s->migration_state_notifier); > virtio_blk_data_plane_destroy(s->dataplane); > s->dataplane = NULL; > -#endif > qemu_del_vm_change_state_handler(s->change); > unregister_savevm(dev, "virtio-blk", s); > blockdev_mark_auto_del(s->bs); > @@ -816,9 +800,7 @@ static Property virtio_blk_properties[] = { > #ifdef __linux__ > DEFINE_PROP_BIT("scsi", VirtIOBlock, blk.scsi, 0, true), > #endif > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > DEFINE_PROP_BIT("x-data-plane", VirtIOBlock, blk.data_plane, 0, false), > -#endif > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs > index ec9e855..d21c397 100644 > --- a/hw/virtio/Makefile.objs > +++ b/hw/virtio/Makefile.objs > @@ -2,7 +2,7 @@ common-obj-y += virtio-rng.o > common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o > common-obj-y += virtio-bus.o > common-obj-y += virtio-mmio.o > -common-obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ > +common-obj-$(CONFIG_VIRTIO) += dataplane/ > > obj-y += virtio.o virtio-balloon.o > obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o > diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h > index afb7b8d..f4c5239 100644 > --- a/include/hw/virtio/virtio-blk.h > +++ b/include/hw/virtio/virtio-blk.h > @@ -131,10 +131,8 @@ typedef struct VirtIOBlock { > VMChangeStateEntry *change; > /* Function to push to vq and notify guest */ > void (*complete_request)(struct VirtIOBlockReq *req, unsigned char status); > -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > Notifier migration_state_notifier; > struct VirtIOBlockDataPlane *dataplane; > -#endif > } VirtIOBlock; > > typedef struct MultiReqBuffer { > -- > 2.1.0 > > Reviewed-by: Benoît Canet <benoit.canet@nodalink.com>
On Tue, Aug 26, 2014 at 02:57:19PM +0800, Fam Zheng wrote: > Dataplane doesn't depend on linux-aio any more, so we don't need the > compiling condition now. > > Configure options are kept but just print a message. > > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > configure | 21 ++------------------- > hw/block/Makefile.objs | 2 +- > hw/block/virtio-blk.c | 22 ++-------------------- > hw/virtio/Makefile.objs | 2 +- > include/hw/virtio/virtio-blk.h | 2 -- > 5 files changed, 6 insertions(+), 43 deletions(-) Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
On Tue, Aug 26, 2014 at 02:57:19PM +0800, Fam Zheng wrote: > Dataplane doesn't depend on linux-aio any more, so we don't need the > compiling condition now. > > Configure options are kept but just print a message. > > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > configure | 21 ++------------------- > hw/block/Makefile.objs | 2 +- > hw/block/virtio-blk.c | 22 ++-------------------- > hw/virtio/Makefile.objs | 2 +- > include/hw/virtio/virtio-blk.h | 2 -- > 5 files changed, 6 insertions(+), 43 deletions(-) Oops, mingw cross-compiling no longer works: In file included from hw/virtio/dataplane/vring.c:21:0: /home/stefanha/qemu/include/hw/virtio/dataplane/vring.h:20:31: fatal error: linux/virtio_ring.h: No such file or directory #include <linux/virtio_ring.h> ^ compilation terminated. make: *** [hw/virtio/dataplane/vring.o] Error 1 I have dropped this patch for now. Stefan
On Thu, 08/28 14:56, Stefan Hajnoczi wrote: > On Tue, Aug 26, 2014 at 02:57:19PM +0800, Fam Zheng wrote: > > Dataplane doesn't depend on linux-aio any more, so we don't need the > > compiling condition now. > > > > Configure options are kept but just print a message. > > > > Signed-off-by: Fam Zheng <famz@redhat.com> > > --- > > configure | 21 ++------------------- > > hw/block/Makefile.objs | 2 +- > > hw/block/virtio-blk.c | 22 ++-------------------- > > hw/virtio/Makefile.objs | 2 +- > > include/hw/virtio/virtio-blk.h | 2 -- > > 5 files changed, 6 insertions(+), 43 deletions(-) > > Oops, mingw cross-compiling no longer works: > > In file included from hw/virtio/dataplane/vring.c:21:0: > /home/stefanha/qemu/include/hw/virtio/dataplane/vring.h:20:31: fatal error: linux/virtio_ring.h: No such file or directory > #include <linux/virtio_ring.h> > ^ > compilation terminated. > make: *** [hw/virtio/dataplane/vring.o] Error 1 > > I have dropped this patch for now. > Ah. So dataplane is still conditional. I'll try again. Fam
diff --git a/configure b/configure index 2063cf6..68cb4d2 100755 --- a/configure +++ b/configure @@ -327,7 +327,6 @@ glusterfs="" glusterfs_discard="no" glusterfs_zerofill="no" archipelago="" -virtio_blk_data_plane="" gtk="" gtkabi="" vte="" @@ -1092,9 +1091,8 @@ for opt do ;; --enable-archipelago) archipelago="yes" ;; - --disable-virtio-blk-data-plane) virtio_blk_data_plane="no" - ;; - --enable-virtio-blk-data-plane) virtio_blk_data_plane="yes" + --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane) + echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2 ;; --disable-gtk) gtk="no" ;; @@ -2936,16 +2934,6 @@ else fi ########################################## -# adjust virtio-blk-data-plane based on linux-aio - -if test "$virtio_blk_data_plane" = "yes" -a \ - "$linux_aio" != "yes" ; then - error_exit "virtio-blk-data-plane requires Linux AIO, please try --enable-linux-aio" -elif test -z "$virtio_blk_data_plane" ; then - virtio_blk_data_plane=$linux_aio -fi - -########################################## # attr probe if test "$attr" != "no" ; then @@ -4319,7 +4307,6 @@ echo "coroutine backend $coroutine" echo "coroutine pool $coroutine_pool" echo "GlusterFS support $glusterfs" echo "Archipelago support $archipelago" -echo "virtio-blk-data-plane $virtio_blk_data_plane" echo "gcov $gcov_tool" echo "gcov enabled $gcov" echo "TPM support $tpm" @@ -4778,10 +4765,6 @@ if test "$quorum" = "yes" ; then echo "CONFIG_QUORUM=y" >> $config_host_mak fi -if test "$virtio_blk_data_plane" = "yes" ; then - echo 'CONFIG_VIRTIO_BLK_DATA_PLANE=$(CONFIG_VIRTIO)' >> $config_host_mak -fi - if test "$vhdx" = "yes" ; then echo "CONFIG_VHDX=y" >> $config_host_mak fi diff --git a/hw/block/Makefile.objs b/hw/block/Makefile.objs index bf46f03..d4c3ab7 100644 --- a/hw/block/Makefile.objs +++ b/hw/block/Makefile.objs @@ -12,4 +12,4 @@ common-obj-$(CONFIG_NVME_PCI) += nvme.o obj-$(CONFIG_SH4) += tc58128.o obj-$(CONFIG_VIRTIO) += virtio-blk.o -obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ +obj-$(CONFIG_VIRTIO) += dataplane/ diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index d9167ce..643eb2f 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -18,10 +18,8 @@ #include "hw/block/block.h" #include "sysemu/blockdev.h" #include "hw/virtio/virtio-blk.h" -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE -# include "dataplane/virtio-blk.h" -# include "migration/migration.h" -#endif +#include "dataplane/virtio-blk.h" +#include "migration/migration.h" #include "block/scsi.h" #ifdef __linux__ # include <scsi/sg.h> @@ -432,7 +430,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) .num_writes = 0, }; -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE /* Some guests kick before setting VIRTIO_CONFIG_S_DRIVER_OK so start * dataplane here instead of waiting for .set_status(). */ @@ -440,7 +437,6 @@ static void virtio_blk_handle_output(VirtIODevice *vdev, VirtQueue *vq) virtio_blk_data_plane_start(s->dataplane); return; } -#endif while ((req = virtio_blk_get_request(s))) { virtio_blk_handle_request(req, &mrb); @@ -497,11 +493,9 @@ static void virtio_blk_reset(VirtIODevice *vdev) { VirtIOBlock *s = VIRTIO_BLK(vdev); -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE if (s->dataplane) { virtio_blk_data_plane_stop(s->dataplane); } -#endif /* * This should cancel pending requests, but can't do nicely until there @@ -591,12 +585,10 @@ static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status) VirtIOBlock *s = VIRTIO_BLK(vdev); uint32_t features; -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE if (s->dataplane && !(status & (VIRTIO_CONFIG_S_DRIVER | VIRTIO_CONFIG_S_DRIVER_OK))) { virtio_blk_data_plane_stop(s->dataplane); } -#endif if (!(status & VIRTIO_CONFIG_S_DRIVER_OK)) { return; @@ -691,7 +683,6 @@ static const BlockDevOps virtio_block_ops = { .resize_cb = virtio_blk_resize, }; -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE /* Disable dataplane thread during live migration since it does not * update the dirty memory bitmap yet. */ @@ -722,16 +713,13 @@ static void virtio_blk_migration_state_changed(Notifier *notifier, void *data) } } } -#endif /* CONFIG_VIRTIO_BLK_DATA_PLANE */ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) { VirtIODevice *vdev = VIRTIO_DEVICE(dev); VirtIOBlock *s = VIRTIO_BLK(dev); VirtIOBlkConf *blk = &(s->blk); -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE Error *err = NULL; -#endif static int virtio_blk_id; if (!blk->conf.bs) { @@ -760,7 +748,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) s->vq = virtio_add_queue(vdev, 128, virtio_blk_handle_output); s->complete_request = virtio_blk_complete_request; -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE virtio_blk_data_plane_create(vdev, blk, &s->dataplane, &err); if (err != NULL) { error_propagate(errp, err); @@ -769,7 +756,6 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) } s->migration_state_notifier.notify = virtio_blk_migration_state_changed; add_migration_state_change_notifier(&s->migration_state_notifier); -#endif s->change = qemu_add_vm_change_state_handler(virtio_blk_dma_restart_cb, s); register_savevm(dev, "virtio-blk", virtio_blk_id++, 2, @@ -787,11 +773,9 @@ static void virtio_blk_device_unrealize(DeviceState *dev, Error **errp) VirtIODevice *vdev = VIRTIO_DEVICE(dev); VirtIOBlock *s = VIRTIO_BLK(dev); -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE remove_migration_state_change_notifier(&s->migration_state_notifier); virtio_blk_data_plane_destroy(s->dataplane); s->dataplane = NULL; -#endif qemu_del_vm_change_state_handler(s->change); unregister_savevm(dev, "virtio-blk", s); blockdev_mark_auto_del(s->bs); @@ -816,9 +800,7 @@ static Property virtio_blk_properties[] = { #ifdef __linux__ DEFINE_PROP_BIT("scsi", VirtIOBlock, blk.scsi, 0, true), #endif -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE DEFINE_PROP_BIT("x-data-plane", VirtIOBlock, blk.data_plane, 0, false), -#endif DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/virtio/Makefile.objs b/hw/virtio/Makefile.objs index ec9e855..d21c397 100644 --- a/hw/virtio/Makefile.objs +++ b/hw/virtio/Makefile.objs @@ -2,7 +2,7 @@ common-obj-y += virtio-rng.o common-obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o common-obj-y += virtio-bus.o common-obj-y += virtio-mmio.o -common-obj-$(CONFIG_VIRTIO_BLK_DATA_PLANE) += dataplane/ +common-obj-$(CONFIG_VIRTIO) += dataplane/ obj-y += virtio.o virtio-balloon.o obj-$(CONFIG_LINUX) += vhost.o vhost-backend.o vhost-user.o diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index afb7b8d..f4c5239 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -131,10 +131,8 @@ typedef struct VirtIOBlock { VMChangeStateEntry *change; /* Function to push to vq and notify guest */ void (*complete_request)(struct VirtIOBlockReq *req, unsigned char status); -#ifdef CONFIG_VIRTIO_BLK_DATA_PLANE Notifier migration_state_notifier; struct VirtIOBlockDataPlane *dataplane; -#endif } VirtIOBlock; typedef struct MultiReqBuffer {
Dataplane doesn't depend on linux-aio any more, so we don't need the compiling condition now. Configure options are kept but just print a message. Signed-off-by: Fam Zheng <famz@redhat.com> --- configure | 21 ++------------------- hw/block/Makefile.objs | 2 +- hw/block/virtio-blk.c | 22 ++-------------------- hw/virtio/Makefile.objs | 2 +- include/hw/virtio/virtio-blk.h | 2 -- 5 files changed, 6 insertions(+), 43 deletions(-)