Hello,

I'm working on a extension of gem5 to allow launching a thread using an
instruction. My current work is to use the emulation mode.

I found a problem on my code at the last part of the following process.

At first, I have an instruction to start a core with a selected context
information. Then, the thread do some tasks and when the thread finishes, I
execute an instruction to suspend the thread.

The problem is when I execute a syscall to finish the program and exit from
emulation mode.

The syscall execute the function "exitFunc" form "sim/syscall_emul.cc" to
exit. At that moment, the system has two threads, one on suspended and the
other running.

The function tries to halt the thread, by calling tc->halt(). After that,
tries to free registers by accesing to renameMap. And then fails on
assert(arch_reg < map.size());.

There are a way to solve this problem? Do I have to consider anything else?

Thanks in advance,
David.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to