sim: initial stab at multiple event queues.
Review Request #846 - Created Sept. 6, 2011 and submitted
| Information | |
|---|---|
| Steve Reinhardt | |
| gem5 | |
| Reviewers | |
| Default | |
| ali, gblack, nate, stever | |
sim: initial stab at multiple event queues. This patch creates multiple event queues. SimObjects specify via the new eventq_index parameter which queue they want to schedule on. The number of event queues (and thus threads) is controlled implicitly by the max value of eventq_index. This code seems to work in that multiple event queues can be created and events scheduled on an alternate queue (by changing the default eventq_index value in SimObject.py). However, without additional synchronization, spreading communicating SimObjects across separate queues will not work. This patch is not intended to be definitive, or to be considered for committing in anything like the current form, but just an initial attempt to make something that works that we can build and improve upon. This patch depends on two prior patches: - "pseudo_inst: clean up workbegin/workend functions" (844) - "event: minor cleanup" (845)
Posted (April 3, 2012, 3:05 p.m.)
Steve, does it make sense to first have multiple event queues handled by a single thread, then move towards letting different threads handle these queues?
