Project

General

Profile

Actions

Bug #1630

closed

ps -S not working because kinfo_proc.kp_cru is not filled

Added by lentferj almost 15 years ago. Updated almost 15 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

when trying to improve top I was looking into ps's output when using option -S and found with the help of alexh that the numbers reported back or not what is described in man page:

-S : Change the way the process time is calculated by summing all exited children to their parent process

This seems due to the fact that for summing up childrens cpu time kinfo_proc.kp_cru is used in ps/print.c :

443     if (sumrusage) {
444 secs += KI_PROC(k, cru).ru_utime.tv_sec +
445 KI_PROC(k, cru).ru_stime.tv_sec;
446 psecs += KI_PROC(k, cru).ru_utime.tv_usec +
447 KI_PROC(k, cru).ru_stime.tv_usec;
448 }

scanning through DF sources in http://grok.x12.su gives me the impression that kinfo_proc.kp_cru is not filled anywhere.

Other BSDs use similar approach for ps -S (fbsd: ki_childtime, obsd: p_uctime_sec), but these contain actual data (fbsd: kern_proc.c,obsd: kvm_proc.c).

So the question is, is this a ps bug and we should remove option -S (or add note that this doesn't work on DF) or should we actually will kp_cru with meaningful data?

Jan
___________________________________________________
Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.!
http://produkte.web.de/go/02/

Actions

Also available in: Atom PDF