Index: /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp
===================================================================
--- /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp	(revision 76918)
+++ /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp	(revision 76919)
@@ -53,4 +53,10 @@
 #ifdef RT_OS_WINDOWS
 # include <iprt/nt/nt-and-windows.h>
+#else
+# include <errno.h>
+# include <unistd.h>
+# include <sys/fcntl.h>
+# include <sys/mman.h>
+# include <sys/types.h>
 #endif
 
@@ -1873,4 +1879,7 @@
     RTTESTI_CHECK(Ios.Status == STATUS_END_OF_FILE);
     RTTESTI_CHECK(Ios.Information == 0);
+#else
+    ssize_t cbRead = read((int)RTFileToNative(hFile1), pbBuf, 0);
+    RTTESTI_CHECK(cbRead == 0);
 #endif
 
@@ -2053,8 +2062,10 @@
     RTTESTI_CHECK(Ios.Status == STATUS_SUCCESS);
     RTTESTI_CHECK(Ios.Information == 0);
-
+#else
+    ssize_t cbWritten = write((int)RTFileToNative(hFile1), pbBuf, 0);
+    RTTESTI_CHECK(cbWritten == 0);
+#endif
     RTTESTI_CHECK_RC(RTFileRead(hFile1, pbBuf, _4K, NULL), VINF_SUCCESS);
     fsPerfCheckReadBuf(__LINE__, cbFile - _4K, pbBuf, _4K, pbBuf[0x8]);
-#endif
 
     /*
@@ -2127,5 +2138,5 @@
 {
     RTTestISub("mmap");
-#if defined(RT_OS_WINDOWS)
+#if defined(RT_OS_WINDOWS) || defined(RT_OS_LINUX)
     static const char * const s_apszStates[] = { "readonly", "writecopy", "readwrite" };
     enum { kMMap_ReadOnly = 0, kMMap_WriteCopy, kMMap_ReadWrite, kMMap_End };
@@ -2174,5 +2185,5 @@
                                         enmState == kMMap_ReadOnly  ? PROT_READ   : PROT_READ | PROT_WRITE,
                                         enmState == kMMap_WriteCopy ? MAP_PRIVATE : MAP_SHARED,
-                                        (int)RTFileToNative(hFile1), cbMapping);
+                                        (int)RTFileToNative(hFile1), 0);
             if ((void *)pbMapping != MAP_FAILED)
                 break;
@@ -2226,5 +2237,9 @@
                         continue;
 
+# if defined(RT_OS_LINUX)
+                    size_t const cFlushes = RT_MIN(cbMapping / cbFlush, 2048);
+# else
                     size_t const cFlushes = cbMapping / cbFlush;
+# endif
                     uint8_t     *pbCur    = pbMapping;
                     ns = RTTimeNanoTS();
