/* dirty a random set of map->size pages. (some may be faulted >once) */ static void dirty_random_pages(struct map *map) { char *p = map->ptr; unsigned int i, nr; nr = nr_pages(map); for (i = 0; i < nr; i++) p[(rand() % nr) * page_size] = rand(); }
static void dirty_whole_mapping(struct map *map) { char *p = map->ptr; unsigned int i, nr; nr = nr_pages(map); for (i = 0; i < nr; i++) p[i * page_size] = rand(); }
static void dirty_mapping_reverse(struct map *map) { char *p = map->ptr; unsigned int i, nr; nr = nr_pages(map) - 1; for (i = nr; i > 0; i--) p[i * page_size] = rand(); }
/* fault in a random set of map->size pages. (some may be faulted >once) */ static void read_random_pages(struct map *map) { char *p = map->ptr; unsigned int i, nr; char buf[page_size]; nr = nr_pages(map); for (i = 0; i < nr; i++) memcpy(buf, p + ((rand() % nr) * page_size), page_size); }
static void read_whole_mapping(struct map *map) { char *p = map->ptr; unsigned int i, nr; char buf[page_size]; nr = nr_pages(map); for (i = 0; i < nr; i++) memcpy(buf, p + (i * page_size), page_size); }
static void read_mapping_reverse(struct map *map) { char *p = map->ptr; unsigned int i, nr; char buf[page_size]; nr = nr_pages(map) - 1; for (i = nr; i > 0; i--) memcpy(buf, p + (i * page_size), page_size); }
static void dirty_every_other_page(struct map *map) { char *p = map->ptr; unsigned int i, nr, first; nr = nr_pages(map); first = rand_bool(); for (i = first; i < nr; i+=2) p[i * page_size] = rand(); }
static void dirty_mapping_reverse(struct map *map) { unsigned int i, nr; nr = nr_pages(map) - 1; for (i = nr; i > 0; i--) { char *p = map->ptr + (i * page_size); mark_page_rw(map, p); *p = rnd(); } }
static void dirty_whole_mapping(struct map *map) { unsigned int i, nr; nr = nr_pages(map); for (i = 0; i < nr; i++) { char *p = map->ptr + (i * page_size); mark_page_rw(map, p); *p = rnd(); } }
static void read_every_other_page(struct map *map) { char *p = map->ptr; unsigned int i, nr, first; char buf[page_size]; nr = nr_pages(map); first = rand_bool(); for (i = first; i < nr; i+=2) memcpy(buf, p + (i * page_size), page_size); }
/* dirty a random set of map->size pages. (some may be faulted >once) */ static void dirty_random_pages(struct map *map) { unsigned int i, nr; nr = nr_pages(map); for (i = 0; i < nr; i++) { off_t offset = (rnd() % nr) * page_size; char *p = map->ptr + offset; mark_page_rw(map, p); *p = rnd(); } }
static void dirty_every_other_page(struct map *map) { unsigned int i, nr, first; nr = nr_pages(map); first = RAND_BOOL(); for (i = first; i < nr; i+=2) { char *p = map->ptr + (i * page_size); mark_page_rw(map, p); *p = rnd(); } }