svn commit: r251312 - stable/8/usr.bin/top

John Baldwin jhb at FreeBSD.org
Mon Jun 3 17:07:58 UTC 2013


Author: jhb
Date: Mon Jun  3 17:07:57 2013
New Revision: 251312
URL: http://svnweb.freebsd.org/changeset/base/251312

Log:
  MFC 248167:
  Fix the 'C' field for a running thread to match the behavior described
  in the manpage by having it display the current CPU (ki_oncpu) rather
  than the previously used CPU (ki_lastcpu).  ki_lastcpu is still used for
  all other thread states.

Modified:
  stable/8/usr.bin/top/machine.c
Directory Properties:
  stable/8/usr.bin/top/   (props changed)

Modified: stable/8/usr.bin/top/machine.c
==============================================================================
--- stable/8/usr.bin/top/machine.c	Mon Jun  3 17:07:34 2013	(r251311)
+++ stable/8/usr.bin/top/machine.c	Mon Jun  3 17:07:57 2013	(r251312)
@@ -796,7 +796,7 @@ format_next_process(caddr_t handle, char
 	double pct;
 	struct handle *hp;
 	char status[16];
-	int state;
+	int cpu, state;
 	struct rusage ru, *rup;
 	long p_tot, s_tot;
 	char *proc_fmt, thr_buf[6], jid_buf[6];
@@ -995,6 +995,13 @@ format_next_process(caddr_t handle, char
 	}
 
 	/* format this entry */
+	if (smpmode) {
+		if (state == SRUN && pp->ki_oncpu != 0xff)
+			cpu = pp->ki_oncpu;
+		else
+			cpu = pp->ki_lastcpu;
+	} else
+		cpu = 0;
 	proc_fmt = smpmode ? smp_Proc_format : up_Proc_format;
 	if (ps.thread != 0)
 		thr_buf[0] = '\0';
@@ -1012,7 +1019,7 @@ format_next_process(caddr_t handle, char
 	    format_k2(PROCSIZE(pp)),
 	    format_k2(pagetok(pp->ki_rssize)),
 	    status,
-	    smpmode ? pp->ki_lastcpu : 0,
+	    cpu,
 	    format_time(cputime),
 	    ps.wcpu ? 100.0 * weighted_cpu(pct, pp) : 100.0 * pct,
 	    screen_width > cmdlengthdelta ? screen_width - cmdlengthdelta : 0,


More information about the svn-src-stable-8 mailing list