X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c91e95dd481317b70cb360fa12ab753584864848..a24865789e18ecc8625a9518db00c95607d541af:/src/mc/mc_page_store.cpp diff --git a/src/mc/mc_page_store.cpp b/src/mc/mc_page_store.cpp index 467ade6905..b6ba6f74cb 100644 --- a/src/mc/mc_page_store.cpp +++ b/src/mc/mc_page_store.cpp @@ -18,12 +18,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_page_snapshot, mc, "Logging specific to mc_page_snapshot"); -extern "C" { - -static void mc_read_pagemap(uint64_t* pagemap, size_t page_start, size_t page_count); - -} - // ***** Utility: /** @brief Compte a hash for the given memory page @@ -34,7 +28,8 @@ static void mc_read_pagemap(uint64_t* pagemap, size_t page_start, size_t page_co * @param data Memory page * @return hash off the page */ -static inline uint64_t mc_hash_page(const void* data) +static inline __attribute__ ((always_inline)) +uint64_t mc_hash_page(const void* data) { const uint64_t* values = (const uint64_t*) data; size_t n = xbt_pagesize / sizeof(uint64_t); @@ -118,7 +113,7 @@ size_t s_mc_pages_store::alloc_page() void s_mc_pages_store::remove_page(size_t pageno) { this->free_pages_.push_back(pageno); - void* page = mc_page_from_number(this->memory_, pageno); + const void* page = this->get_page(pageno); uint64_t hash = mc_hash_page(page); this->hash_index_[hash].erase(pageno); } @@ -151,6 +146,7 @@ size_t s_mc_pages_store::store_page(void* page) // Otherwise, a new page is allocated in the page store and the content // of the page is `memcpy()`-ed to this new page. size_t pageno = alloc_page(); + xbt_assert(this->page_counts_[pageno]==0, "Allocated page is already used"); void* snapshot_page = (void*) this->get_page(pageno); memcpy(snapshot_page, page, xbt_pagesize); page_set.insert(pageno); @@ -162,11 +158,6 @@ size_t s_mc_pages_store::store_page(void* page) extern "C" { -const void* mc_page_store_get_page(mc_pages_store_t page_store, size_t pageno) -{ - return page_store->get_page(pageno); -} - mc_pages_store_t mc_pages_store_new() { return new s_mc_pages_store_t(500);