-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2504/#review5510
-----------------------------------------------------------
I am afraid you have to move config_manager->instantiate() call into
SimControl::run() after wait.
Currently it is tripping at:
fatal condition !eventq->empty() occurred: There must be no posted events
before SimControl::run @ tick 0
[run:main.cc, line 266]
If add add getEventQueue(0)->dump() after config_manager->instantiate(), this
is what I get:
SimControl::SimControl(sc_core::sc_module_name name,....
{
....
CxxConfig::statsEnable();
getEventQueue(0)->dump();
try {
config_manager->instantiate();
} catch (CxxConfigManager::Exception &e) {
fatal("Config problem in sim object %s: %s", e.name, e.message);
}
==> std::cout << "Called config_manager->instantiate()." << std::endl;
==> getEventQueue(0)->dump();
}
The output is:
============================================================
EventQueue Dump (cycle 0)
------------------------------------------------------------
<No Events>
============================================================
info: kernel located at:
/proj/adg/REV/sim/cdirik/gem5-sims/full-system-x86/binaries/x86_64-vmlinux-2.6.26
Listening for com_1 connection on port 3456
Info: rtc: Real-time clock set to Sun Jan 1 00:00:00 2012
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
warn: Reading current count from inactive timer.
Called config_manager->instantiate().
============================================================
EventQueue Dump (cycle 0)
------------------------------------------------------------
Event Event_69 (RTC interrupt)
Flags: 0x7a42
Scheduled for 5000000000, priority 0
Event Event_80 (Intel 8254 Interval timer)
Flags: 0x7a42
Scheduled for 54924621360, priority 0
Event Event_70 (RTC clock tick)
Flags: 0x7a42
Scheduled for 1000000000000, priority 0
============================================================
fatal condition !eventq->empty() occurred: There must be no posted events
before SimControl::run @ tick 0
[run:main.cc, line 266]
- Cagdas Dirik
On Nov. 20, 2014, 3:48 p.m., Andreas Hansson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2504/
> -----------------------------------------------------------
>
> (Updated Nov. 20, 2014, 3:48 p.m.)
>
>
> Review request for Default.
>
>
> Repository: gem5
>
>
> Description
> -------
>
> Changeset 10567:5b89628d387b
> ---------------------------
> config: Fix to SystemC example's event handling
>
> This patch fixes checkpoint restore in the SystemC hosting example by handling
> early PollEvent events correctly before any EventQueue events are posted.
>
> The SystemC event queue handler (SCEventQueue) reports an error if the event
> loop is entered with no Events posted. It is possible for this to happen
> after instantiate due to PollEvent events. This patch separates out
> `external' events into a different handler in sc_module.cc to prevent the
> error from occurring.
>
> This fix also improves the event handling of asynchronous events by:
>
> 1) Making asynchronous events 'catch up' gem5 time to SystemC
> time to avoid the appearance that events have been lost
> while servicing an asynchronous event that schedules an
> event loop exit event
>
> 2) Add an in_simulate data member to Module to allow the event
> loop to check whether events should be processed or deferred
> until the next time Module::simulate is entered
>
> 3) Cancel pending events around the entry/exit of the event loop
> in Module::simulate
>
> 4) Moving the state initialisation of the example entirely into
> run to correct a problem with early events in checkpoint
> restore.
>
> It is still possible to schedule asynchronous events (and talk PollQueue
> actions) while simulate is not running. This behaviour may stil cause
> some problems.
>
>
> Diffs
> -----
>
> util/systemc/Makefile b61dc895269a
> util/systemc/main.cc b61dc895269a
> util/systemc/sc_gem5_control.cc b61dc895269a
> util/systemc/sc_logger.cc b61dc895269a
> util/systemc/sc_module.hh b61dc895269a
> util/systemc/sc_module.cc b61dc895269a
>
> Diff: http://reviews.gem5.org/r/2504/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Andreas Hansson
>
>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev