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_;