ruby: Add missing block deallocations in MOESI_hammer
Review Request #2978 - Created July 18, 2015 and submitted
| Information | |
|---|---|
| Lena Olson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 10924:752540bf5605 --------------------------- ruby: Add missing block deallocations in MOESI_hammer Some blocks in MOESI hammer were not getting deallocated when they were set to an idle state (e.g. by invalidate or other_getx/s messages). While functionally correct, this caused some bad effects on performance, such as blocks in I in the L1s getting sent to the L2 upon eviction, in turn evicting valid blocks. Also, if a valid block was in LRU, that block could be evicted rather than a block in I. This patch adds in the missing deallocations.
I ran the ruby random tester with 4 cores and did not encounter any errors caused by this patch. I also ran some multiprogrammed workload mixes; sim_ticks can be misleading for multiprogrammed workloads so take this with a large grain of salt, but the simulated runtime was consistently 20-30% less. For ruby tester (+increased cache size+assoc to cause the wrong blocks getting evicted) I see more like 2% improvement.
LGTM.
