count = bintree_walk(&pf->tree, &af.ops);
+ printf("\n");
+
for (i = 0; i < KPAGEFLAGS_NUM; i++) {
if (!af.kpageflag[i])
continue;
long int swapped, present, unique, total;
long int biggest = 0, second_biggest;
int count, processes = 0;
+ int len = 0, i;
/*
* walk through all processes, find the one with most present
* pages
*/
+ printf("\rAnalyzing pages for process: ");
list_for_each_entry(ps, &process_list->list, list) {
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ len = printf("% 5d", ps->pid);
+ fflush(stdout);
+
memset(&af, 0, sizeof(af));
af.ops.callback = count_pages;
af.pid = ps->pid;
ps->pages_unique = af.pages_unique;
biggest = MAX(biggest, ps->pages_present + ps->pages_swapped);
}
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ printf("Done \n\n");
printf(" RSS swapped USS total pid");
if (opts->with_threads)
memset(&process_list, 0, sizeof(process_list));
INIT_LIST_HEAD(&process_list.list);
+ printf("Scanning all process IDs\n");
+
if (scan_all_pids(&pf, &process_list, &opts))
return 1;
+ printf("Updating kpageflags\n");
update_kpageflags(&pf);
+ printf("Preparing to print out results\n");
if (opts.parse_mask & PARSE_DUMP)
dump_process_maps(&pf, &process_list, &opts);
else
DIR *dir = NULL;
int pid;
int count = 0;
+ int len = 0, i;
if (is_parse_option(opts, PARSE_PID)) {
list_for_each_entry_safe(pidlist, n, &opts->pidlist, list) {
if (is_parse_option(opts, PARSE_MAP_NAME) &&
!is_parse_option(opts, PARSE_PID)) {
+ printf("Scanning page mappings for process: ");
while (1) {
pid = get_next_pid(&dir);
if (pid <= 0)
break;
+
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ len = printf("% 5d", pid);
+ fflush(stdout);
+
read_pageframe_with_threads(pid, pf, process_list,
opts);
}
+
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ printf("Done \n");
+ len = 0;
}
/* Do not add new pages in the tree after the initial scan */
opts->parse_mask |= PARSE_NOADD_TREE;
+ printf("Scanning page mappings for process: ");
while (1) {
pid = get_next_pid(&dir);
if (pid <= 0)
break;
+
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ len = printf("% 5d", pid);
+ fflush(stdout);
+
read_pageframe_with_threads(pid, pf, process_list, opts);
}
+ for (i = 0; i < len; i++)
+ putchar('\b');
+ printf("Done \n");
return 0;
}