From 3dfa2f3530dafb94c5ad6eac28661aeed52a9288 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 29 Aug 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-08-29 --- port/devcons.c | 1 + port/fault.c | 10 +++++----- port/proc.c | 3 ++- port/sysproc.c | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/port/devcons.c b/port/devcons.c index baca6c50f79c2766b657ee8e750eaa2acc76c3e4..8dd9639cb6cb3656077ee9b02a423b9ad736fb61 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -123,6 +123,7 @@ panic(char *fmt, ...) n = doprint(buf+strlen(buf), buf+sizeof(buf), fmt, (&fmt+1)) - buf; buf[n] = '\n'; putstrn(buf, n+1); + prflush(); dumpstack(); exit(1); } diff --git a/port/fault.c b/port/fault.c index 2ef6098efe8335897057d638ed2abbfc48911697..3ada537df679a66cbfc4378c42f28ce6f30065ba 100644 --- a/port/fault.c +++ b/port/fault.c @@ -150,6 +150,11 @@ fixfault(Segment *s, ulong addr, int read, int doputmmu) break; } + if(s->flushme) { + for(i = 0; i < MAXMACH; i++) + (*pg)->cachectl[i] = PG_TXTFLUSH; + } + qunlock(&s->lk); if(doputmmu) @@ -191,11 +196,6 @@ pio(Segment *s, ulong addr, ulong soff, Page **p) new = newpage(0, 0, addr); k = kmap(new); kaddr = (char*)VA(k); - - if(s->flushme) { - for(n = 0; n < MAXMACH; n++) - new->cachectl[n] = PG_TXTFLUSH; - } if(loadrec == 0) { /* This is demand load */ c = s->image->c; diff --git a/port/proc.c b/port/proc.c index 26af50ad3dd84cd436795672150219c699fa3ac5..9be89051070027560554be37a1e7f89b1a728fa2 100644 --- a/port/proc.c +++ b/port/proc.c @@ -157,8 +157,9 @@ loop: /* p->mach==0 only when process state is saved */ if(p == 0 || p->mach){ unlock(&runhiq); + /* keep off the bus (tuned for everest) */ if(conf.nmach > 1) - delay(7); /* keep off the bus (tuned for everest) */ + delay(7); goto loop; } if(p->rnext == 0) diff --git a/port/sysproc.c b/port/sysproc.c index aeb43a1c3258a53e0e8693458b25285ee6437940..006f91d353fbd1a213f8222811604a9f7c39b4b0 100644 --- a/port/sysproc.c +++ b/port/sysproc.c @@ -136,7 +136,7 @@ sysrfork(ulong *arg) p->egrp = up->egrp; incref(p->egrp); } - +memset(p->ltlbpid, 255, sizeof(p->ltlbpid)); p->hang = up->hang; p->procmode = up->procmode;