On Tuesday 09 March 2010 06:12:04 am Steve wrote: > Actually the writeback buffers are only snooped in timing mode (the > code is in snoopTiming() and not in the handleSnoop() code that's > common to both atomic and timing modes). Just moving that code into > snoopAtomic() wouldn't work, since it checks the writeBuffer > structure, and in atomic mode the writeback isn't even put there (it's > only stored in the local writebacks list, since normally those > writebacks never need to leave the scope of atomicAccess()). > Basically you'd have to redo the writeback check for atomic mode. >
As I feared. So I've just been lucky so far and it could very well lead to inconsistencies. The luck probably comes from writing back LRU cachelines which minimizes the chance of not snooping changed state. I could also try to lock everything else before acting upon a miss, if I wanted to keep it simple. That way the miss/writeback would get simulated atomically assuming writebacks can only occur after a miss. Thanks, Stijn _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
