Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Oct 2014 23:42:23 +0000 (UTC)
From:      Hiroki Sato <hrs@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r272866 - stable/10/usr.bin/vmstat
Message-ID:  <201410092342.s99NgNJo084882@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hrs
Date: Thu Oct  9 23:42:22 2014
New Revision: 272866
URL: https://svnweb.freebsd.org/changeset/base/272866

Log:
  MFC r271410:
  
    Fix header output when -P is specified and (ncpus - 1) != maxid.

Modified:
  stable/10/usr.bin/vmstat/vmstat.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/vmstat/vmstat.c
==============================================================================
--- stable/10/usr.bin/vmstat/vmstat.c	Thu Oct  9 23:41:11 2014	(r272865)
+++ stable/10/usr.bin/vmstat/vmstat.c	Thu Oct  9 23:42:22 2014	(r272866)
@@ -650,6 +650,8 @@ dovmstat(unsigned int interval, int reps
 	uptime = getuptime();
 	halfuptime = uptime / 2;
 	rate_adj = 1;
+	ncpus = 1;
+	maxid = 0;
 
 	/*
 	 * If the user stops the program (control-Z) and then resumes it,
@@ -695,7 +697,7 @@ dovmstat(unsigned int interval, int reps
 	}
 	for (hdrcnt = 1;;) {
 		if (!--hdrcnt)
-			printhdr(ncpus, cpumask);
+			printhdr(maxid, cpumask);
 		if (kd != NULL) {
 			if (kvm_getcptime(kd, cur.cp_time) < 0)
 				errx(1, "kvm_getcptime: %s", kvm_geterr(kd));
@@ -746,7 +748,7 @@ dovmstat(unsigned int interval, int reps
 				errx(1, "%s", devstat_errbuf);
 				break;
 			case 1:
-				printhdr(ncpus, cpumask);
+				printhdr(maxid, cpumask);
 				break;
 			default:
 				break;
@@ -815,7 +817,7 @@ dovmstat(unsigned int interval, int reps
 }
 
 static void
-printhdr(int ncpus, u_long cpumask)
+printhdr(int maxid, u_long cpumask)
 {
 	int i, num_shown;
 
@@ -827,7 +829,7 @@ printhdr(int ncpus, u_long cpumask)
 		(void)printf("disk");
 	(void)printf("   faults         ");
 	if (Pflag) {
-		for (i = 0; i < ncpus; i++) {
+		for (i = 0; i <= maxid; i++) {
 			if (cpumask & (1ul << i))
 				printf("cpu%-2d    ", i);
 		}
@@ -843,8 +845,10 @@ printhdr(int ncpus, u_long cpumask)
 				     dev_select[i].unit_number);
 	(void)printf("  in   sy   cs");
 	if (Pflag) {
-		for (i = 0; i < ncpus; i++)
-			printf(" us sy id");
+		for (i = 0; i <= maxid; i++) {
+			if (cpumask & (1ul << i))
+				printf(" us sy id");
+		}
 		printf("\n");
 	} else
 		printf(" us sy id\n");



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