Sim: When one CPU is taking over from another, the new CPU's memory is only
Review Request #49 - Created July 9, 2010 and discarded
| Information | |
|---|---|
| Timothy Jones | |
| gem5 | |
| Reviewers | |
| Default | |
Sim: When one CPU is taking over from another, the new CPU's memory is only connected up if it's not connected to something already. However, when sharing caches between several CPUs and repeatedly switching between them, the CPU thinks it is connected up when it actually isn't. To rectify this, provide a new parameter to the takeOverFrom function that forces memory to be connected up.
Posted (July 10, 2010, 1:43 a.m.)
Is the root problem here that when I have an A<->B port connection, then I connect A to C, B still thinks it's connected to A even though it's not? (Where in this specific example, A is the cache, and B and C are different CPUs.) If so, I'd rather see a more general solution like having Port::setPeer() automatically clear out any previous peer's pointer back to itself. I would not be terribly surprised if this had surprising and ugly ramifications and we run away scared, but I'd at least like to try that before going with a localized workaround like this. Does that make sense? Can you give it a try?
