> On Feb. 6, 2015, 5:10 p.m., Steve Reinhardt wrote: > > So would this replace memtest.py? If so, then factoring out the common > > code would not be an issue. If not, why not? > > Andreas Hansson wrote: > The two are complementary: > > memtest.py uses MemTest and only tests false sharing, with some progress > detection built in > > memcheck.py uses TrafficGen and MemCheck and tests actual sharing and > prefetching, and has a mix of random and strided access patterns > > > Steve Reinhardt wrote: > But do you expect that there are errors that memtest.py would find that > memcheck.py would not, even allowing for some tweaking of the TrafficGen > access patterns? The overhead of not just maintaining but also running two > different memory testers seems pretty high, so even if they have > complementary approaches, it seems worthwhile only if they have significant > non-overlap in their coverage of the memory system state/protocol transition > space.
I do believe that they both fill a purpose at the moment. memtest.py has very little state, and can work on a much larger scale (100's of testers with 10's of cache levels), I have run some 100 trillion cycles with this (once the message-dependent deadlocks are fixes) memcheck.py relies on the MemCheck tracking of what the allowed read values are, and the state tracking does not scale very well at this point. I believe we can do some more aggressive pruning (and this is planned work), but even running a few billion cycles is currently challenging Long term the memcheck is probably all we need - Andreas ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2626/#review5855 ----------------------------------------------------------- On Feb. 3, 2015, 7:57 p.m., Andreas Hansson wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2626/ > ----------------------------------------------------------- > > (Updated Feb. 3, 2015, 7:57 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 10692:f0a93f672561 > --------------------------- > config: Add memcheck stress test > > This is a rather unfortunate copy of the memtest.py example script, > that actually stresses the system with true sharing as opposed to the > false sharing of the MemTest. To do so it uses TrafficGen instances to > generate the reads/writes, and MemCheckerMonitor combined with the > MemChecker to check the validity of the read/written values. > > As a bonus, this script also enables the addition of prefetchers, and > the traffic is created to have a mix of random addresses and linear > strides. We use the TaggedPrefetcher since the packets do not have a > request with a PC. > > At the moment the code is almost identical to the memtest.py script, > and no effort has been made to factor out the construction of the > tree. The challenge is that the instantiation and connection of the > testers and monitors is done as part of the tree building. > > > Diffs > ----- > > configs/example/memcheck.py PRE-CREATION > > Diff: http://reviews.gem5.org/r/2626/diff/ > > > Testing > ------- > > > Thanks, > > Andreas Hansson > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
