summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]src/mongo/util/mmap.cpp10
-rw-r--r--src/mongo/util/mmap.h3
-rw-r--r--src/mongo/util/mmap_posix.cpp8
-rw-r--r--src/mongo/util/mmap_win.cpp6
4 files changed, 21 insertions, 6 deletions
diff --git a/src/mongo/util/mmap.cpp b/src/mongo/util/mmap.cpp
index 29451ff2227..dd358817767 100755..100644
--- a/src/mongo/util/mmap.cpp
+++ b/src/mongo/util/mmap.cpp
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-#include "pch.h"
+#include "mongo/pch.h"
#include "mongo/util/mmap.h"
@@ -27,9 +27,17 @@
#include "mongo/util/mongoutils/str.h"
#include "mongo/util/processinfo.h"
#include "mongo/util/progress_meter.h"
+#include "mongo/util/startup_test.h"
namespace mongo {
+ void minOSPageSizeBytesTest(size_t minOSPageSizeBytes) {
+ fassert( 16325, minOSPageSizeBytes > 0 );
+ fassert( 16326, minOSPageSizeBytes < 1000000 );
+ // check to see if the page size is a power of 2
+ fassert( 16327, (minOSPageSizeBytes & (minOSPageSizeBytes - 1)) == 0);
+ }
+
set<MongoFile*> MongoFile::mmfiles;
map<string,MongoFile*> MongoFile::pathToFile;
diff --git a/src/mongo/util/mmap.h b/src/mongo/util/mmap.h
index 9cfb1b2519e..c52c3217aba 100644
--- a/src/mongo/util/mmap.h
+++ b/src/mongo/util/mmap.h
@@ -22,7 +22,8 @@
namespace mongo {
extern const size_t g_minOSPageSizeBytes;
-
+ void minOSPageSizeBytesTest(size_t minOSPageSizeBytes); // lame-o
+
class MAdvise {
void *_p;
unsigned _len;
diff --git a/src/mongo/util/mmap_posix.cpp b/src/mongo/util/mmap_posix.cpp
index b992203b935..7eb5f062045 100644
--- a/src/mongo/util/mmap_posix.cpp
+++ b/src/mongo/util/mmap_posix.cpp
@@ -29,8 +29,12 @@
using namespace mongoutils;
namespace mongo {
-
- const size_t g_minOSPageSizeBytes = sysconf( _SC_PAGESIZE );
+ static size_t fetchMinOSPageSizeBytes() {
+ size_t minOSPageSizeBytes = sysconf( _SC_PAGESIZE );
+ minOSPageSizeBytesTest(minOSPageSizeBytes);
+ return minOSPageSizeBytes;
+ }
+ const size_t g_minOSPageSizeBytes = fetchMinOSPageSizeBytes();
MemoryMappedFile::MemoryMappedFile() {
fd = 0;
diff --git a/src/mongo/util/mmap_win.cpp b/src/mongo/util/mmap_win.cpp
index 4b5f803f2d6..dffc4b8b3a9 100644
--- a/src/mongo/util/mmap_win.cpp
+++ b/src/mongo/util/mmap_win.cpp
@@ -29,9 +29,11 @@ namespace mongo {
static size_t fetchMinOSPageSizeBytes() {
SYSTEM_INFO si;
GetSystemInfo(&si);
- return si.dwPageSize;
+ size_t minOSPageSizeBytes = si.dwPageSize;
+ minOSPageSizeBytesTest(minOSPageSizeBytes);
+ return minOSPageSizeBytes;
}
- const size_t g_pageSize = fetchMinOSPageSizeBytes();
+ const size_t g_minOSPageSizeBytes = fetchMinOSPageSizeBytes();
mutex mapViewMutex("mapView");