Commit e577ebde authored by Wu Fengguang's avatar Wu Fengguang Committed by Linus Torvalds

page-types: make voffset local variables

Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4a1b6726
...@@ -159,7 +159,6 @@ static unsigned long opt_size[MAX_ADDR_RANGES]; ...@@ -159,7 +159,6 @@ static unsigned long opt_size[MAX_ADDR_RANGES];
static int nr_vmas; static int nr_vmas;
static unsigned long pg_start[MAX_VMAS]; static unsigned long pg_start[MAX_VMAS];
static unsigned long pg_end[MAX_VMAS]; static unsigned long pg_end[MAX_VMAS];
static unsigned long voffset;
#define MAX_BIT_FILTERS 64 #define MAX_BIT_FILTERS 64
static int nr_bit_filters; static int nr_bit_filters;
...@@ -328,7 +327,8 @@ static char *page_flag_longname(uint64_t flags) ...@@ -328,7 +327,8 @@ static char *page_flag_longname(uint64_t flags)
* page list and summary * page list and summary
*/ */
static void show_page_range(unsigned long offset, uint64_t flags) static void show_page_range(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
static uint64_t flags0; static uint64_t flags0;
static unsigned long voff; static unsigned long voff;
...@@ -354,7 +354,8 @@ static void show_page_range(unsigned long offset, uint64_t flags) ...@@ -354,7 +354,8 @@ static void show_page_range(unsigned long offset, uint64_t flags)
count = 1; count = 1;
} }
static void show_page(unsigned long offset, uint64_t flags) static void show_page(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
if (opt_pid) if (opt_pid)
printf("%lx\t", voffset); printf("%lx\t", voffset);
...@@ -435,7 +436,6 @@ static uint64_t well_known_flags(uint64_t flags) ...@@ -435,7 +436,6 @@ static uint64_t well_known_flags(uint64_t flags)
return flags; return flags;
} }
/* /*
* page frame walker * page frame walker
*/ */
...@@ -467,7 +467,8 @@ static int hash_slot(uint64_t flags) ...@@ -467,7 +467,8 @@ static int hash_slot(uint64_t flags)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
static void add_page(unsigned long offset, uint64_t flags) static void add_page(unsigned long voffset,
unsigned long offset, uint64_t flags)
{ {
flags = expand_overloaded_flags(flags); flags = expand_overloaded_flags(flags);
...@@ -478,16 +479,18 @@ static void add_page(unsigned long offset, uint64_t flags) ...@@ -478,16 +479,18 @@ static void add_page(unsigned long offset, uint64_t flags)
return; return;
if (opt_list == 1) if (opt_list == 1)
show_page_range(offset, flags); show_page_range(voffset, offset, flags);
else if (opt_list == 2) else if (opt_list == 2)
show_page(offset, flags); show_page(voffset, offset, flags);
nr_pages[hash_slot(flags)]++; nr_pages[hash_slot(flags)]++;
total_pages++; total_pages++;
} }
#define KPAGEFLAGS_BATCH (64 << 10) /* 64k pages */ #define KPAGEFLAGS_BATCH (64 << 10) /* 64k pages */
static void walk_pfn(unsigned long index, unsigned long count) static void walk_pfn(unsigned long voffset,
unsigned long index,
unsigned long count)
{ {
uint64_t buf[KPAGEFLAGS_BATCH]; uint64_t buf[KPAGEFLAGS_BATCH];
unsigned long batch; unsigned long batch;
...@@ -501,7 +504,7 @@ static void walk_pfn(unsigned long index, unsigned long count) ...@@ -501,7 +504,7 @@ static void walk_pfn(unsigned long index, unsigned long count)
break; break;
for (i = 0; i < pages; i++) for (i = 0; i < pages; i++)
add_page(index + i, buf[i]); add_page(voffset + i, index + i, buf[i]);
index += pages; index += pages;
count -= pages; count -= pages;
...@@ -525,9 +528,8 @@ static void walk_vma(unsigned long index, unsigned long count) ...@@ -525,9 +528,8 @@ static void walk_vma(unsigned long index, unsigned long count)
for (i = 0; i < pages; i++) { for (i = 0; i < pages; i++) {
pfn = pagemap_pfn(buf[i]); pfn = pagemap_pfn(buf[i]);
voffset = index + i;
if (pfn) if (pfn)
walk_pfn(pfn, 1); walk_pfn(index + i, pfn, 1);
} }
index += pages; index += pages;
...@@ -537,8 +539,9 @@ static void walk_vma(unsigned long index, unsigned long count) ...@@ -537,8 +539,9 @@ static void walk_vma(unsigned long index, unsigned long count)
static void walk_task(unsigned long index, unsigned long count) static void walk_task(unsigned long index, unsigned long count)
{ {
int i = 0;
const unsigned long end = index + count; const unsigned long end = index + count;
unsigned long start;
int i = 0;
while (index < end) { while (index < end) {
...@@ -548,11 +551,11 @@ static void walk_task(unsigned long index, unsigned long count) ...@@ -548,11 +551,11 @@ static void walk_task(unsigned long index, unsigned long count)
if (pg_start[i] >= end) if (pg_start[i] >= end)
return; return;
voffset = max_t(unsigned long, pg_start[i], index); start = max_t(unsigned long, pg_start[i], index);
index = min_t(unsigned long, pg_end[i], end); index = min_t(unsigned long, pg_end[i], end);
assert(voffset < index); assert(start < index);
walk_vma(voffset, index - voffset); walk_vma(start, index - start);
} }
} }
...@@ -577,7 +580,7 @@ static void walk_addr_ranges(void) ...@@ -577,7 +580,7 @@ static void walk_addr_ranges(void)
for (i = 0; i < nr_addr_ranges; i++) for (i = 0; i < nr_addr_ranges; i++)
if (!opt_pid) if (!opt_pid)
walk_pfn(opt_offset[i], opt_size[i]); walk_pfn(0, opt_offset[i], opt_size[i]);
else else
walk_task(opt_offset[i], opt_size[i]); walk_task(opt_offset[i], opt_size[i]);
...@@ -879,7 +882,7 @@ int main(int argc, char *argv[]) ...@@ -879,7 +882,7 @@ int main(int argc, char *argv[])
walk_addr_ranges(); walk_addr_ranges();
if (opt_list == 1) if (opt_list == 1)
show_page_range(0, 0); /* drain the buffer */ show_page_range(0, 0, 0); /* drain the buffer */
if (opt_no_summary) if (opt_no_summary)
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment