Itoyori  v0.0.1
ityr::ori::cache_manager< BlockSize > Class Template Reference

#include <cache_manager.hpp>

Public Types

using release_handler = std::conditional_t< enable_lazy_release, release_manager::release_handler, void * >
 

Public Member Functions

 cache_manager (std::size_t cache_size, std::size_t sub_block_size)
 
template<bool SkipFetch, bool IncrementRef>
std::pair< bool, bool > checkout_fast (std::byte *addr, std::size_t size)
 
template<bool SkipFetch, bool IncrementRef>
bool checkout_blk (std::byte *blk_addr, std::byte *req_addr_b, std::byte *req_addr_e, const common::rma::win &win, common::topology::rank_t owner, std::size_t pm_offset)
 
void checkout_complete ()
 
template<bool RegisterDirty, bool DecrementRef>
bool checkin_fast (std::byte *addr, std::size_t size)
 
template<bool RegisterDirty, bool DecrementRef>
void checkin_blk (std::byte *blk_addr, std::byte *req_addr_b, std::byte *req_addr_e)
 
void release ()
 
auto release_lazy ()
 
void acquire ()
 
template<typename ReleaseHandler >
void acquire (ReleaseHandler rh)
 
void set_readonly (void *addr, std::size_t size)
 
void unset_readonly (void *addr, std::size_t size)
 
void poll ()
 
void ensure_all_cache_clean ()
 
void ensure_evicted (void *addr)
 
void clear_tlb ()
 
void discard_dirty (std::byte *blk_addr, std::byte *req_addr_b, std::byte *req_addr_e)
 
void get_copy_blk (std::byte *blk_addr, std::byte *req_addr_b, std::byte *req_addr_e, std::byte *to_addr)
 
void put_copy_blk (std::byte *blk_addr, std::byte *req_addr_b, std::byte *req_addr_e, const std::byte *from_addr)
 
void cache_prof_begin ()
 
void cache_prof_end ()
 
void cache_prof_print () const
 

Member Typedef Documentation

◆ release_handler

template<block_size_t BlockSize>
using ityr::ori::cache_manager< BlockSize >::release_handler = std::conditional_t<enable_lazy_release, release_manager::release_handler, void*>

Constructor & Destructor Documentation

◆ cache_manager()

template<block_size_t BlockSize>
ityr::ori::cache_manager< BlockSize >::cache_manager ( std::size_t  cache_size,
std::size_t  sub_block_size 
)
inline

Member Function Documentation

◆ acquire() [1/2]

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::acquire ( )
inline

◆ acquire() [2/2]

template<block_size_t BlockSize>
template<typename ReleaseHandler >
void ityr::ori::cache_manager< BlockSize >::acquire ( ReleaseHandler  rh)
inline

◆ cache_prof_begin()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::cache_prof_begin ( )
inline

◆ cache_prof_end()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::cache_prof_end ( )
inline

◆ cache_prof_print()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::cache_prof_print ( ) const
inline

◆ checkin_blk()

template<block_size_t BlockSize>
template<bool RegisterDirty, bool DecrementRef>
void ityr::ori::cache_manager< BlockSize >::checkin_blk ( std::byte *  blk_addr,
std::byte *  req_addr_b,
std::byte *  req_addr_e 
)
inline

◆ checkin_fast()

template<block_size_t BlockSize>
template<bool RegisterDirty, bool DecrementRef>
bool ityr::ori::cache_manager< BlockSize >::checkin_fast ( std::byte *  addr,
std::size_t  size 
)
inline

◆ checkout_blk()

template<block_size_t BlockSize>
template<bool SkipFetch, bool IncrementRef>
bool ityr::ori::cache_manager< BlockSize >::checkout_blk ( std::byte *  blk_addr,
std::byte *  req_addr_b,
std::byte *  req_addr_e,
const common::rma::win win,
common::topology::rank_t  owner,
std::size_t  pm_offset 
)
inline

◆ checkout_complete()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::checkout_complete ( )
inline

◆ checkout_fast()

template<block_size_t BlockSize>
template<bool SkipFetch, bool IncrementRef>
std::pair<bool, bool> ityr::ori::cache_manager< BlockSize >::checkout_fast ( std::byte *  addr,
std::size_t  size 
)
inline

◆ clear_tlb()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::clear_tlb ( )
inline

◆ discard_dirty()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::discard_dirty ( std::byte *  blk_addr,
std::byte *  req_addr_b,
std::byte *  req_addr_e 
)
inline

◆ ensure_all_cache_clean()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::ensure_all_cache_clean ( )
inline

◆ ensure_evicted()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::ensure_evicted ( void *  addr)
inline

◆ get_copy_blk()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::get_copy_blk ( std::byte *  blk_addr,
std::byte *  req_addr_b,
std::byte *  req_addr_e,
std::byte *  to_addr 
)
inline

◆ poll()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::poll ( )
inline

◆ put_copy_blk()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::put_copy_blk ( std::byte *  blk_addr,
std::byte *  req_addr_b,
std::byte *  req_addr_e,
const std::byte *  from_addr 
)
inline

◆ release()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::release ( )
inline

◆ release_lazy()

template<block_size_t BlockSize>
auto ityr::ori::cache_manager< BlockSize >::release_lazy ( )
inline

◆ set_readonly()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::set_readonly ( void *  addr,
std::size_t  size 
)
inline

◆ unset_readonly()

template<block_size_t BlockSize>
void ityr::ori::cache_manager< BlockSize >::unset_readonly ( void *  addr,
std::size_t  size 
)
inline

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