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.
Bengt Kleberg <email@example.com> on 02/16/99 04:09:16 AM
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