summaryrefslogtreecommitdiff
path: root/sys/arch/pmax/dev/rz.c
diff options
context:
space:
mode:
authorgrr <grr@cvs.openbsd.org>1997-07-07 07:45:33 +0000
committergrr <grr@cvs.openbsd.org>1997-07-07 07:45:33 +0000
commit1426fb24c6470d4de8f894b9c5df0b3c650cde45 (patch)
tree949a9778155278cb7c19de3f1169e12c65b27d7b /sys/arch/pmax/dev/rz.c
parent2b617f40fe946c7eaad68edba8543d52ef21d7f3 (diff)
Fix a major sun4m stability problem showed up as random segv's and other
failures in innocent programs. Typically something like a make build of libc or something executing a large number of shell commands would fail, dumping core in sh or random faults in as or cc*. According to Chris Torek, the problem is that he make the destination pages for zero and copy be non-cached to prevent wiping otherwise relevant stuff from the cache. On systems with a L2 cache like the SS10 modules with cache, setting the pages as non-cacheable inhibits updating the chache, and also disable PA chache snooping, doesn't do anything about possible dirty lines in the L2 cache, which may eventually get flushed and corrupt the nice new page. It's not clear that he's got the failure mode 100% correct, but making the pages cacheable does seem to avoid the symptoms and testing the e-cache flush hypothesis is difficult. Aaron Brown proposed a fix that was conditional on mmutype, and netbsd-current has it conditional on a cpu.quirk, at the moment this is unconditional, the performance hit is arguable...
Diffstat (limited to 'sys/arch/pmax/dev/rz.c')
0 files changed, 0 insertions, 0 deletions