- remove code for ancient systems - better auto-scaling for slow networks - bigger stats buffer (for many cores) Reference: /n/atom/patch/applied2013/statsupd Date: Wed Jun 19 01:02:51 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/stats.c Wed Jun 19 01:02:10 2013 +++ /sys/src/cmd/stats.c Wed Jun 19 01:02:10 2013 @@ -49,8 +49,8 @@ In = 0, Link, Out, - Err0, Crcerr, + Ovf, Sovf, Frerr, Buferr, @@ -58,6 +58,9 @@ Prom, Mbps, Addr, + + Err0 = Crcerr, + Errlast = Oerr, }; struct Machine @@ -229,7 +232,6 @@ double scale = 1.0; int logscale = 0; int ylabels = 0; -int oldsystem = 0; uint sleeptime = 1000; uint prescale = 1; @@ -367,8 +369,7 @@ datapoint(Graph *g, int x, uvlong v, uvlong vmax) { Point p; - ulong u; - double y; + double u, y; p.x = x; y = ((double)v)/(vmax*scale); @@ -386,15 +387,12 @@ y = (y+2.)/3.; } } - u = Dy(g->r); - u *= y; - u = g->r.max.y - u - Dot; -// u = g->r.max.y - Dy(g->r)*y - Dot; + u = g->r.max.y - Dy(g->r)*y - Dot; + if(u < (double)g->r.min.y) + u = g->r.min.y; + if(u > (double)g->r.max.y-Dot) + u = g->r.max.y-Dot; p.y = u; - if(p.y < g->r.min.y) - p.y = g->r.min.y; - if(p.y > g->r.max.y-Dot) - p.y = g->r.max.y-Dot; return p; } @@ -489,97 +487,6 @@ return i == n; } -/* Network on fd1, mount driver on fd0 */ -static int -filter(int fd) -{ - int p[2]; - - if(pipe(p) < 0){ - fprint(2, "stats: can't pipe: %r\n"); - killall("pipe"); - } - - switch(rfork(RFNOWAIT|RFPROC|RFFDG)) { - case -1: - sysfatal("rfork record module"); - case 0: - dup(fd, 1); - close(fd); - dup(p[0], 0); - close(p[0]); - close(p[1]); - execl("/bin/aux/fcall", "fcall", nil); - fprint(2, "stats: can't exec fcall: %r\n"); - killall("fcall"); - default: - close(fd); - close(p[0]); - } - return p[1]; -} - -/* - * 9fs - */ -int -connect9fs(char *addr) -{ - char dir[256], *na; - int fd; - - fprint(2, "connect9fs..."); - na = netmkaddr(addr, 0, "9fs"); - - fprint(2, "dial %s...", na); - if((fd = dial(na, 0, dir, 0)) < 0) - return -1; - - fprint(2, "dir %s...", dir); -// if(strstr(dir, "tcp")) -// fd = filter(fd); - return fd; -} - -int -old9p(int fd) -{ - int p[2]; - - if(pipe(p) < 0) - return -1; - - switch(rfork(RFPROC|RFFDG|RFNAMEG)) { - case -1: - return -1; - case 0: - if(fd != 1){ - dup(fd, 1); - close(fd); - } - if(p[0] != 0){ - dup(p[0], 0); - close(p[0]); - } - close(p[1]); - if(0){ - fd = open("/sys/log/cpu", OWRITE); - if(fd != 2){ - dup(fd, 2); - close(fd); - } - execl("/bin/srvold9p", "srvold9p", "-ds", nil); - } else - execl("/bin/srvold9p", "srvold9p", "-s", nil); - return -1; - default: - close(fd); - close(p[0]); - } - return p[1]; -} - - /* * exportfs */ @@ -615,29 +522,20 @@ return -1; } -// if(strstr(dir, "tcp")) -// fd = filter(fd); - - if(oldsystem) - return old9p(fd); - return fd; } int readswap(Machine *m, uvlong *a) { - if(strstr(m->buf, "memory\n")){ - /* new /dev/swap - skip first 3 numbers */ - if(!readnums(m, 7, a, 1)) - return 0; - a[0] = a[3]; - a[1] = a[4]; - a[2] = a[5]; - a[3] = a[6]; - return 1; - } - return readnums(m, nelem(m->devswap), a, 0); + /* new /dev/swap - skip first 3 numbers */ + if(!readnums(m, 7, a, 1)) + return 0; + a[0] = a[3]; + a[1] = a[4]; + a[2] = a[5]; + a[3] = a[6]; + return 1; } char* @@ -1008,7 +906,7 @@ int i; *v = 0; - for(i=Err0; inetetherstats); i++) + for(i=Err0; inetetherstats[i]; i = sleeptime/100; if(i == 0) @@ -1045,7 +943,7 @@ int i; *v = 0; - for(i=Err0; inetether1stats); i++) + for(i=Err0; inetether1stats[i]; i = sleeptime/100; if(i == 0) @@ -1421,9 +1319,6 @@ break; case 'Y': ylabels++; - break; - case 'O': - oldsystem = 1; break; default: if(nargs>=sizeof args || strchr(argchars, ARGC())==nil)