small bug fixes
This commit is contained in:
parent
e18c134050
commit
272fd660b4
2 changed files with 28 additions and 8 deletions
|
|
@ -19,7 +19,7 @@ notifyf(void *v, char *msg)
|
||||||
{
|
{
|
||||||
USED(v);
|
USED(v);
|
||||||
|
|
||||||
if(strcmp(msg, "child") == 0)
|
if(strstr(msg, "child"))
|
||||||
noted(NCONT);
|
noted(NCONT);
|
||||||
postnote(PNPROC, pid, msg);
|
postnote(PNPROC, pid, msg);
|
||||||
exits(nil);
|
exits(nil);
|
||||||
|
|
@ -57,14 +57,14 @@ main(int argc, char **argv)
|
||||||
sysfatal("fork: %r");
|
sysfatal("fork: %r");
|
||||||
case 0:
|
case 0:
|
||||||
rfork(RFNOTEG);
|
rfork(RFNOTEG);
|
||||||
execlp("ssh", "ssh", "-C", sys, exe, nil);
|
execlp("ssh", "ssh", "-nTC", sys, exe, nil);
|
||||||
_exit(12);
|
_exit(97);
|
||||||
default:
|
default:
|
||||||
if((w = wait()) == nil)
|
if((w = wait()) == nil)
|
||||||
sysfatal("wait: %r");
|
sysfatal("wait: %r");
|
||||||
if(w->pid != pid)
|
if(w->pid != pid)
|
||||||
sysfatal("wait got wrong pid");
|
sysfatal("wait got wrong pid");
|
||||||
if(atoi(w->msg) == 12)
|
if(atoi(w->msg) == 97)
|
||||||
sysfatal("exec ssh failed");
|
sysfatal("exec ssh failed");
|
||||||
free(w);
|
free(w);
|
||||||
fprint(2, "stats: %s hung up; sleeping 60\n", sys);
|
fprint(2, "stats: %s hung up; sleeping 60\n", sys);
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ struct Graph
|
||||||
int ndata;
|
int ndata;
|
||||||
char *label;
|
char *label;
|
||||||
int value;
|
int value;
|
||||||
void (*update)(Graph*, ulong, ulong);
|
void (*update)(Graph*, long, ulong);
|
||||||
Machine *mach;
|
Machine *mach;
|
||||||
int overflow;
|
int overflow;
|
||||||
Image *overtmp;
|
Image *overtmp;
|
||||||
|
|
@ -94,6 +94,8 @@ struct Machine
|
||||||
int absolute[Nvalue];
|
int absolute[Nvalue];
|
||||||
ulong last[Nvalue];
|
ulong last[Nvalue];
|
||||||
ulong val[Nvalue][2];
|
ulong val[Nvalue][2];
|
||||||
|
ulong load;
|
||||||
|
ulong nload;
|
||||||
};
|
};
|
||||||
|
|
||||||
char *menu2str[Nvalue+1];
|
char *menu2str[Nvalue+1];
|
||||||
|
|
@ -297,11 +299,13 @@ redraw(Graph *g, int vmax)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
update1(Graph *g, ulong v, ulong vmax)
|
update1(Graph *g, long v, ulong vmax)
|
||||||
{
|
{
|
||||||
char buf[32];
|
char buf[32];
|
||||||
int overflow;
|
int overflow;
|
||||||
|
|
||||||
|
if(v < 0)
|
||||||
|
v = 0;
|
||||||
if(vmax != g->vmax){
|
if(vmax != g->vmax){
|
||||||
g->vmax = vmax;
|
g->vmax = vmax;
|
||||||
changedvmax = 1;
|
changedvmax = 1;
|
||||||
|
|
@ -423,7 +427,23 @@ newvalue(Machine *m, int i, ulong *v, ulong *vmax)
|
||||||
{
|
{
|
||||||
ulong now;
|
ulong now;
|
||||||
|
|
||||||
if(m->absolute[i]){
|
if(m->last[i] == 0)
|
||||||
|
m->last[i] = m->val[i][0];
|
||||||
|
|
||||||
|
if(i == Vload){
|
||||||
|
/*
|
||||||
|
* Invert the ewma to obtain the 5s load statistics.
|
||||||
|
* Ewma is load' = (1884/2048)*load + (164/2048)*last5s, so we do
|
||||||
|
* last5s = (load' - (1884/2048)*load) / (164/2048).
|
||||||
|
*/
|
||||||
|
if(++m->nload%5 == 0){
|
||||||
|
now = m->val[i][0];
|
||||||
|
m->load = (now - (((vlong)m->last[i]*1884)/2048)) * 2048 / 164;
|
||||||
|
m->last[i] = now;
|
||||||
|
}
|
||||||
|
*v = m->load;
|
||||||
|
*vmax = m->val[i][1];
|
||||||
|
}else if(m->absolute[i]){
|
||||||
*v = m->val[i][0];
|
*v = m->val[i][0];
|
||||||
*vmax = m->val[i][1];
|
*vmax = m->val[i][1];
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -769,7 +789,7 @@ threadmain(int argc, char *argv[])
|
||||||
if(initdraw(nil, nil, "stats") < 0)
|
if(initdraw(nil, nil, "stats") < 0)
|
||||||
sysfatal("initdraw: %r");
|
sysfatal("initdraw: %r");
|
||||||
colinit();
|
colinit();
|
||||||
if((mc = initmouse(nil, nil)) == nil)
|
if((mc = initmouse(nil, screen)) == nil)
|
||||||
sysfatal("initmouse: %r");
|
sysfatal("initmouse: %r");
|
||||||
if((kc = initkeyboard(nil)) == nil)
|
if((kc = initkeyboard(nil)) == nil)
|
||||||
sysfatal("initkeyboard: %r");
|
sysfatal("initkeyboard: %r");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue