[Groonga-commit] groonga/groonga [master] updated to use MAP_HUGETLB if available.

Back to archive index

null+****@clear***** null+****@clear*****
2011年 12月 2日 (金) 17:56:50 JST


Susumu Yata	2011-12-02 08:56:50 +0000 (Fri, 02 Dec 2011)

  New Revision: c0e71a613897f3c82dfd229466edecc6b27821bc

  Log:
    updated to use MAP_HUGETLB if available.

  Modified files:
    lib/dat/file-impl.cpp

  Modified: lib/dat/file-impl.cpp (+8 -2)
===================================================================
--- lib/dat/file-impl.cpp    2011-12-01 13:16:17 +0000 (56c95b0)
+++ lib/dat/file-impl.cpp    2011-12-02 08:56:50 +0000 (e68e704)
@@ -201,8 +201,14 @@ void FileImpl::create_(const char *path, UInt64 size) {
 #endif  // MAP_ANONYMOUS
 
   length_ = static_cast< ::size_t>(size);
-  addr_ = ::mmap(NULL, length_, PROT_READ | PROT_WRITE, flags, fd_, 0);
-  GRN_DAT_THROW_IF(IO_ERROR, addr_ == MAP_FAILED);
+#ifdef MAP_HUGETLB
+  addr_ = ::mmap(NULL, length_, PROT_READ | PROT_WRITE,
+                 flags | MAP_HUGETLB, fd_, 0);
+#endif  // MAP_HUGETLB
+  if (addr_ == MAP_FAILED) {
+    addr_ = ::mmap(NULL, length_, PROT_READ | PROT_WRITE, flags, fd_, 0);
+    GRN_DAT_THROW_IF(IO_ERROR, addr_ == MAP_FAILED);
+  }
 
   ptr_ = addr_;
   size_ = length_;




Groonga-commit メーリングリストの案内
Back to archive index