This is *so* embarassing.
The kernel was fine. The bug was in the Check::Contexts() routine, which was leaving interrupts enabled while checking structures that could be altered by interrupt level code. The *real* pisser is that the damn disable/enable calls were there, and I had for some reason commented them out.
This test now runs to completion for me when checkpointing is occuring. I shall check in these changes as part of 0.8.2 Note that you will NOT get valid benchmark numbers on a machine that checkpoints while trying to run this benchmark!
Sorry about that.
shap
Bengt Kleberg <bengt@softwell.se> on 02/16/99 04:09:16 AM
To: eros-port@eros.cis.upenn.edu
cc: (bcc: Jonathan S Shapiro/Watson/IBM)
Subject: eros-0.8.1, teests/perf/lat_heap
error looks like this (after cold-case tracing has gone well):
Begin warm-case tracing
!about to start migration()
Prev of key 0x0020120 is not cur in keyring 0x002051f8
Current thread 0x0019b674 (running) ctxt 0x0019b6bc (kernel)
rsrv=0x001971b4 ukt 0x8020120 0x00000000 0x00000000 0x00000000
Stopped at 0x00105854 Debugger*void)+4 [db_interface.cxx:262]" movl
Note that there are lots of successful tests: iocall
no errors.
iocall-indir
no errors.
nullcall-lsl
no errors.
nullcall-small
no errors.
nullio
no errors.
nullkey
no errors.
lat_fs
no errors.