[parisc-linux] HPPA Proc problems?

Carlos O'Donell carlos@baldric.uwo.ca
Sun, 1 Dec 2002 11:40:35 -0500


pa,

I'm seeing some weird proc behaviour, like cpu times in the
billions of seconds, but only for a transient amount of time, after
which it corrects itself. Very odd. Just doing 'ps aux www' triggers
this... and not always.

---
root       306  0.0  0.1  4996 1600 ?        S    Nov26   0:00 /usr/sbin/apache
root      7897  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7898  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7899  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7900 99.9  0.0 12992  864 ?        S    Nov27 13600729:46 /usr/sbin/nscd
                                                        ^^^^^^^^^^^ ???

root      7901  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7902  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7903  0.0  0.0 12992  864 ?        S    Nov27   0:00 /usr/sbin/nscd
root      7909  0.0  0.2  5200 3384 ?        S    Nov27   0:00 /usr/bin/X11/xfs -daemon
---
procps 3.1.0-1 The /proc file system utilities.
2.4.19-pa22, gcc-3.1.1 compiled, toolset from unstable.

Any ideas aobut this? Is anyone seeing any odd behavour? 

Berthold from SuSE was commenting about this (building SuSE on HPPA :)
and also noted that his gcc-3.3 compiled kernel has procinfo problems:
procinfo complains that it can't grok his gcc version.

--
Linux 2.4.19-pa20 (xxxx@xxx) (gcc [can't parse]) #???  1CPU [raven.]
-- Berthold's

Linux 2.4.19-pa22 (xxxx@xxx) (gcc 3.1.1 20020715 ) #5 1CPU [firin]
-- Carlos'

In sysutils/procinfo/routines.c

    269     ret = sscanf (line, "Linux version %s (%[^)]) (gcc %[^)]) #%s %[^\n]",
    270                   ver, host, gcc, compno, date);
    271 
    272     if (ret != 5)       /* Damn egcs uses nested ()'s... */
    273         ret = sscanf (line, "Linux version %s (%[^)]) (gcc %[^(] (%*[^)])) #%s %[^\n]",
    274                       ver, host, gcc, compno, date);
    275 
    276     if (ret == 3) {     /* At least we've got ver & host right... */
    277         strcpy (gcc, "[can't parse]");
    278         strcpy (compno, "???");
    279         date[0] = 0;
    280     }

Looks like it might be a regex problem?

c.