Index: benchmark/io/http/options.cfa
===================================================================
--- benchmark/io/http/options.cfa	(revision f3e87af512861070a0a9c8f2d5504688619cbe91)
+++ benchmark/io/http/options.cfa	(revision a6b587f030d2b261d325f697c66086de73e37cf3)
@@ -9,4 +9,5 @@
 }
 
+#include <bitmanip.hfa>
 #include <fstream.hfa>
 #include <kernel.hfa>
@@ -51,4 +52,6 @@
 	bool iokpoll = false;
 	unsigned sublen = 16;
+	unsigned nentries = 16;
+
 
 	static cfa_option opt[] = {
@@ -68,4 +71,5 @@
 		{ 'i', "kpollcomplete",  "If set, cluster uses IORING_SETUP_IOPOLL", iokpoll, parse_settrue },
 		{'\0', "submitlength",   "Max number of submitions that can be submitted together", sublen },
+		{'\0', "numentries",     "Number of I/O entries", nentries },
 
 	};
@@ -74,4 +78,18 @@
 	char **left;
 	parse_args( argc, argv, opt, opt_cnt, "[OPTIONS]... [PATH]\ncforall http server", left );
+
+	if( !is_pow2(nentries) ) {
+		unsigned v = nentries;
+		v--;
+		v |= v >> 1;
+		v |= v >> 2;
+		v |= v >> 4;
+		v |= v >> 8;
+		v |= v >> 16;
+		v++;
+		serr | "Warning: num_entries not a power of 2" | '(' | nentries | ')' | "raising to " | v;
+		nentries = v;
+	}
+	options.clopts.params.num_entries = nentries;
 
 	options.clopts.params.poller_submits = subthrd;
@@ -94,5 +112,5 @@
 	options.clopts.params.num_ready = sublen;
 
-	if( left[0] == 0p ) { return "."; }
+	if( left[0] == 0p ) { return; }
 
 	const char * path = left[0];
@@ -100,5 +118,9 @@
 
 	if( left[0] != 0p ) {
-		serr | "Too many trailing arguments!";
+		serr | "Too many trailing arguments!" | '\'' | path | '\'';
+		while(left[0] != 0p) {
+			serr | " - " | left[0];
+			left++;
+		}
 		exit(EXIT_FAILURE);
 	}
