Greetings,

 I'm trying to instantiate 2 O3 X86 CPUs to run a 2 thread program written
using pthreads (create,join calls only). It works fine with a
TimingSimpleCPU. I'm doing this in SE mode and the program does what it's
supposed to, but it seems to crash when trying to exit out of the
thread(s). I get the following error:

gem5.opt: build/X86/cpu/o3/cpu.cc:823: void
FullO3CPU<Impl>::removeThread(ThreadID) [with Impl = O3CPUImpl; ThreadID =
short int]: Assertion `commit.rob->isEmpty(tid)' failed.

Some googling shows this error popped up a few months ago as a pthread
regression in Gem5. I'm inquiring if there is a work around (maybe running
in FS mode?) or some set of flags/configuration to keep it from happening.

I'm also open to fixing it outright and contributing back the fix if
someone can set me on a starting path of where to look for the error. From
the error, it seems an instruction gets stuck in the ROB and the exit
sequence demands the ROB be empty. Removing the assert leads to an
instruction time out assert, which means an instruction really is just
getting stuck in the ROB.

I  tried the users mailing list and had no luck, so I'm trying the dev
list. Is there a ticket tracking this or a similar issue?

Thanks,
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to