systemc: Rework how delta and timed notifications/timeouts are tracked.
authorGabe Black <gabeblack@google.com>
Fri, 17 Aug 2018 01:59:06 +0000 (18:59 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 25 Sep 2018 23:49:15 +0000 (23:49 +0000)
commit54f3a76afe055fa62a818b8355dd8c6f8bd39856
treed4041cffe05907b049012fe73d13b3aa440ca13d
parent9556aa3232ac6f782d715c15d2b4b62f5e7cfb9e
systemc: Rework how delta and timed notifications/timeouts are tracked.

Rather than delegating them entirely to the gem5 event queue and using
priorities to ensure the right thing happens, this change adds a few
new structures which keep track of them and give the scheduler more
control over what happens and in what order. The old scheme was mostly
correct, but there were some competing situations which made it next
to impossible to make everything happen at the right time.

Change-Id: I43f4dd6ddfa488a31073c0318bb41369b1a6117d
Reviewed-on: https://gem5-review.googlesource.com/12213
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
src/systemc/core/event.cc
src/systemc/core/event.hh
src/systemc/core/process.cc
src/systemc/core/process.hh
src/systemc/core/sched_event.hh [new file with mode: 0644]
src/systemc/core/scheduler.cc
src/systemc/core/scheduler.hh