On Jun 26, 2008, at 7:01 PM, Rick Strong wrote:

> Hi all,
>
> I have some questions about quiesce:
>
> 1) If using just quiesce (without cycles or ns ... etc), m5sim.org
> states that an interrupt is the means of waking up the core. Can any
> interrupt be used or must there be a specific one? Also, for an
> interrupt to schedule the tick() call after the quiesce call, which
> lines of code are actually called after the interrupt is received to
> reschedule the tick event?
Any interrupt will wake the core. You can think of quiesce as an  
indication that the CPU has nothing to do. In the case of the Linux  
kernel the scheduler has called default_idle() on the cpu where it  
either spins of a tight loop or get put into a lower power state  
depending on the cpu/architecture. When an interrupt occurs an the  
IntrControl object processes it and it calls cpu->post_interrupt() the  
specific CPUs implementation then does the right thing. In the case of  
a simple CPU if it was suspended it calls thread->activate() which  
ultimately calls cpu->activateContext() which will reschedule the tick  
event if it's not scheduled.
>
>
> 2) When src/cpu/o3/cpu:activateContext calls fetch.wakeFromQuiesce(),
> why is code line "fetchStatus[0] = Running" hard coded to zero instead
> of using a thread id which is available in activateContext()? I assume
> this means that we are only able to wake up thread 0?
Maybe Korey or Kevin will be able to help you here, I don't know.
>
>
> 3) What is the ozone cpu code all about? I found this section  
> confusing
> as it also has its own implementations of activateContext() and
> wakeFromQuiesce()
It is meant to be a fast out-of-order core, but to my knowledge Kevin  
never completed it.

Ali

_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to