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

Reply via email to