We've been having an issue where we get a kernel panic on an O3 system,
which in turn leads M5 to panic and core dump.  This is clearly the wrong
behavior (M5 is in fact simulating just fine, it's the target system that
has the problem).  I've traced it down to this code in cpu/o3/cpu.hh:

    /** Halts the CPU. */
    void halt() { panic("Halt not implemented!\n"); }

which is called from o3/cpu.cc:

bool
FullO3CPU<Impl>::simPalCheck(int palFunc, unsigned tid)
{
#if THE_ISA == ALPHA_ISA
[...]
    switch (palFunc) {
      case PAL::halt:
        halt();
        if (--System::numSystemsRunning == 0)
            exitSimLoop("all cpus halted");
        break;

This simPalCheck() code was added by Ali just a few months ago:

http://repo.m5sim.org/m5/rev/bf84e2fa05f7

After browsing through the code a bit, I have a feeling that the O3 halt()
function is actually unnecessary and I should delete it and remove the call
from simPalCheck().  However there are enough subtleties here that I thought
I'd solicit some opinions before I went ahead and tried that...

Steve
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to