Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jul 2008 16:50:03 GMT
From:      hotlips Internet admin <hostmaster@GTS.Infra-service.CA>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/92412: [libexec] [patch] rpc.rstatd reports bogus packets-per-second info
Message-ID:  <200807081650.m68Go3vf075866@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/92412; it has been noted by GNATS.

From: hotlips Internet admin <hostmaster@GTS.Infra-service.CA>
To: bug-followup@FreeBSD.org
Cc: jhb@freebsd.org
Subject: Re: kern/92412: [libexec] [patch] rpc.rstatd reports bogus
 packets-per-second info
Date: Tue, 8 Jul 2008 12:33:34 -0400 (EDT)

 Recently kern/122875 bug report provoked a change to libexec/rpc.rstatd
 (rather than a still-needed fix to sys/kern/kern_clock.c for RELENG_7 & HEAD) -
 
 Below is an updated patch to re-establish the required fixes
 so that it works properly...
 
 
 Bruce Becker			+1 416 410 0879
 GTS Network Administration	Toronto, Ont.
 Email:	hostmaster@GTS.Infra-service.CA
 
   --------- 8< --------- 8< --------- 8< --------- 8< --------- 8< ---------
 
 --- rstat_proc.c.2008062600	2008-06-26 22:20:37.000000000 -0400
 +++ rstat_proc.c.2008070600	2008-07-06 15:36:25.000000000 -0400
 @@ -125,6 +125,7 @@
       if (! stat_is_init)
           stat_init();
       sincelastreq = 0;
 +    stats_all.s2.if_opackets = stats_all.s3.if_opackets;
       return(&stats_all.s2);
   }
 
 @@ -134,6 +135,7 @@
       if (! stat_is_init)
           stat_init();
       sincelastreq = 0;
 +    stats_all.s1.if_opackets = stats_all.s3.if_opackets;
       return(&stats_all.s1);
   }
 
 @@ -205,13 +207,13 @@
   		exit(1);
   	}
   	for(i = 0; i < RSTAT_CPUSTATES ; i++)
 -		stats_all.s1.cp_time[i] = bsd_cp_time[cp_time_xlat[i]];
 +		stats_all.s3.cp_time[i] = bsd_cp_time[cp_time_xlat[i]];
 
           (void)getloadavg(avrun, sizeof(avrun) / sizeof(avrun[0]));
 
 -	stats_all.s2.avenrun[0] = avrun[0] * FSCALE;
 -	stats_all.s2.avenrun[1] = avrun[1] * FSCALE;
 -	stats_all.s2.avenrun[2] = avrun[2] * FSCALE;
 +	stats_all.s3.avenrun[0] = avrun[0] * FSCALE;
 +	stats_all.s3.avenrun[1] = avrun[1] * FSCALE;
 +	stats_all.s3.avenrun[2] = avrun[2] * FSCALE;
 
   	mib[0] = CTL_KERN;
   	mib[1] = KERN_BOOTTIME;
 @@ -221,13 +223,13 @@
   		exit(1);
   	}
 
 -	stats_all.s2.boottime.tv_sec = btm.tv_sec;
 -	stats_all.s2.boottime.tv_usec = btm.tv_usec;
 +	stats_all.s3.boottime.tv_sec = btm.tv_sec;
 +	stats_all.s3.boottime.tv_usec = btm.tv_usec;
 
 
   #ifdef DEBUG
 -	fprintf(stderr, "%d %d %d %d\n", stats_all.s1.cp_time[0],
 -	    stats_all.s1.cp_time[1], stats_all.s1.cp_time[2], stats_all.s1.cp_time[3]);
 +	fprintf(stderr, "%d %d %d %d\n", stats_all.s3.cp_time[0],
 +	    stats_all.s3.cp_time[1], stats_all.s3.cp_time[2], stats_all.s3.cp_time[3]);
   #endif
 
   #define	FETCH_CNT(stat, cnt) do {					\
 @@ -238,12 +240,12 @@
   	}								\
   } while (0)
 
 -	FETCH_CNT(stats_all.s1.v_pgpgin, vm.v_vnodepgsin);
 -	FETCH_CNT(stats_all.s1.v_pgpgout, vm.v_vnodepgsout);
 -	FETCH_CNT(stats_all.s1.v_pswpin, vm.v_swappgsin);
 -	FETCH_CNT(stats_all.s1.v_pswpout, vm.v_swappgsout);
 -	FETCH_CNT(stats_all.s1.v_intr, sys.v_intr);
 -	FETCH_CNT(stats_all.s2.v_swtch, sys.v_swtch);
 +	FETCH_CNT(stats_all.s3.v_pgpgin, vm.v_vnodepgsin);
 +	FETCH_CNT(stats_all.s3.v_pgpgout, vm.v_vnodepgsout);
 +	FETCH_CNT(stats_all.s3.v_pswpin, vm.v_swappgsin);
 +	FETCH_CNT(stats_all.s3.v_pswpout, vm.v_swappgsout);
 +	FETCH_CNT(stats_all.s3.v_intr, sys.v_intr);
 +	FETCH_CNT(stats_all.s3.v_swtch, sys.v_swtch);
   	gettimeofday(&tm, (struct timezone *) 0);
   	stats_all.s1.v_intr -= hz*(tm.tv_sec - btm.tv_sec) +
   	    hz*(tm.tv_usec - btm.tv_usec)/1000000;
 @@ -262,11 +264,11 @@
   		exit(1);
   	}
 
 -	stats_all.s1.if_ipackets = 0;
 -	stats_all.s1.if_opackets = 0;
 -	stats_all.s1.if_ierrors = 0;
 -	stats_all.s1.if_oerrors = 0;
 -	stats_all.s1.if_collisions = 0;
 +	stats_all.s3.if_ipackets = 0;
 +	stats_all.s3.if_opackets = 0;
 +	stats_all.s3.if_ierrors = 0;
 +	stats_all.s3.if_oerrors = 0;
 +	stats_all.s3.if_collisions = 0;
   	for (i = 1; i <= ifcount; i++) {
   		len = sizeof ifmd;
   		mib[3] = IFMIB_IFDATA;
 @@ -281,11 +283,11 @@
   			exit(1);
   		}
 
 -		stats_all.s1.if_ipackets += ifmd.ifmd_data.ifi_ipackets;
 -		stats_all.s1.if_opackets += ifmd.ifmd_data.ifi_opackets;
 -		stats_all.s1.if_ierrors += ifmd.ifmd_data.ifi_ierrors;
 -		stats_all.s1.if_oerrors += ifmd.ifmd_data.ifi_oerrors;
 -		stats_all.s1.if_collisions += ifmd.ifmd_data.ifi_collisions;
 +		stats_all.s3.if_ipackets += ifmd.ifmd_data.ifi_ipackets;
 +		stats_all.s3.if_opackets += ifmd.ifmd_data.ifi_opackets;
 +		stats_all.s3.if_ierrors += ifmd.ifmd_data.ifi_ierrors;
 +		stats_all.s3.if_oerrors += ifmd.ifmd_data.ifi_oerrors;
 +		stats_all.s3.if_collisions += ifmd.ifmd_data.ifi_collisions;
   	}
   	gettimeofday((struct timeval *)&stats_all.s3.curtime,
   		(struct timezone *) 0);
 



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