It's a bug in M5.  The SE threading code expects the "idle" contexts
to be in state Unallocated (see nxm_thread_createFunc in
src/kern/tru64/tru64.hh), which is what SimpleCPU does.  However O3
initializes unused threads to Suspended (see
src/cpu/o3/alpha/cpu_impl.hh).  Unfortunately just changing the O3
initialization to Suspended caused other problems which I haven't
figured out yet.

Steve

On Mon, Jun 23, 2008 at 2:47 PM, Sujay Phadke <[EMAIL PROTECTED]> wrote:
> Well I wanted to run the O3 (n>1) for testing wattch. Is it wrong to run it
> in detailed mode directly w/o using any switching?
> If so, can you give me an example file and command line which does switching
> for say Splash2?
>
> thanks,
> Sujay
>
> ----- Original Message -----
> From: "Ali Saidi" <[EMAIL PROTECTED]>
> To: "M5 users mailing list" <[email protected]>
> Sent: Monday, June 23, 2008 5:39 PM
> Subject: Re: [m5-users] error running O3 directly with more than 1 cpu
>
>
>>
>> On Jun 23, 2008, at 1:23 PM, Sujay Phadke wrote:
>>
>>> Hello,
>>>         If I try to run O3 in SE mode directly, without using any
>>> fastforwarding, it gives me the error:
>>>
>>>  build/ALPHA_SE/m5.opt configs/splash2/runsplash.py -d -n4 -b
>>> OceanContig
>>>
>>> warn: Increasing stack size by one page.
>>> warn: ignoring syscall sigprocmask(3, 18446744073709551615, ...)
>>> warn: ignoring syscall sigprocmask(3, 0, ...)
>>> warn: ignoring syscall sigaction(8, 4831387552, ...)
>>> warn: ignoring syscall sigaction(11, 4831387552, ...)
>>> warn: ignoring syscall sigaction(10, 4831387552, ...)
>>> warn: ignoring syscall sigaction(4, 4831387552, ...)
>>> warn: ignoring syscall sigaction(7, 4831387552, ...)
>>> warn: ignoring syscall sigaction(6, 4831387552, ...)
>>> warn: ignoring syscall sigaction(12, 4831387552, ...)
>>> warn: ignoring syscall sigaction(5, 4831387552, ...)
>>> warn: ignoring syscall sigaction(13, 4831387552, ...)
>>> nxm_thread_create: no idle contexts available.
>>> Program aborted at cycle 378945000
>>> It works fine of numcpus (-n) = 1, or if I use atomic or timing
>>> mode. The statement
>>>
>>> thread->setStatus(ThreadContext::Unallocated);
>>>
>>> appears in src/cpu/simple/base.cc and src/cpu/o3/
>>> thread_context_impl.hh.
>>>
>> The statement and the context the statement is in are two different
>> things. From a cursory look of the O3CPU, it appears as though the
>> state of the thread context is never initialized when the thread
>> context is created, and the places where it is set to unallocated are
>> for switching CPUs. Initializing it to Unallocated should solve the
>> problem.
>>
>> Are you planning on running a detailed CPU for the entirety of the
>> benchmark?
>>
>> Ali
>>
>> _______________________________________________
>> m5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>>
>
> _______________________________________________
> m5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to