Hello,

I'm running a two CPU simulation in SE mode with a queue to transmit
information between the CPUs. I would like to be able to suspend or idle
the first CPU if the queue is full, and resume once the second CPU dequeues.

However, I've been having an issue where it looks like the second CPU isn't
executing at all, so it doesn't have a chance to dequeue anything. Whenever
I suspend the first CPU, I get the message 'Exiting because simulate()
limit reached'. When I simply ignore a full queue, the simulation runs
fine.

I'm suspending using tc->suspend() and waking up with tc->activate(),
though I don't think the activate ever gets called. I'm using a modified
AtomicSimpleCPU in SE mode with two CPUs (-n 2).

Here are some questions I have:
* Will a quiesce() on a two-CPU system suspend both CPUs?
* If so, is there a way to suspend or idle only one CPU and later resume?
* Is the tick() function still called if a CPU is idle or suspended?

Thanks,
David G.
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to