libfoedus-core
FOEDUS Core Library
aligned_memory.cpp File Reference
#include "foedus/memory/aligned_memory.hpp"
#include <numa.h>
#include <numaif.h>
#include <valgrind.h>
#include <glog/logging.h>
#include <sys/mman.h>
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iostream>
#include <string>
#include "foedus/assert_nd.hpp"
#include "foedus/assorted/assorted_func.hpp"
#include "foedus/assorted/mod_numa_node.hpp"
#include "foedus/debugging/stop_watch.hpp"
Include dependency graph for aligned_memory.cpp:

Go to the source code of this file.

Namespaces

 foedus
 Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
 
 foedus::memory
 Memory Manager, which controls memory allocations, deallocations, and sharing.
 

Macros

#define MAP_HUGE_SHIFT   26
 
#define MAP_HUGE_2MB   (21 << MAP_HUGE_SHIFT)
 
#define MAP_HUGE_1GB   (30 << MAP_HUGE_SHIFT)
 

Functions

char * foedus::memory::alloc_mmap (uint64_t size, uint64_t alignment)
 
void * foedus::memory::alloc_mmap_1gb_pages (uint64_t size)
 
std::ostream & foedus::memory::operator<< (std::ostream &o, const AlignedMemory &v)
 
std::ostream & foedus::memory::operator<< (std::ostream &o, const AlignedMemorySlice &v)
 
bool foedus::memory::is_1gb_hugepage_enabled ()
 Returns if 1GB hugepages were enabled. More...
 

Macro Definition Documentation

#define MAP_HUGE_1GB   (30 << MAP_HUGE_SHIFT)

Definition at line 47 of file aligned_memory.cpp.

Referenced by foedus::memory::alloc_mmap().

#define MAP_HUGE_2MB   (21 << MAP_HUGE_SHIFT)

Definition at line 44 of file aligned_memory.cpp.

Referenced by foedus::memory::alloc_mmap().

#define MAP_HUGE_SHIFT   26

Definition at line 41 of file aligned_memory.cpp.