WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] blktap: make memshr optional

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] blktap: make memshr optional
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 11 Jan 2010 23:25:24 -0800
Delivery-date: Mon, 11 Jan 2010 23:25:35 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1263279681 0
# Node ID 5b45d08b7abf9316be1cc2b510631736a739064f
# Parent  5e1971bec8819c4ea55af24dfe8b30762e00965d
blktap: make memshr optional

Attached patch makes memshr optional for blktap/blktap2.
This fixes build for platforms where memshr isn't build on.
While there, make indentation consistent.

Signed-off-by: Christoph Egger <Christoph.Egger@xxxxxxx>
---
 tools/blktap/drivers/Makefile         |    8 +++
 tools/blktap/drivers/blktapctrl.c     |    4 +
 tools/blktap2/drivers/Makefile        |    8 +++
 tools/blktap2/drivers/tapdisk-image.c |   10 +++-
 tools/blktap2/drivers/tapdisk-vbd.c   |   78 ++++++++++++++++++----------------
 tools/blktap2/drivers/tapdisk.h       |    4 +
 tools/blktap2/drivers/tapdisk2.c      |   15 ++++--
 7 files changed, 82 insertions(+), 45 deletions(-)

diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap/drivers/Makefile
--- a/tools/blktap/drivers/Makefile     Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap/drivers/Makefile     Tue Jan 12 07:01:21 2010 +0000
@@ -23,7 +23,13 @@ CRYPT_LIB := -lcrypto
 $(warning === libgcrypt not installed: falling back to libcrypto ===)
 endif
 
-LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) 
$(MEMSHR_DIR)/libmemshr.a -L../lib -lblktap -lrt -lm
+MEMSHRLIBS :=
+ifeq ($(CONFIG_Linux), y)
+CFLAGS += -DMEMSHR
+MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
+endif
+
+LDFLAGS_blktapctrl := $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenstore) 
$(MEMSHRLIBS) -L../lib -lblktap -lrt -lm
 LDFLAGS_img := $(LIBAIO_DIR)/libaio.a $(CRYPT_LIB) -lpthread -lz
 
 BLK-OBJS-y  := block-aio.o
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap/drivers/blktapctrl.c
--- a/tools/blktap/drivers/blktapctrl.c Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap/drivers/blktapctrl.c Tue Jan 12 07:01:21 2010 +0000
@@ -859,7 +859,9 @@ int main(int argc, char *argv[])
                goto open_failed;
        }
 
-    memshr_daemon_initialize();
+#ifdef MEMSHR
+       memshr_daemon_initialize();
+#endif
 
  retry:
        /* Set up store connection and watch. */
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap2/drivers/Makefile
--- a/tools/blktap2/drivers/Makefile    Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap2/drivers/Makefile    Tue Jan 12 07:01:21 2010 +0000
@@ -55,7 +55,13 @@ REMUS-OBJS  += hashtable_utility.o
 
 LIBAIO_DIR = $(XEN_ROOT)/tools/libaio/src
 MEMSHR_DIR = $(XEN_ROOT)/tools/memshr
-MEMSHRLIBS := $(MEMSHR_DIR)/libmemshr.a
+
+MEMSHRLIBS :=
+ifeq ($(CONFIG_Linux), y)
+CFLAGS += -DMEMSHR
+MEMSHRLIBS += $(MEMSHR_DIR)/libmemshr.a
+endif
+
 tapdisk2 tapdisk-stream tapdisk-diff $(QCOW_UTIL): AIOLIBS := 
$(LIBAIO_DIR)/libaio.a 
 tapdisk-client tapdisk-stream tapdisk-diff $(QCOW_UTIL): CFLAGS  += 
-I$(LIBAIO_DIR) -I$(XEN_LIBXC)
 
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap2/drivers/tapdisk-image.c
--- a/tools/blktap2/drivers/tapdisk-image.c     Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap2/drivers/tapdisk-image.c     Tue Jan 12 07:01:21 2010 +0000
@@ -28,7 +28,9 @@
 #include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
+#ifdef MEMSHR
 #include <memshr.h>
+#endif
 
 #include "tapdisk-image.h"
 #include "tapdisk-driver.h"
