The MSHR belongs to a single cache. There's no reason I can see why the test in the while loop would succeed but the assertion would fail. You might want to use a watchpoint on whatever variable hasTargets() checks in case it's a wild pointer write or something.
Steve On Sun, Jul 5, 2009 at 5:39 PM, Shoaib Akram <[email protected]> wrote: > I am having difficulty tracing the assertion failure in mshr.hh: > hasTargets(). While the casue is clear that mshr dont have any more targets > but it is happening in the following loop: > > while (mshr->hasTargets()) { > MSHR::Target *target = mshr->getTarget(); > ..... > ..... > } > > Target *getTarget() { assert(hasTargets()); return &targets->front(); } > > Is it possible the mshr data structure is being worked upon in a > distributed manner (by different caches) causing the asertion failure? > > > > _______________________________________________ > m5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users >
_______________________________________________ m5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
