A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:mquinson/simgrid
[simgrid.git]
/
src
/
mc
/
PageStore.cpp
diff --git
a/src/mc/PageStore.cpp
b/src/mc/PageStore.cpp
index
88ea806
..
3289157
100644
(file)
--- a/
src/mc/PageStore.cpp
+++ b/
src/mc/PageStore.cpp
@@
-11,9
+11,9
@@
#include <xbt.h>
#include <xbt.h>
-#include "PageStore.hpp"
+#include "
src/mc/
PageStore.hpp"
-#include "mc_mmu.h"
+#include "
src/mc/
mc_mmu.h"
extern "C" {
extern "C" {
@@
-39,24
+39,22
@@
PageStore::hash_type mc_hash_page(const void* data)
// This djb2:
std::uint64_t hash = 5381;
// This djb2:
std::uint64_t hash = 5381;
- for (std::size_t i = 0; i != n; ++i)
{
+ for (std::size_t i = 0; i != n; ++i)
hash = ((hash << 5) + hash) + values[i];
hash = ((hash << 5) + hash) + values[i];
- }
return hash;
}
// ***** snapshot_page_manager
PageStore::PageStore(size_t size) :
return hash;
}
// ***** snapshot_page_manager
PageStore::PageStore(size_t size) :
- memory_(
NULL
), capacity_(0), top_index_(0)
+ memory_(
nullptr
), capacity_(0), top_index_(0)
{
// Using mmap in order to be able to expand the region
// by relocating it somewhere else in the virtual memory
// space:
{
// Using mmap in order to be able to expand the region
// by relocating it somewhere else in the virtual memory
// space:
- void* memory = ::mmap(
NULL
, size << xbt_pagebits, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_POPULATE, -1, 0);
- if (memory == MAP_FAILED)
{
+ void* memory = ::mmap(
nullptr
, size << xbt_pagebits, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_POPULATE, -1, 0);
+ if (memory == MAP_FAILED)
xbt_die("Could not mmap initial snapshot pages.");
xbt_die("Could not mmap initial snapshot pages.");
- }
this->top_index_ = 0;
this->capacity_ = size;
this->top_index_ = 0;
this->capacity_ = size;
@@
-77,9
+75,8
@@
void PageStore::resize(std::size_t size)
// Expand the memory region by moving it into another
// virtual memory address if necessary:
void* new_memory = mremap(this->memory_, old_bytesize, new_bytesize, MREMAP_MAYMOVE);
// Expand the memory region by moving it into another
// virtual memory address if necessary:
void* new_memory = mremap(this->memory_, old_bytesize, new_bytesize, MREMAP_MAYMOVE);
- if (new_memory == MAP_FAILED)
{
+ if (new_memory == MAP_FAILED)
xbt_die("Could not mremap snapshot pages.");
xbt_die("Could not mremap snapshot pages.");
- }
this->capacity_ = size;
this->memory_ = new_memory;
this->capacity_ = size;
this->memory_ = new_memory;
@@
-95,10
+92,9
@@
std::size_t PageStore::alloc_page()
if (this->free_pages_.empty()) {
// Expand the region:
if (this->free_pages_.empty()) {
// Expand the region:
- if (this->top_index_ == this->capacity_)
{
+ if (this->top_index_ == this->capacity_)
// All the pages are allocated, we need add more pages:
this->resize(2 * this->capacity_);
// All the pages are allocated, we need add more pages:
this->resize(2 * this->capacity_);
- }
// Use a page from the top:
return this->top_index_++;
// Use a page from the top:
return this->top_index_++;
@@
-171,7
+167,7
@@
std::size_t PageStore::store_page(void* page)
#include <memory>
#include <memory>
-#include "mc/PageStore.hpp"
+#include "
src/
mc/PageStore.hpp"
static int value = 0;
static int value = 0;
@@
-182,11
+178,9
@@
static void new_content(void* data, std::size_t size)
static void* getpage()
{
static void* getpage()
{
- return mmap(
NULL
, getpagesize(), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ return mmap(
nullptr
, getpagesize(), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
}
}
-extern "C" {
-
XBT_TEST_SUITE("mc_page_store", "Page store");
XBT_TEST_UNIT("base", test_mc_page_store, "Test adding/removing pages in the store")
XBT_TEST_SUITE("mc_page_store", "Page store");
XBT_TEST_UNIT("base", test_mc_page_store, "Test adding/removing pages in the store")
@@
-235,8
+229,6
@@
XBT_TEST_UNIT("base", test_mc_page_store, "Test adding/removing pages in the sto
xbt_test_assert(store->size()==2, "Bad size");
}
xbt_test_assert(store->size()==2, "Bad size");
}
-}
-
#endif /* SIMGRID_TEST */
}
#endif /* SIMGRID_TEST */
}