From 34e3152b64368d4a3672084ebae565d55f320f5d Mon Sep 17 00:00:00 2001 From: Lucas Meneghel Rodrigues <lmr@redhat.com> Date: Tue, 18 May 2010 10:40:15 -0300 Subject: [PATCH 1/2] Minor fixes to PAGE_SIZE handling Signed-off-by: Suzuki <suzuki@in.ibm.com> --- fsx-linux.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fsx-linux.c b/fsx-linux.c index a1642d2..33eb770 100644 --- a/fsx-linux.c +++ b/fsx-linux.c @@ -10,6 +10,8 @@ * * Small changes to work under Linux -- davej@suse.de * + * Minor fixes to PAGE_SIZE handling -- Suzuki <suzuki@in.ibm.com>. + * */ #undef _XOPEN_SOURCE @@ -74,7 +76,7 @@ int logcount = 0; /* total ops */ #define OP_SKIPPED 7 #ifndef PAGE_SIZE -#define PAGE_SIZE 4096 +#define PAGE_SIZE pagesize #endif #define PAGE_MASK (PAGE_SIZE - 1) @@ -129,6 +131,7 @@ int aio_rw(int rw, int fd, char *buf, unsigned len, unsigned offset); FILE * fsxlogf = NULL; int badoff = -1; int closeopen = 0; +int pagesize = 0; static void *round_up(void *ptr, unsigned long align, unsigned long offset) { @@ -493,7 +496,7 @@ domapread(unsigned offset, unsigned size) offset, offset + size - 1, size); pg_offset = offset & PAGE_MASK; - map_size = pg_offset + size; + map_size = (pg_offset + size + PAGE_MASK) & ~PAGE_MASK; #ifdef linux if ((p = (char *)mmap(0, map_size, PROT_READ, MAP_SHARED, fd, @@ -638,7 +641,7 @@ domapwrite(unsigned offset, unsigned size) } } pg_offset = offset & PAGE_MASK; - map_size = pg_offset + size; + map_size = (pg_offset + size + PAGE_MASK) & ~PAGE_MASK; if ((p = (char *)mmap(0, map_size, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, fd, @@ -1106,6 +1109,7 @@ main(int argc, char **argv) if (argc != 1) usage(); fname = argv[0]; + pagesize = getpagesize(); signal(SIGHUP, cleanup); signal(SIGINT, cleanup); -- 1.7.0.1