#include <msa-DistPageMgr.h>
Public Member Functions | |
bool | canPageOut (void) const |
Return true if this page can be safely written back. | |
bool | canDelete (void) const |
Return true if this page can be safely purged from memory. | |
MSA_Page_StateT () | |
void | write (unsigned int i) |
Write entry i of this page. | |
void | writeClear (void) |
Clear the write list for this page. | |
int | roundUp (int v, int m) |
Return the nearest multiple of m >= v. | |
int | writeSpans (MSA_WriteSpan_t *span) |
Get a list of our written output values as this list of spans. | |
Data Fields | |
MSA_Page_Fault_t | state |
e.g., Read_Fault for a read-only page. | |
bool | locked |
If true, this page is locked in memory. | |
MSA_Listeners | readRequests |
Threads waiting for this page to be paged in from the network. | |
MSA_Listeners | writeRequests |
Threads waiting for this page to be paged out to the network. | |
Private Types | |
enum | { writes_bits = writes_t::store_bits } |
enum | { writes2_bits = writes2_t::store_bits*writes_t::store_bits } |
typedef fixedlength_bitvector < ENTRIES_PER_PAGE > | writes_t |
Write tracking: Somehow, we have to identify the entries in a page that have been written to. | |
typedef writes_t::store_t | writes_store_t |
typedef fixedlength_bitvector < writes_t::len > | writes2_t |
Tracking writes to our writes: a smaller vector, used to avoid the large number of 0's in the writes vector. | |
typedef writes2_t::store_t | writes2_store_t |
Private Attributes | |
writes_t | writes |
writes2_t | writes2 |
Definition at line 115 of file msa-DistPageMgr.h.
typedef fixedlength_bitvector<ENTRIES_PER_PAGE> MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes_t [private] |
Write tracking: Somehow, we have to identify the entries in a page that have been written to.
Our method for doing this is a bitvector: 0's indicate the entry hasn't been written; 1's indicate the entry has been written.
Definition at line 123 of file msa-DistPageMgr.h.
typedef writes_t::store_t MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes_store_t [private] |
Definition at line 125 of file msa-DistPageMgr.h.
typedef fixedlength_bitvector<writes_t::len> MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes2_t [private] |
Tracking writes to our writes: a smaller vector, used to avoid the large number of 0's in the writes vector.
Bit i of writes2 indicates that store_t i of writes has 1's.
Definition at line 131 of file msa-DistPageMgr.h.
typedef writes2_t::store_t MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes2_store_t [private] |
Definition at line 133 of file msa-DistPageMgr.h.
anonymous enum [private] |
anonymous enum [private] |
MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::MSA_Page_StateT | ( | ) | [inline] |
Definition at line 159 of file msa-DistPageMgr.h.
bool MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::canPageOut | ( | void | ) | const [inline] |
Return true if this page can be safely written back.
Definition at line 150 of file msa-DistPageMgr.h.
bool MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::canDelete | ( | void | ) | const [inline] |
Return true if this page can be safely purged from memory.
Definition at line 155 of file msa-DistPageMgr.h.
void MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::write | ( | unsigned int | i | ) | [inline] |
void MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writeClear | ( | void | ) | [inline] |
Clear the write list for this page.
Definition at line 171 of file msa-DistPageMgr.h.
References len.
int MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::roundUp | ( | int | v, | |
int | m | |||
) | [inline] |
int MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writeSpans | ( | MSA_WriteSpan_t * | span | ) | [inline] |
Get a list of our written output values as this list of spans.
Returns the total number of spans written to "span".
Definition at line 188 of file msa-DistPageMgr.h.
References MSA_WriteSpan_t::end, and MSA_WriteSpan_t::start.
writes_t MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes [private] |
Definition at line 124 of file msa-DistPageMgr.h.
writes2_t MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writes2 [private] |
Definition at line 132 of file msa-DistPageMgr.h.
MSA_Page_Fault_t MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::state |
bool MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::locked |
If true, this page is locked in memory.
Pages get locked so people can safely use the non-checking version of "get".
Definition at line 142 of file msa-DistPageMgr.h.
Referenced by MSA_CacheGroup< ENTRY_TYPE, ENTRY_OPS_CLASS, ENTRIES_PER_PAGE >::UnlockPage().
MSA_Listeners MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::readRequests |
Threads waiting for this page to be paged in from the network.
Definition at line 145 of file msa-DistPageMgr.h.
MSA_Listeners MSA_Page_StateT< ENTRY, ENTRIES_PER_PAGE >::writeRequests |
Threads waiting for this page to be paged out to the network.
Definition at line 147 of file msa-DistPageMgr.h.