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