* [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).