From brueffer@maquis.hitnet.rwth-aachen.de  Thu Dec 18 17:39:44 2003
Return-Path: <brueffer@maquis.hitnet.rwth-aachen.de>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id B88D516A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 18 Dec 2003 17:39:43 -0800 (PST)
Received: from ms-dienst.rz.rwth-aachen.de (ms-2.rz.RWTH-Aachen.DE [134.130.3.131])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 54D7343D54
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 18 Dec 2003 17:39:39 -0800 (PST)
	(envelope-from brueffer@maquis.hitnet.rwth-aachen.de)
Received: from r220-1 (r220-1.rz.RWTH-Aachen.DE [134.130.3.31])
 by ms-dienst.rz.rwth-aachen.de
 (iPlanet Messaging Server 5.2 HotFix 1.12 (built Feb 13 2003))
 with ESMTP id <0HQ400LQ1CM2U8@ms-dienst.rz.rwth-aachen.de> for
 FreeBSD-gnats-submit@freebsd.org; Fri, 19 Dec 2003 02:39:38 +0100 (MET)
Received: from relay.RWTH-Aachen.DE ([134.130.3.1])
	by r220-1 (MailMonitor for SMTP v1.2.2 ) ; Fri,
 19 Dec 2003 02:39:37 +0100 (MET)
Received: from maquis.hitnet.rwth-aachen.de
 (maquis.hitnet.RWTH-Aachen.DE [137.226.181.137])
	by relay.rwth-aachen.de (8.12.10/8.12.7-1) with ESMTP id hBJ1dbsU025970	for
 <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Dec 2003 02:39:37 +0100 (MET)
Received: by maquis.hitnet.rwth-aachen.de (Postfix, from userid 1001)
	id 5E48A212; Fri, 19 Dec 2003 02:49:19 +0100 (CET)
Message-Id: <20031219014919.5E48A212@maquis.hitnet.rwth-aachen.de>
Date: Fri, 19 Dec 2003 02:49:19 +0100 (CET)
From: Markus Brueffer <brueffer@phoenix-systems.de>
Reply-To: Markus Brueffer <brueffer@phoenix-systems.de>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [patch] x11/kdebase3: fix various processlist-issues of ksysguardd
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         60381
>Category:       ports
>Synopsis:       [patch] x11/kdebase3: fix various processlist-issues of ksysguardd
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kde
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 18 17:40:18 PST 2003
>Closed-Date:    Thu Feb 05 03:41:06 PST 2004
>Last-Modified:  Thu Feb 05 03:41:06 PST 2004
>Originator:     Markus Brueffer
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD cheops.phoenix 5.1-CURRENT FreeBSD 5.1-CURRENT #11: Thu Nov 13 12:26:36 CET 2003 brueffer@cheops.phoenix:/usr/obj/usr/src/sys/CHEOPS i386

>Description:
	x11/kdebase3: fix various processlist-issues of ksysguardd:

	- Processlist doesn't show correct User CPU values
	- -STABLE: Processlist doesn't show correct Vm-Size values.
	- -CURRENT: Processlist doesn't show correct VmRss values
	- -CURRENT: Processlist shows wrong process names:
	  http://www.brueffer.de/ksysguard/processlist1.png
	  http://www.brueffer.de/ksysguard/processlist2.png

>How-To-Repeat:
>Fix:

--- kdebase3.diff begins here ---
diff -ruN kdebase3.orig/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c kdebase3/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c
--- kdebase3.orig/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c	Fri Dec 19 01:58:56 2003
+++ kdebase3/files/patch-ksysguard-ksysguardd-FreeBSD-ProcessList.c	Fri Dec 19 01:59:21 2003
@@ -1,6 +1,15 @@
---- ksysguard/ksysguardd/FreeBSD/ProcessList.c	Wed May  7 07:44:17 2003
-+++ ksysguard/ksysguardd/FreeBSD/ProcessList.c	Wed Aug 27 18:51:18 2003
-@@ -168,6 +168,8 @@
+--- ksysguard/ksysguardd/FreeBSD/ProcessList.c.orig	Wed May  7 13:44:17 2003
++++ ksysguard/ksysguardd/FreeBSD/ProcessList.c	Mon Dec 15 03:38:38 2003
+@@ -46,6 +46,8 @@
+ 
+ CONTAINER ProcessList = 0;
+ 
++int fscale;
++
+ #define BUFSIZE 1024
+ 
+ typedef struct
+@@ -168,6 +170,8 @@
  	int mib[4];
  	struct kinfo_proc p;
  	size_t len;
