]> git.itanic.dy.fi Git - scan-pagemap/blobdiff - analyze.c
Print verbose output during operation
[scan-pagemap] / analyze.c
index 4c1b542df0ba4609e6ea4445555fbc191d8db150..57d08694d2fcac4b9011a602797c049b40b36f49 100644 (file)
--- a/analyze.c
+++ b/analyze.c
@@ -179,6 +179,8 @@ void print_page_stats(struct pageframe *pf)
 
        count = bintree_walk(&pf->tree, &af.ops);
 
+       printf("\n");
+
        for (i = 0; i < KPAGEFLAGS_NUM; i++) {
                if (!af.kpageflag[i])
                        continue;
@@ -216,12 +218,19 @@ void print_pid_stats(struct pageframe *pf, struct process *process_list,
        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;
@@ -232,6 +241,9 @@ void print_pid_stats(struct pageframe *pf, struct process *process_list,
                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)