diff -Nru ebizzy/ebizzy.c ebizzy.mod/ebizzy.c
--- ebizzy/ebizzy.c	2006-05-13 13:58:18.000000000 -0700
+++ ebizzy.mod/ebizzy.c	2007-06-27 21:37:40.000000000 -0700
@@ -45,10 +45,15 @@
 #include <pthread.h>
 #include <string.h>
 
+#ifndef MAP_NOZERO
+#define MAP_NOZERO      0x04000000
+#endif
+
 /*
  * Command line options
  */
 
+static unsigned int mmap_flags;
 static unsigned int always_mmap;
 static unsigned int never_mmap;
 static unsigned int chunks;
@@ -87,7 +92,8 @@
 		"-s <size>\t Size of memory chunks, in bytes\n"
 		"-t <num>\t Number of threads\n"
 		"-v[v[v]]\t Be verbose (more v's for more verbose)\n"
-		"-z\t\t Linear search instead of binary search\n",
+		"-z\t\t Linear search instead of binary search\n"
+		"-N\t\t Use MAP_NOZERO flag for mmap(2)\n",
 		cmd);
 	exit(1);
 }
@@ -104,7 +110,7 @@
 	cmd = argv[0];
 	opterr = 1;
 
-	while ((c = getopt(argc, argv, "mMn:pPr:Rs:t:vz")) != -1) {
+	while ((c = getopt(argc, argv, "mMn:pPr:Rs:t:vzN")) != -1) {
 		switch (c) {
 		case 'm':
 			always_mmap = 1;
@@ -147,6 +153,9 @@
 		case 'z':
 			linear = 1;
 			break;
+		case 'N':
+			mmap_flags |= MAP_NOZERO;
+			break;
 		default:
 			usage();
 		}
@@ -221,7 +230,7 @@
 
 	if (always_mmap) {
 		p = mmap(0, size, PROT_READ | PROT_WRITE,
-			 MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
+			 mmap_flags | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
 		if (p == MAP_FAILED)
 			err = 1;
 	} else {
