diff options
-rw-r--r--[-rwxr-xr-x] | src/mongo/util/mmap.cpp | 10 | ||||
-rw-r--r-- | src/mongo/util/mmap.h | 3 | ||||
-rw-r--r-- | src/mongo/util/mmap_posix.cpp | 8 | ||||
-rw-r--r-- | src/mongo/util/mmap_win.cpp | 6 |
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"); |