All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.