add TregionPrefetch()

This commit is contained in:
Sears Russell 2010-03-31 22:41:33 +00:00
parent 358f037441
commit ff2f2e9e1e
2 changed files with 6 additions and 1 deletions

View file

@ -504,7 +504,11 @@ void TregionForce(int xid, pageid_t firstPage) {
stasis_buffer_manager_t * bm = stasis_runtime_buffer_manager(); stasis_buffer_manager_t * bm = stasis_runtime_buffer_manager();
bm->forcePageRange(bm, firstPage, endOfRange); bm->forcePageRange(bm, firstPage, endOfRange);
} }
void TregionPrefetch(int xid, pageid_t firstPage) {
stasis_buffer_manager_t * bm = stasis_runtime_buffer_manager();
pageid_t endOfRange = firstPage + TregionSize(xid, firstPage);
bm->prefetchPages(bm, firstPage, endOfRange);
}
stasis_operation_impl stasis_op_impl_boundary_tag_alloc() { stasis_operation_impl stasis_op_impl_boundary_tag_alloc() {
stasis_operation_impl o = { stasis_operation_impl o = {
OPERATION_ALLOC_BOUNDARY_TAG, OPERATION_ALLOC_BOUNDARY_TAG,

View file

@ -32,6 +32,7 @@ pageid_t TregionAlloc(int xid, pageid_t pageCount, int allocaionManager);
void TregionDealloc(int xid, pageid_t firstPage); void TregionDealloc(int xid, pageid_t firstPage);
pageid_t TregionSize(int xid, pageid_t firstPage); pageid_t TregionSize(int xid, pageid_t firstPage);
void TregionForce(int xid, pageid_t pid); void TregionForce(int xid, pageid_t pid);
void TregionPrefetch(int xid, pageid_t firstPage);
/** Currently, this function is O(n) in the number of regions, so be careful! */ /** Currently, this function is O(n) in the number of regions, so be careful! */
void TregionFindNthActive(int xid, pageid_t n, pageid_t * firstPage, pageid_t * size); void TregionFindNthActive(int xid, pageid_t n, pageid_t * firstPage, pageid_t * size);