@@ -57,7 +59,9 @@ tapdisk_image_allocate(char *file, int t
        image->flags     = flags;
        image->storage   = storage;
        image->private   = private;
-    image->memshr_id = memshr_vbd_image_get(file);
+#ifdef MEMSHR
+       image->memshr_id = memshr_vbd_image_get(file);
+#endif
        INIT_LIST_HEAD(&image->next);
 
        return image;
@@ -71,7 +75,9 @@ tapdisk_image_free(td_image_t *image)
 
        list_del(&image->next);
 
-    memshr_vbd_image_put(image->memshr_id);
+#ifdef MEMSHR
+       memshr_vbd_image_put(image->memshr_id);
+#endif
        free(image->name);
        tapdisk_driver_free(image->driver);
        free(image);
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap2/drivers/tapdisk-vbd.c
--- a/tools/blktap2/drivers/tapdisk-vbd.c       Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap2/drivers/tapdisk-vbd.c       Tue Jan 12 07:01:21 2010 +0000
@@ -34,7 +34,9 @@
 #include <libgen.h>
 #include <sys/mman.h>
 #include <sys/ioctl.h>
+#ifdef MEMSHR
 #include <memshr.h>
+#endif
 
 #include "libvhd.h"
 #include "tapdisk-image.h"
@@ -107,7 +109,9 @@ tapdisk_vbd_initialize(int rfd, int wfd,
        vbd->callback = tapdisk_vbd_callback;
        vbd->argument = vbd;
     
-    memshr_vbd_initialize();
+#ifdef MEMSHR
+       memshr_vbd_initialize();
+#endif
 
        INIT_LIST_HEAD(&vbd->driver_stack);
        INIT_LIST_HEAD(&vbd->images);
@@ -1455,18 +1459,23 @@ __tapdisk_vbd_complete_td_request(td_vbd
                            (treq.op == TD_OP_WRITE ? "write" : "read"),
                            treq.secs, treq.sec);
                }
-       } else 
-    if(treq.op == TD_OP_READ && td_flag_test(image->flags, TD_OPEN_RDONLY)) {
-        uint64_t         hnd  = treq.memshr_hnd;
-        uint16_t         uid  = image->memshr_id;
-        blkif_request_t *breq = &vreq->req;
-        uint64_t         sec  = tapdisk_vbd_breq_get_sector(breq, treq);
-        int              secs = breq->seg[treq.sidx].last_sect -
-                                breq->seg[treq.sidx].first_sect + 1;
-
-        if(hnd != 0)
-            memshr_vbd_complete_ro_request(hnd, uid, sec, secs);
-    }
+       } else {
+#ifdef MEMSHR
+               if (treq.op == TD_OP_READ
+                  && td_flag_test(image->flags, TD_OPEN_RDONLY)) {
+                       uint64_t hnd  = treq.memshr_hnd;
+                       uint16_t uid  = image->memshr_id;
+                       blkif_request_t *breq = &vreq->req;
+                       uint64_t sec  = tapdisk_vbd_breq_get_sector(breq, treq);
+                       int secs = breq->seg[treq.sidx].last_sect -
+                           breq->seg[treq.sidx].first_sect + 1;
+
+                       if (hnd != 0)
+                               memshr_vbd_complete_ro_request(hnd, uid,
+                                                               sec, secs);
+               }
+#endif
+       }
 
        tapdisk_vbd_complete_vbd_request(vbd, vreq);
 }
@@ -1518,29 +1527,28 @@ __tapdisk_vbd_reissue_td_request(td_vbd_
                break;
 
        case TD_OP_READ:
-        if(td_flag_test(parent->flags, TD_OPEN_RDONLY))
-        {
-            int ret, seg = treq.sidx;
-            blkif_request_t *breq = &vreq->req;
+#ifdef MEMSHR
+               if(td_flag_test(parent->flags, TD_OPEN_RDONLY)) {
+                       int ret, seg = treq.sidx;
+                       blkif_request_t *breq = &vreq->req;
         
-            ret = memshr_vbd_issue_ro_request(treq.buf,
-                                              breq->seg[seg].gref,
-                                              parent->memshr_id,
-                                              treq.sec,
-                                              treq.secs,
-                                              &treq.memshr_hnd);
-            if(ret == 0)
-            {
-                /* Reset memshr handle. This'll prevent
-                 * memshr_vbd_complete_ro_request being called */
-                treq.memshr_hnd = 0;
-                td_complete_request(treq, 0);
-            }
-            else
-                       td_queue_read(parent, treq);
-        }
-        else
-                   td_queue_read(parent, treq);
+                       ret = memshr_vbd_issue_ro_request(treq.buf,
+                             breq->seg[seg].gref,
+                             parent->memshr_id,
+                             treq.sec,
+                             treq.secs,
+                             &treq.memshr_hnd);
+                       if(ret == 0) {
+                               /* Reset memshr handle. This'll prevent
+                                * memshr_vbd_complete_ro_request being called
+                                */
+                               treq.memshr_hnd = 0;
+                               td_complete_request(treq, 0);
+                       } else
+                               td_queue_read(parent, treq);
+               } else
+#endif
+                       td_queue_read(parent, treq);
                break;
        }
 
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap2/drivers/tapdisk.h
--- a/tools/blktap2/drivers/tapdisk.h   Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap2/drivers/tapdisk.h   Tue Jan 12 07:01:21 2010 +0000
@@ -132,7 +132,9 @@ struct td_request {
        int                          sidx;
        void                        *private;
     
-    uint64_t                     memshr_hnd;
+#ifdef MEMSHR
+       uint64_t                     memshr_hnd;
+#endif
 };
 
 /* 
diff -r 5e1971bec881 -r 5b45d08b7abf tools/blktap2/drivers/tapdisk2.c
--- a/tools/blktap2/drivers/tapdisk2.c  Tue Jan 12 06:56:56 2010 +0000
+++ b/tools/blktap2/drivers/tapdisk2.c  Tue Jan 12 07:01:21 2010 +0000
@@ -34,7 +34,9 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <sys/ioctl.h>
+#ifdef MEMSHR
 #include <memshr.h>
+#endif
 
 #include "tapdisk.h"
 #include "blktap2.h"
@@ -419,10 +421,15 @@ main(int argc, char *argv[])
                        break;
                case 'h':
                        usage(argv[0], 0);
-            break;
-        case 's':
-            memshr_set_domid(atoi(optarg));
-            break;
+                       break;
+               case 's':
+#ifdef MEMSHR
+                       memshr_set_domid(atoi(optarg));
+#else
+                       fprintf(stderr, "MEMSHR support not compiled in.\n");
+                       exit(EXIT_FAILURE);
+#endif
+                       break;
                default:
                        usage(argv[0], EINVAL);
                }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] blktap: make memshr optional, Xen patchbot-unstable <=