svn commit: samba r22962 - in branches/SAMBA_4_0/source/torture/raw: .

tridge at samba.org tridge at samba.org
Thu May 17 02:22:30 GMT 2007


Author: tridge
Date: 2007-05-17 02:22:29 +0000 (Thu, 17 May 2007)
New Revision: 22962

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22962

Log:

show progress separately for each client in RAW-BENCH-LOCK, this is
much more useful for seeing why we get unbalanced locking

Modified:
   branches/SAMBA_4_0/source/torture/raw/lockbench.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/raw/lockbench.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/lockbench.c	2007-05-17 02:21:07 UTC (rev 22961)
+++ branches/SAMBA_4_0/source/torture/raw/lockbench.c	2007-05-17 02:22:29 UTC (rev 22962)
@@ -54,6 +54,7 @@
 	int fnum;
 	int offset;
 	int count;
+	int lastcount;
 	union smb_lock io;
 	struct smb_lock_entry lock[2];
 	struct smbcli_request *req;
@@ -216,6 +217,22 @@
 	}
 }
 
+
+static void report_rate(struct event_context *ev, struct timed_event *te, 
+			struct timeval t, void *private_data)
+{
+	struct benchlock_state *state = talloc_get_type(private_data, 
+							struct benchlock_state);
+	int i;
+	for (i=0;i<nprocs;i++) {
+		printf("%5u ", (unsigned)(state[i].count - state[i].lastcount));
+		state[i].lastcount = state[i].count;
+	}
+	printf("\r");
+	fflush(stdout);
+	event_add_timed(ev, state, timeval_current_ofs(1, 0), report_rate, state);
+}
+
 /* 
    benchmark locking calls
 */
@@ -228,10 +245,13 @@
 	struct timeval tv;
 	struct event_context *ev = event_context_find(mem_ctx);
 	struct benchlock_state *state;
-	int total = 0, loops=0, minops=0;
+	int total = 0, minops=0;
 	NTSTATUS status;
 	struct smbcli_state *cli;
-	
+	bool progress;
+
+	progress = torture_setting_bool(torture, "progress", true);
+
 	nprocs = lp_parm_int(-1, "torture", "nprocs", 4);
 
 	state = talloc_zero_array(mem_ctx, struct benchlock_state, nprocs);
@@ -293,6 +313,10 @@
 
 	tv = timeval_current();	
 
+	if (progress) {
+		event_add_timed(ev, state, timeval_current_ofs(1, 0), report_rate, state);
+	}
+
 	printf("Running for %d seconds\n", timelimit);
 	while (timeval_elapsed(&tv) < timelimit) {
 		event_loop_once(ev);
@@ -301,19 +325,6 @@
 			DEBUG(0,("locking failed\n"));
 			goto failed;
 		}
-
-		if (loops++ % 10 != 0) continue;
-
-		total = 0;
-		for (i=0;i<nprocs;i++) {
-			total += state[i].count;
-		}
-		if (torture_setting_bool(torture, "progress", true)) {
-			printf("%.2f ops/second (remaining=%u)\r", 
-			       total/timeval_elapsed(&tv), 
-			       (unsigned)(timelimit - timeval_elapsed(&tv)));
-			fflush(stdout);
-		}
 	}
 
 	printf("%.2f ops/second\n", total/timeval_elapsed(&tv));



More information about the samba-cvs mailing list