day@kovacs.UUCP (Dave Yost) (06/05/85)
Many years ago at Usenix in Austin, Texas (wadda time!) the now-famous George Goble of Purdue showed a film of a continuous ps display running on a sattelite processor which peeked into the /dev/mem of its planet. One wonderful little feature of this was that the wait channel was listed symbolically. Oh, such a useful feature! I put that capability into the Fortune ps and kernel a couple of years ago. Has anyone done it for 4.2, and would they please tell me about it and send it to Berkeley? Thanks. It's also nice to be able to get valid information no matter where the vmunix you booted from is. You just put pointers to everything in nailed-down places in kernel memory and have ps, pstat, vmstat, etc. look there instead of in the symbol table of /vmunix. A Fortune ps looks like this: % ps alx FLAGS S UID PID PPID CPU PRI NICE SZ WCHAN TTY TIME CMD KC S 0 0 0 211 0 20 2 runout ? 534:53 swapper C S 0 1 0 0 30 20 8 (wait) ? 0:11 /etc/init C S 0 894 1 0 40 20 23 (pause) ? 0:01 /etc/cron C S 101 904 1 18 30 20 52 (wait) co 0:21 -csh C S 0 907 1 0 25 20 8 tty6,2+56 ? 0:00 /etc/init C S 0 961 1 0 29 20 15 tty6,0+28 02 0:00 - n C S 101 985 1 3 30 20 43 (wait) 01 0:22 -csh C R 0 994 985 36 51 20 20 01 0:01 ps alx C S 101 995 904 15 21 20 45 buf[3] co 0:00 cat /etc/termcap While we're at it, check these out: % vmstat -c --Procs- Traps/sec -----%Cpu----- ---Int priority-- Non-int priority RQ DW SW INT SYS CSW US NI SY IN ID 5 4 3 2 1 0 5 4 3 2 1 0 1 1 0 0 0 0 2 0 2 0 96 0 0 0 0 0 0 0 0 0 0 0100 And would you believe pstat -u takes a pid instead of a upage address? % pstat -u 985 upage: in core command="csh" uid=101 gid=0 ruid=101 rgid=0 segflg=0 error=0 base=2106308 count=900 offset=6555 cdir=fd0a4 dbuf="day" dirp=0 dent=3707, "day" pdir=0 dseg 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fc8d4 fc8d4 fc8d4 fc8d4 fc8d4 args 7ffe2c 0 391 0 0 sigs 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 tsize=75 dsize=24 ssize=17 utime=19 stime=4 cutime=2 cstime=8 ar0=dfffb0 intflg=0 ttyp=e3af2 ttydev=1,1 rsav dff800 0 2000 7f 3e 2000 10c8 dff84a 7ffdf0 ff7c8 dfff3c dfff1c 6cba ssav 0 1 0 2b 102 b4 ff7c8 ff834 ff7c8 ff834 dfff6c dfff48 6f3a qsav ffff 2 fc58 7f 106 2 dffa08 16c48 7ffdf0 dff839 dfffa8 dfff8c a678 % pstat -C Total Memory = 1024K bytes Slot A contains Crt, Version 1.1 Slot B contains a board with no ROMs Slot E contains Hard boot, Version 1.1 --Dave Yost
chris@umcp-cs.UUCP (Chris Torek) (06/08/85)
Actually, BRL's csleep (commented sleep) makes this ridiculously easy: just print p->p_slmsg if (p->p_wchan && p->p_slmsg). It isn't the same as what you'd get if you scanned the /vmunix symbol table ala adb, but it works pretty well. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland