* [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver @ 2013-07-16 16:17 Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 1/2] gluster: Use pkg-config to configure GlusterFS block driver Bharata B Rao ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: Bharata B Rao @ 2013-07-16 16:17 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, stefanha, aavati, Bharata B Rao Hi, This is the v2 of the patchset that changes gluster driver in QEMU to use pkg-config and adds discard support. Changes in v2 ------------- - Ensure that gluster libraries don't get linked to linux-user targets. Bharata B Rao (2): gluster: Use pkg-config to configure GlusterFS block driver gluster: Add discard support for GlusterFS block driver. block/gluster.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ configure | 25 ++++++++++++++----------- 2 files changed, 59 insertions(+), 11 deletions(-) -- 1.7.11.7 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 1/2] gluster: Use pkg-config to configure GlusterFS block driver 2013-07-16 16:17 [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Bharata B Rao @ 2013-07-16 16:17 ` Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 2/2] gluster: Add discard support for " Bharata B Rao 2013-07-17 2:03 ` [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Stefan Hajnoczi 2 siblings, 0 replies; 4+ messages in thread From: Bharata B Rao @ 2013-07-16 16:17 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, stefanha, aavati, Bharata B Rao Use pkg-config to determine the version and library dependency for GlusterFS block driver. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> --- configure | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/configure b/configure index cb0f870..33f943a 100755 --- a/configure +++ b/configure @@ -2566,23 +2566,18 @@ fi ########################################## # glusterfs probe if test "$glusterfs" != "no" ; then - cat > $TMPC <<EOF -#include <glusterfs/api/glfs.h> -int main(void) { - (void) glfs_new("volume"); - return 0; -} -EOF - glusterfs_libs="-lgfapi -lgfrpc -lgfxdr" - if compile_prog "" "$glusterfs_libs" ; then - glusterfs=yes + if $pkg_config --atleast-version=3 glusterfs-api >/dev/null 2>&1; then + glusterfs="yes" + glusterfs_cflags=`$pkg_config --cflags glusterfs-api 2>/dev/null` + glusterfs_libs=`$pkg_config --libs glusterfs-api 2>/dev/null` + CFLAGS="$CFLAGS $glusterfs_cflags" libs_tools="$glusterfs_libs $libs_tools" libs_softmmu="$glusterfs_libs $libs_softmmu" else if test "$glusterfs" = "yes" ; then feature_not_found "GlusterFS backend support" fi - glusterfs=no + glusterfs="no" fi fi -- 1.7.11.7 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] gluster: Add discard support for GlusterFS block driver. 2013-07-16 16:17 [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 1/2] gluster: Use pkg-config to configure GlusterFS block driver Bharata B Rao @ 2013-07-16 16:17 ` Bharata B Rao 2013-07-17 2:03 ` [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Stefan Hajnoczi 2 siblings, 0 replies; 4+ messages in thread From: Bharata B Rao @ 2013-07-16 16:17 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, stefanha, aavati, Bharata B Rao Implement bdrv_aio_discard for gluster. Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> --- block/gluster.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ configure | 8 ++++++++ 2 files changed, 53 insertions(+) diff --git a/block/gluster.c b/block/gluster.c index 61424bc..6de418c 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -532,6 +532,39 @@ out: return NULL; } +#ifdef CONFIG_GLUSTERFS_DISCARD +static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs, + int64_t sector_num, int nb_sectors, BlockDriverCompletionFunc *cb, + void *opaque) +{ + int ret; + GlusterAIOCB *acb; + BDRVGlusterState *s = bs->opaque; + size_t size; + off_t offset; + + offset = sector_num * BDRV_SECTOR_SIZE; + size = nb_sectors * BDRV_SECTOR_SIZE; + + acb = qemu_aio_get(&gluster_aiocb_info, bs, cb, opaque); + acb->size = 0; + acb->ret = 0; + acb->finished = NULL; + s->qemu_aio_count++; + + ret = glfs_discard_async(s->fd, offset, size, &gluster_finish_aiocb, acb); + if (ret < 0) { + goto out; + } + return &acb->common; + +out: + s->qemu_aio_count--; + qemu_aio_release(acb); + return NULL; +} +#endif + static int64_t qemu_gluster_getlength(BlockDriverState *bs) { BDRVGlusterState *s = bs->opaque; @@ -602,6 +635,9 @@ static BlockDriver bdrv_gluster = { .bdrv_aio_writev = qemu_gluster_aio_writev, .bdrv_aio_flush = qemu_gluster_aio_flush, .bdrv_has_zero_init = qemu_gluster_has_zero_init, +#ifdef CONFIG_GLUSTERFS_DISCARD + .bdrv_aio_discard = qemu_gluster_aio_discard, +#endif .create_options = qemu_gluster_create_options, }; @@ -618,6 +654,9 @@ static BlockDriver bdrv_gluster_tcp = { .bdrv_aio_writev = qemu_gluster_aio_writev, .bdrv_aio_flush = qemu_gluster_aio_flush, .bdrv_has_zero_init = qemu_gluster_has_zero_init, +#ifdef CONFIG_GLUSTERFS_DISCARD + .bdrv_aio_discard = qemu_gluster_aio_discard, +#endif .create_options = qemu_gluster_create_options, }; @@ -634,6 +673,9 @@ static BlockDriver bdrv_gluster_unix = { .bdrv_aio_writev = qemu_gluster_aio_writev, .bdrv_aio_flush = qemu_gluster_aio_flush, .bdrv_has_zero_init = qemu_gluster_has_zero_init, +#ifdef CONFIG_GLUSTERFS_DISCARD + .bdrv_aio_discard = qemu_gluster_aio_discard, +#endif .create_options = qemu_gluster_create_options, }; @@ -650,6 +692,9 @@ static BlockDriver bdrv_gluster_rdma = { .bdrv_aio_writev = qemu_gluster_aio_writev, .bdrv_aio_flush = qemu_gluster_aio_flush, .bdrv_has_zero_init = qemu_gluster_has_zero_init, +#ifdef CONFIG_GLUSTERFS_DISCARD + .bdrv_aio_discard = qemu_gluster_aio_discard, +#endif .create_options = qemu_gluster_create_options, }; diff --git a/configure b/configure index 33f943a..82022c4 100755 --- a/configure +++ b/configure @@ -237,6 +237,7 @@ libiscsi="" coroutine="" seccomp="" glusterfs="" +glusterfs_discard="no" virtio_blk_data_plane="" gtk="" gtkabi="2.0" @@ -2573,6 +2574,9 @@ if test "$glusterfs" != "no" ; then CFLAGS="$CFLAGS $glusterfs_cflags" libs_tools="$glusterfs_libs $libs_tools" libs_softmmu="$glusterfs_libs $libs_softmmu" + if $pkg_config --atleast-version=5 glusterfs-api >/dev/null 2>&1; then + glusterfs_discard="yes" + fi else if test "$glusterfs" = "yes" ; then feature_not_found "GlusterFS backend support" @@ -3960,6 +3964,10 @@ if test "$glusterfs" = "yes" ; then echo "CONFIG_GLUSTERFS=y" >> $config_host_mak fi +if test "$glusterfs_discard" = "yes" ; then + echo "CONFIG_GLUSTERFS_DISCARD=y" >> $config_host_mak +fi + if test "$libssh2" = "yes" ; then echo "CONFIG_LIBSSH2=y" >> $config_host_mak fi -- 1.7.11.7 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver 2013-07-16 16:17 [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 1/2] gluster: Use pkg-config to configure GlusterFS block driver Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 2/2] gluster: Add discard support for " Bharata B Rao @ 2013-07-17 2:03 ` Stefan Hajnoczi 2 siblings, 0 replies; 4+ messages in thread From: Stefan Hajnoczi @ 2013-07-17 2:03 UTC (permalink / raw) To: Bharata B Rao; +Cc: kwolf, aavati, qemu-devel On Tue, Jul 16, 2013 at 09:47:40PM +0530, Bharata B Rao wrote: > Hi, > > This is the v2 of the patchset that changes gluster driver in QEMU > to use pkg-config and adds discard support. > > Changes in v2 > ------------- > - Ensure that gluster libraries don't get linked to linux-user targets. > > Bharata B Rao (2): > gluster: Use pkg-config to configure GlusterFS block driver > gluster: Add discard support for GlusterFS block driver. > > block/gluster.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ > configure | 25 ++++++++++++++----------- > 2 files changed, 59 insertions(+), 11 deletions(-) > > -- > 1.7.11.7 > Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-17 2:03 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-07-16 16:17 [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 1/2] gluster: Use pkg-config to configure GlusterFS block driver Bharata B Rao 2013-07-16 16:17 ` [Qemu-devel] [PATCH v2 2/2] gluster: Add discard support for " Bharata B Rao 2013-07-17 2:03 ` [Qemu-devel] [PATCH v2 0/2] pkg-config and discard support for gluster driver Stefan Hajnoczi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).