qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [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).