@@ -9,7 +18,31 @@
  
  	if ((ps = findProcessInList(pid)) == 0)
  	{
-@@ -239,10 +241,17 @@
+@@ -222,27 +226,35 @@
+ 	strncpy(ps->userName,pwent&&pwent->pw_name? pwent->pw_name:"????",sizeof(ps->userName));
+ 	ps->userName[sizeof(ps->userName)-1]='\0';
+ 
++	if (fscale == 0)
++		ps->userLoad = 0;
++	else
+ #if __FreeBSD_version >= 500015
+-        ps->userLoad = p.ki_pctcpu / 100;
++		ps->userLoad = 100.0 * (double) p.ki_pctcpu / fscale;
+ 	ps->vmSize   = p.ki_size;
+-	ps->vmRss    = p.ki_rssize;
++	ps->vmRss    = p.ki_rssize * getpagesize();
+ 	strncpy(ps->name,p.ki_comm? p.ki_comm:"????",sizeof(ps->name));
+ 	strcpy(ps->status,(p.ki_stat>=1)&&(p.ki_stat<=5)? statuses[p.ki_stat-1]:"????");
+ #else
+-        ps->userLoad = p.kp_proc.p_pctcpu / 100;
+-	ps->vmSize   = (p.kp_eproc.e_vm.vm_tsize +
+-			p.kp_eproc.e_vm.vm_dsize +
+-			p.kp_eproc.e_vm.vm_ssize) * getpagesize();
++		ps->userLoad = 100.0 * (double) p.kp_proc.p_pctcpu / fscale;
++	ps->vmSize   = p.kp_eproc.e_vm.vm_map.size;
+ 	ps->vmRss    = p.kp_eproc.e_vm.vm_rssize * getpagesize();
+ 	strncpy(ps->name,p.kp_proc.p_comm ? p.kp_proc.p_comm : "????", sizeof(ps->name));
+ 	strcpy(ps->status,(p.kp_proc.p_stat>=1)&&(p.kp_proc.p_stat<=5)? statuses[p.kp_proc.p_stat-1]:"????");
  #endif
  
          /* process command line */
@@ -27,7 +60,26 @@
 +	if ((sysctl(mib, 4, buf, &buflen, 0, 0) == -1) || !buflen)
 + 		strcpy(ps->cmdline, "????"); 
 +        else
-+	        strncpy(ps->cmdline, buf, buflen - 1);
++	        strncpy(ps->cmdline, buf, buflen);
  
  	return (0);
+ }
+@@ -280,6 +292,7 @@
+ void
+ initProcessList(struct SensorModul* sm)
+ {
++	size_t fscalelen;
+ 	ProcessList = new_ctnr();
+ 
+ 	registerMonitor("ps", "table", printProcessList, printProcessListInfo, sm);
+@@ -290,6 +303,10 @@
+ 		registerCommand("kill", killProcess);
+ 		registerCommand("setpriority", setPriority);
+ 	}
++
++	fscalelen = sizeof(fscale);
++	if (sysctlbyname("kern.fscale", &fscale, &fscalelen, NULL, 0) == -1)
++		fscale = 0;
+ 
+ 	updateProcessList();
  }
--- kdebase3.diff ends here ---



>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->kde 
Responsible-Changed-By: clement 
Responsible-Changed-When: Thu Dec 18 17:46:04 PST 2003 
Responsible-Changed-Why:  
Over to maintainer(s).  

http://www.freebsd.org/cgi/query-pr.cgi?pr=60381 

From: Markus Brueffer <brueffer@phoenix-systems.de>
To: freebsd-gnats-submit@FreeBSD.org, brueffer@phoenix-systems.de
Cc:  
Subject: Re: ports/60381: [patch] x11/kdebase3: fix various processlist-issues of ksysguardd
Date: Thu, 5 Feb 2004 11:43:36 +0100

 Patch was applied upstream and kde 3.2.0 was committed today.
 
 PR can be closed.
 
State-Changed-From-To: open->closed 
State-Changed-By: lofi 
State-Changed-When: Thu Feb 5 03:40:43 PST 2004 
State-Changed-Why:  
Thanks for reporting! 


http://www.freebsd.org/cgi/query-pr.cgi?pr=60381 
>Unformatted:
