CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable
Review Request #1031 - Created Feb. 7, 2012 and submitted
| Information | |
|---|---|
| Geoffrey Blake | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
CheckerCPU: Make CheckerCPU runtime selectable instead of compile selectable Enables the CheckerCPU to be enabled at runtime with the --checker option from the configs/example/fs.py and configs/example/se.py configuration files. Also merges with the SE/FS changes.
Compiles with ARM ISA. Boots linux with O3 model attached to Checker in FS mode. Runs simple HelloWorld in SE mode.
Issue Summary
14
13
1
0
Posted (Feb. 8, 2012, 3:52 a.m.)
Is this one commit or two squished together? If it's only one, I'm afraid the meaningful changes will get lost in the merge noise, especially since people (or at least I) don't expect merges to do anything other than merge.
Posted (Feb. 8, 2012, 5:55 p.m.)
Have you measured how this affects performance? There are a few more touch points than I had imagined, but still not that many. I'd be curious to see if it makes a difference. You could check one ARM and one non-ARM workload (maybe x86, maybe twolf, since it runs relatively quickly) and see how fast they run before and after this change. Be sure to run on a system that isn't doing anything else at the time, and that won't go into weird power management modes half way through.
-
configs/common/Options.py (Diff revision 1) -
Stray comment?
-
configs/common/Options.py (Diff revision 1) -
Stray comment?
-
configs/example/fs.py (Diff revision 1) -
Don't comment it out, delete it.
-
configs/example/se.py (Diff revision 1) -
Not that there's anything necessarily wrong with doing it, but why are you moving this down past the for loop here? It's not obvious how the two would interact.
-
src/arch/arm/isa.cc (Diff revision 1) -
Is the dynamic_cast necessary? What type does getCheckerCpuPtr return? If you remove it here, remove it later on too.
-
src/cpu/SConscript (Diff revision 1) -
Delete it, don't comment it out.
-
src/cpu/SConscript (Diff revision 1) -
Is the dummy checker needed any more now that you don't have to have a checker installed?
-
src/cpu/SConscript (Diff revision 1) -
I don't think this check is all that useful any more. I think it would be reasonable to get rid of it entirely.
-
src/cpu/checker/cpu.cc (Diff revision 1) -
You shouldn't make assumptions like this. FS and SE aren't two separate worlds any more, and you can't assume because you have some of the characteristics of one that you'll have all of them. I even have plans specifically for making workload do something in what would have been called FS mode.
-
src/cpu/checker/cpu.cc (Diff revision 1) -
Does this actually need to be FullSystem only?
-
src/cpu/checker/cpu_impl.hh (Diff revision 1) -
Why does this need to be FullSystem only?
-
src/cpu/simple/BaseSimpleCPU.py (Diff revision 1) -
A checker on the simple CPU doesn't seem to make any sense. This could error out all the time, and it should set the checker to NULL since that's the inert setting.
Posted (Feb. 10, 2012, 7:28 a.m.)
Made style changes in regards to commented out code, and dead code. I have yet to perform performance tests. Will get to that ASAP and post test results here.
Posted (Feb. 13, 2012, 4:38 a.m.)
Removed the need for the dynamic_cast to the CheckerCPU object in the code. Performed performance impact tests and noted a negligible impact.
Posted (Feb. 17, 2012, 2:10 a.m.)
Rebased against the most recent changes to the source tree.
Posted (Feb. 27, 2012, 7:55 a.m.)
Rebasing for recent changes.
Posted (Feb. 28, 2012, 11:38 a.m.)
-
src/cpu/checker/cpu.cc (Diff revision 5) -
Don't just comment code out!
Posted (Feb. 28, 2012, 4:54 p.m.)
-
src/cpu/checker/thread_context.hh (Diff revision 5) -
Should it not be a dynamic_cast rather?
Posted (Feb. 29, 2012, 1 a.m.)
Made style changes and other suggested corrections.
Ship It!
