Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2013 17:07:57 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r251312 - stable/8/usr.bin/top
Message-ID:  <201306031707.r53H7v7K082274@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306031707.r53H7v7K082274>