Atlas Runtime
Atlas::LogMgr Class Reference

#include <log_mgr.hpp>

Public Member Functions

void setRegionId (region_id_t id)
 
region_id_t getRegionId () const
 
void acquireLogReadyLock ()
 
void releaseLogReadyLock ()
 
void waitLogReady ()
 
void signalLogReady ()
 
bool cmpXchngWeakLogPointer (LogStructure *expected, LogStructure *desired, std::memory_order success, std::memory_order failure)
 
bool cmpXchngWeakRecoveryLogPointer (LogStructure *expected, LogStructure *desired, std::memory_order success, std::memory_order failure)
 
void logNonTemporal (LogEntry *le, void *addr, size_t sz, LogType le_type)
 
void logAcquire (void *)
 
void logRelease (void *)
 Entry point into log manager for a lock release. More...
 
void logRdLock (void *)
 
void logWrLock (void *)
 
void logRWUnlock (void *)
 
void logBeginDurable ()
 
void logEndDurable ()
 
void logStore (void *addr, size_t sz)
 
void logMemset (void *addr, size_t sz)
 
void logMemcpy (void *dst, size_t sz)
 
void logMemmove (void *dst, size_t sz)
 
void logStrcpy (void *dst, size_t sz)
 
void logStrcat (void *dst, size_t sz)
 
void logAlloc (void *addr)
 
void logFree (void *addr)
 
LogStructure * createLogStructure (LogEntry *le)
 Create a thread specific log header. More...
 
void psync (void *start_addr, size_t sz)
 
void psyncWithAcquireBarrier (void *start_addr, size_t sz)
 
void asyncLogFlush (void *p)
 
void syncLogFlush ()
 
void asyncDataFlush (void *p)
 
void asyncMemOpDataFlush (void *dst, size_t sz)
 
void syncDataFlush ()
 
void flushAtEndOfFase ()
 
void collectCacheLines (SetOfInts *cl_set, void *addr, size_t sz)
 
void flushCacheLines (const SetOfInts &cl_set)
 
void flushCacheLinesUnconstrained (const SetOfInts &cl_set)
 
void flushLogUncond (void *)
 
void flushLogPointer ()
 
void flushRecoveryLogPointer ()
 
bool areUserThreadsDone () const
 
LogStructure * getRecoveryLogPointer (std::memory_order mem_order) const
 
void setRecoveryLogPointer (LogStructure *log_ptr, std::memory_order mem_order)
 
LogStructure * getLogPointer (std::memory_order mem_order) const
 
void deleteOwnerInfo (LogEntry *le)
 
void deleteEntry (LogEntry *addr)
 
void acquireStatsLock ()
 
void releaseStatsLock ()
 
void printStats () const
 

Static Public Member Functions

static LogMgr & createInstance ()
 
static LogMgr & createRecoveryInstance ()
 
static void deleteInstance ()
 
static LogMgr & getInstance ()
 
static bool hasInstance ()
 

Member Function Documentation

void Atlas::LogMgr::acquireLogReadyLock ( )
inline
void Atlas::LogMgr::acquireStatsLock ( )
inline
bool Atlas::LogMgr::areUserThreadsDone ( ) const
inline
void Atlas::LogMgr::asyncDataFlush ( void *  p)
void Atlas::LogMgr::asyncLogFlush ( void *  p)
void Atlas::LogMgr::asyncMemOpDataFlush ( void *  dst,
size_t  sz 
)
bool Atlas::LogMgr::cmpXchngWeakLogPointer ( LogStructure *  expected,
LogStructure *  desired,
std::memory_order  success,
std::memory_order  failure 
)
inline
bool Atlas::LogMgr::cmpXchngWeakRecoveryLogPointer ( LogStructure *  expected,
LogStructure *  desired,
std::memory_order  success,
std::memory_order  failure 
)
inline
void Atlas::LogMgr::collectCacheLines ( SetOfInts *  cl_set,
void *  addr,
size_t  sz 
)
static LogMgr& Atlas::LogMgr::createInstance ( )
inlinestatic
LogStructure * Atlas::LogMgr::createLogStructure ( LogEntry *  le)

