fix xseg-tool rnd functions to check for error on submit
authorFilippos Giannakos <philipgian@grnet.gr>
Thu, 30 Aug 2012 16:01:54 +0000 (19:01 +0300)
committerFilippos Giannakos <philipgian@grnet.gr>
Thu, 30 Aug 2012 16:01:54 +0000 (19:01 +0300)
also changeg type of xqindex to uint64_t

xseg/peers/user/xseg-tool.c
xseg/sys/util.h
xseg/xtypes/xq.h

index 9e5e378..52a1f27 100644 (file)
@@ -526,7 +526,6 @@ int cmd_rndwrite(long loops, int32_t seed, uint32_t targetlen, uint32_t chunksiz
                        req_target = xseg_get_target(xseg, submitted);
                        req_data = xseg_get_data(xseg, submitted);
 
-                       nr_submitted += 1;
                        reported = 0;
                        seed = random();
                        mkname(namebuf, targetlen, seed);
@@ -542,8 +541,12 @@ int cmd_rndwrite(long loops, int32_t seed, uint32_t targetlen, uint32_t chunksiz
                        submitted->flags |= XF_NOSYNC;
 
                        srl = xseg_submit(xseg, dstport, submitted);
-                       (void)srl;
-                       xseg_signal(xseg, dstport);
+                       if (srl == Noneidx) {
+                               xseg_put_request(xseg, submitted->portno, submitted);
+                       } else {
+                               nr_submitted += 1;
+                               xseg_signal(xseg, dstport);
+                       }
                }
 
                received = xseg_receive(xseg, srcport);
@@ -630,7 +633,6 @@ int cmd_rndread(long loops, int32_t seed, uint32_t targetlen, uint32_t chunksize
                        }
 
                        req_target = xseg_get_target(xseg, submitted);
-                       nr_submitted += 1;
                        reported = 0;
                        seed = random();
                        mkname(namebuf, targetlen, seed);
@@ -644,8 +646,12 @@ int cmd_rndread(long loops, int32_t seed, uint32_t targetlen, uint32_t chunksize
                        submitted->op = X_READ;
 
                        srl = xseg_submit(xseg, dstport, submitted);
-                       (void)srl;
-                       xseg_signal(xseg, dstport);
+                       if (srl == Noneidx) {
+                               xseg_put_request(xseg, submitted->portno, submitted);
+                       } else {
+                               nr_submitted += 1;
+                               xseg_signal(xseg, dstport);
+                       }
                }
 
                received = xseg_receive(xseg, srcport);
index 17c9730..5af77c7 100644 (file)
@@ -14,7 +14,6 @@ typedef uint64_t xpointer;
  * this should be the same as xqindex
  * and must fit into a ptr type
  */
-//FIXME xqindex is set to uint32_t
 typedef uint64_t xptr; 
 
 #define Noneidx ((xqindex)-1)
index 81b771d..9bd1f53 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <sys/util.h>
 
-typedef uint32_t xqindex;
+typedef uint64_t xqindex;
 
 #include "xlock.h"