No subject
utzoo!duke!decvax!ucbvax!pur-ee!aef
utzoo!duke!decvax!ucbvax!pur-ee!aef
Mon Jul 13 02:32:14 AEST 1981
VAX 11/780 prober instr flakey?
We have observed kernel traps (protection faults) which seem
to be resulting from the flakey behavior of the "prober" instruction
on a VAX 11/780 under 4.1BSD UNIX. The current theory is that if
a prober lies near the end of a memory page, and the prober "fails"
(determines that the access tested was bad), then one of the next
3 or 4 instructions following the prober may cause a kernel protection
fault (trap to 0x20) if the said instruction lies on a page boundry
or does something which references a new page. It appears the prober
mucks around with the internal state of the micromachine to make use
of the protection hardware and either does not clean up properly or
the instruction buffer is prefetching at the time and one of the pre-
fetched instructions gets tagged as "access not valid" even though
the in memory kernel page tables are correct.
This was observed during the debugging of our dual-cpu
VAX 11/780 (2 cpu's on one SBI) and only occured when UNIX was
running on 1 cpu and the slave cpu was just running a spin loop
repeatedly writing to a memory location. The memory write apparently
slowed things down a little and the prober failed (prefetch of the PTE?).
The prober did not fail when the slave cpu was halted. Production
UNIX was run on the "slave" cpu and the spin loop was run on the
master; this caused the slave to also show up the prober problem.
Bill Joy mentioned to me he has had similar problems in the past
(on a non dual 780) for which he suspected the prober instruction.
Shifting the code around a little or dropping in 3 or 4 nop's seems
to "cure" the problem, both for us and Bill Joy. Running lots of
I/O into memory is going to change timing much the same way that
running a second CPU does.
George Goble Purdue EE dept (ucbvax!pur-ee!ghg)
Mike Marsh (ucbvax!pur-ee!mike)
More information about the Comp.unix.wizards
mailing list