Create a thread specific log header.

Parameters
leFirst log entry for this thread
Return values
Pointerto the log header created

The following is called by the helper thread alone (today).

static LogMgr& Atlas::LogMgr::createRecoveryInstance ( )
inlinestatic
void Atlas::LogMgr::deleteEntry ( LogEntry *  addr)
inline
static void Atlas::LogMgr::deleteInstance ( )
inlinestatic
void Atlas::LogMgr::deleteOwnerInfo ( LogEntry *  le)
void Atlas::LogMgr::flushAtEndOfFase ( )
void Atlas::LogMgr::flushCacheLines ( const SetOfInts &  cl_set)
void Atlas::LogMgr::flushCacheLinesUnconstrained ( const SetOfInts &  cl_set)
void Atlas::LogMgr::flushLogPointer ( )
inline
void Atlas::LogMgr::flushLogUncond ( void *  p)
inline
void Atlas::LogMgr::flushRecoveryLogPointer ( )
inline
static LogMgr& Atlas::LogMgr::getInstance ( )
inlinestatic
LogStructure* Atlas::LogMgr::getLogPointer ( std::memory_order  mem_order) const
inline
LogStructure* Atlas::LogMgr::getRecoveryLogPointer ( std::memory_order  mem_order) const
inline
region_id_t Atlas::LogMgr::getRegionId ( ) const
inline
static bool Atlas::LogMgr::hasInstance ( )
inlinestatic
void Atlas::LogMgr::logAcquire ( void *  lock_address)
inline
void Atlas::LogMgr::logAlloc ( void *  addr)
void Atlas::LogMgr::logBeginDurable ( )
inline
void Atlas::LogMgr::logEndDurable ( )
void Atlas::LogMgr::logFree ( void *  addr)
void Atlas::LogMgr::logMemcpy ( void *  dst,
size_t  sz 
)
inline
void Atlas::LogMgr::logMemmove ( void *  dst,
size_t  sz 
)
inline
void Atlas::LogMgr::logMemset ( void *  addr,
size_t  sz 
)
inline
void Atlas::LogMgr::logNonTemporal ( LogEntry *  le,
void *  addr,
size_t  sz,
LogType  le_type 
)
void Atlas::LogMgr::logRdLock ( void *  lock_address)
inline
void Atlas::LogMgr::logRelease ( void *  lock_address)

Entry point into log manager for a lock release.

Parameters
lock_addressAddress of the lock object to be released
void Atlas::LogMgr::logRWUnlock ( void *  lock_address)
void Atlas::LogMgr::logStore ( void *  addr,
size_t  sz 
)
inline
void Atlas::LogMgr::logStrcat ( void *  dst,
size_t  sz 
)
inline
void Atlas::LogMgr::logStrcpy ( void *  dst,
size_t  sz 
)
inline
void Atlas::LogMgr::logWrLock ( void *  lock_address)
inline
void Atlas::LogMgr::printStats ( ) const
inline
void Atlas::LogMgr::psync ( void *  start_addr,
size_t  sz 
)
void Atlas::LogMgr::psyncWithAcquireBarrier ( void *  start_addr,
size_t  sz 
)
void Atlas::LogMgr::releaseLogReadyLock ( )
inline
void Atlas::LogMgr::releaseStatsLock ( )
inline
void Atlas::LogMgr::setRecoveryLogPointer ( LogStructure *  log_ptr,
std::memory_order  mem_order 
)
inline
void Atlas::LogMgr::setRegionId ( region_id_t  id)
inline
void Atlas::LogMgr::signalLogReady ( )
inline
void Atlas::LogMgr::syncDataFlush ( )
void Atlas::LogMgr::syncLogFlush ( )
void Atlas::LogMgr::waitLogReady ( )
inline

The documentation for this class was generated from the following files: