diff -up procps-3.2.7/top.c.p14 procps-3.2.7/top.c --- procps-3.2.7/top.c.p14 2008-09-01 11:36:55.000000000 +0200 +++ procps-3.2.7/top.c 2008-09-01 11:36:55.000000000 +0200 @@ -120,6 +120,8 @@ static int No_ksyms = -1, // set t Loops = -1, // number of iterations, -1 loops forever Secure_mode = 0; // set if some functionality restricted +static int VIRT_vmsize = 0; //use vm_size for VIRT + /* Some cap's stuff to reduce runtime calls -- to accomodate 'Batch' mode, they begin life as empty strings */ static char Cap_clr_eol [CAPBUFSIZ], @@ -1674,6 +1676,9 @@ static void before (char *me) Fieldstab[P_PPD].fmts = pid_fmt; Fieldstab[P_PPD].head = " PPID" + 10 - pid_digits; } + + if (( getenv("STATSIZE")) && ( atoi(getenv("STATSIZE")) == 1 )) + VIRT_vmsize = 1; } @@ -2207,6 +2212,7 @@ static void reframewins (void) } if (!Frames_libflags) Frames_libflags = L_DEFAULT; if (selection_type=='p') Frames_libflags |= PROC_PID; + if (VIRT_vmsize) Frames_libflags |= L_status; } @@ -3186,7 +3192,10 @@ static void task_show (const WIN_t *q, c MKCOL(p->ruser); break; case P_VRT: - MKCOL(scale_num(PAGES_TO_KB(p->size), w, s)); + if (VIRT_vmsize) + MKCOL(scale_num(PAGES_TO_KB(p->vm_size), w, s)); + else + MKCOL(scale_num(PAGES_TO_KB(p->size), w, s)); break; case P_WCH: if (No_ksyms) { diff -up procps-3.2.7/top.1.p14 procps-3.2.7/top.1 --- procps-3.2.7/top.1.p14 2006-06-19 06:33:51.000000000 +0200 +++ procps-3.2.7/top.1 2008-09-01 11:36:55.000000000 +0200 @@ -401,6 +401,8 @@ A task's currently used share of availab The total amount of \*(MV used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used. +(Note: you can define the STATSIZE=1 environment variable and the VIRT +will be calculated from the /proc/#/state VmSize field.) .TP 3 p:\fB SWAP\fR \*(EM Swapped size (kb)