|
libfoedus-core
FOEDUS Core Library
|
System On Chip (SOC) and interprocess communication (IPC). More...
System On Chip (SOC) and interprocess communication (IPC).
This module is special in many ways. SOC might be spawned as a local or remote process, so we first instantiate SOCs before everything else with a special manner (partially because linux's tricky process handling semantics).
Classes | |
| struct | ChildEngineStatus |
| Current status of a child SOC engine. More... | |
| struct | GlobalMemoryAnchors |
| Just a set of pointers within global_memory_ for ease of use. More... | |
| struct | MasterEngineStatus |
| Current status of master engine. More... | |
| struct | NodeMemoryAnchors |
| Same as GlobalMemoryAnchors except this is for node_memories_. More... | |
| class | SharedCond |
| A conditional variable that can be placed in shared memory and used from multiple processes. More... | |
| class | SharedMemoryRepo |
| Repository of all shared memory in one FOEDUS instance. More... | |
| class | SharedMutex |
| A mutex that can be placed in shared memory and used from multiple processes. More... | |
| class | SharedMutexScope |
| Auto-lock scope object for SharedMutex. More... | |
| class | SharedPolling |
| A polling-wait mechanism that can be placed in shared memory and used from multiple processes. More... | |
| class | SharedRendezvous |
| A one-time single-producer multiple-consumer event synchronization in shared memory for multiple processes. More... | |
| class | SocManager |
| SOC manager, which maintains the shared resource across SOCs and, if this engine is a master engine, manages child SOCs. More... | |
| class | SocManagerPimpl |
| Pimpl object of SocManager. More... | |
| struct | SocOptions |
| Set of options for SOC manager. More... | |
| struct | ThreadMemoryAnchors |
| Part of NodeMemoryAnchors for each thread. More... | |
Typedefs | |
| typedef uint16_t | SocId |
| Represents an ID of an SOC, or NUMA node. More... | |
| typedef uint64_t | Upid |
| Universal (or Unique) ID of a process. More... | |
Functions | |
| void | ugly_atomic_inc (uint32_t *address) |
| void | ugly_atomic_dec (uint32_t *address) |
| std::string | get_self_path (uint64_t upid, Eid eid) |
| std::string | get_master_path (uint64_t master_upid, Eid master_eid) |
| uint64_t | align_4kb (uint64_t value) |
| uint64_t | align_2mb (uint64_t value) |
| void | ugly_atomic_inc (uint64_t *address) |
| uint64_t | get_now_microsec () |
Variables | |
| const uint64_t | kDefaultPollingSpins = (1ULL << 10) |
| Default value of polling_spins. More... | |
| const uint64_t | kDefaultPollingMaxIntervalUs = (1ULL << 15) |
| Default value of max_interval_us. More... | |
| const uint64_t | kInitialPollingIntervalUs = (1ULL << 8) |
| Initial value of sleep interval in us. More... | |
| const uint16_t | kMaxSocs = 256U |
| Maximum number of SOCs. More... | |
| uint64_t foedus::soc::align_2mb | ( | uint64_t | value | ) |
Definition at line 66 of file shared_memory_repo.cpp.
Referenced by foedus::soc::SharedMemoryRepo::allocate_shared_memories().

| uint64_t foedus::soc::align_4kb | ( | uint64_t | value | ) |
Definition at line 65 of file shared_memory_repo.cpp.
Referenced by foedus::soc::SharedMemoryRepo::calculate_global_memory_size(), and foedus::soc::SharedMemoryRepo::calculate_node_memory_size().

| std::string foedus::soc::get_master_path | ( | uint64_t | master_upid, |
| Eid | master_eid | ||
| ) |
Definition at line 42 of file shared_memory_repo.cpp.
Referenced by foedus::soc::SharedMemoryRepo::attach_shared_memories().

| uint64_t foedus::soc::get_now_microsec | ( | ) |
Definition at line 58 of file shared_polling.cpp.
Referenced by foedus::soc::SharedPolling::timedwait().

| std::string foedus::soc::get_self_path | ( | uint64_t | upid, |
| Eid | eid | ||
| ) |
Definition at line 37 of file shared_memory_repo.cpp.
Referenced by foedus::soc::SharedMemoryRepo::allocate_shared_memories().

| void foedus::soc::ugly_atomic_dec | ( | uint32_t * | address | ) |
Definition at line 86 of file shared_cond.cpp.
Referenced by foedus::soc::SharedCond::broadcast(), foedus::soc::SharedCond::broadcast_nolock(), foedus::soc::SharedCond::signal(), foedus::soc::SharedCond::timedwait(), and foedus::soc::SharedCond::wait().

| void foedus::soc::ugly_atomic_inc | ( | uint64_t * | address | ) |
Definition at line 37 of file shared_polling.cpp.
| void foedus::soc::ugly_atomic_inc | ( | uint32_t * | address | ) |
Definition at line 83 of file shared_cond.cpp.
Referenced by foedus::soc::SharedCond::broadcast(), foedus::soc::SharedCond::broadcast_nolock(), foedus::soc::SharedPolling::signal(), foedus::soc::SharedCond::signal(), foedus::soc::SharedCond::timedwait(), and foedus::soc::SharedCond::wait().

| const uint64_t foedus::soc::kDefaultPollingMaxIntervalUs = (1ULL << 15) |
Default value of max_interval_us.
Definition at line 31 of file shared_polling.hpp.
| const uint64_t foedus::soc::kDefaultPollingSpins = (1ULL << 10) |
Default value of polling_spins.
Definition at line 29 of file shared_polling.hpp.
Referenced by foedus::xct::XctManagerPimpl::handle_epoch_chime().
| const uint64_t foedus::soc::kInitialPollingIntervalUs = (1ULL << 8) |
Initial value of sleep interval in us.
Definition at line 33 of file shared_polling.hpp.
Referenced by foedus::soc::SharedPolling::timedwait(), and foedus::soc::SharedPolling::wait().