----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/2470/#review5436 -----------------------------------------------------------
Ship it! Ship It! - Ali Saidi On Oct. 29, 2014, 3:01 p.m., Andrew Lukefahr wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.gem5.org/r/2470/ > ----------------------------------------------------------- > > (Updated Oct. 29, 2014, 3:01 p.m.) > > > Review request for Default. > > > Repository: gem5 > > > Description > ------- > > Changeset 10510:ef000bfc0a87 > --------------------------- > Minor Draining Bug > > Fixes a bug where Minor drains in the midst of committing a conditional > store. > > While committing a conditional store, lastCommitWasEndOfMacroop is true (from > the previous instruction) as we still haven't finished the conditional store. > If a drain occurs before the cache response, Minor would check just > lastCommitWasEndOfMacroop, which was true, and set drainState=DrainHaltFetch, > which increases the streamSeqNum. This caused the conditional store to be > squashed when the memory responded and it completed. However, to the memory > the store succeeded, while to the instruction sequence it never occurred. > > In the case of an LLSC, the instruction sequence will replay the squashed > STREX, which will fail as the cache is no longer in LLSC. Then the > instruction sequence will loop back to a LDREX, which receives the updated > (incorrect) value. > > > Diffs > ----- > > src/cpu/minor/execute.cc 5e0a421e2031 > > Diff: http://reviews.gem5.org/r/2470/diff/ > > > Testing > ------- > > > Thanks, > > Andrew Lukefahr > > _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
