THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY. The following task has been changed. The new details are below. For full information about what has changed, visit the URL and click the History tab.
FS#197 - Fail outstanding SC on invalidation User who did this: - Ali Saidi (saidi) Attached to Project - M5 Bugs Summary - Fail outstanding SC on invalidation Task Type - Bug Category - Memory System Status - New Assigned To - Steve Reinhardt Operating System - All Severity - Low Priority - Normal Reported Version - 1.1 Due in Version - 2.1 Due Date - Undecided Percent Complete - 0% Details - We should fail an outstanding SC when it encounters a read-only block but the block gets invalidated before the cache can get its Upgrade onto the bus. I believe this feature is just a performance optimization (or maybe at most needed for livelock avoidance in pathological situations, though I'm not convinced of that) and not having it in right away shouldn't be a major problem. I can think of two approaches: 1) Detect this situation when the invalidation is received (in Cache::snoop()). 2) Detect this when we go to issue the command on the bus (where we'd normally notice that we want to do a ReadExcl instead of an Upgrade, but now we notice that we really don't want to do anything unless there are additional targets other than the SC outstanding). Comments from Ron on approach #1: "If there is a hit in the MSHR it goes through the code surronded by the if(mshr) in the snoop function. If the MSHR is in service (the request has been sent out to the bus already, then it either NACKS the request or invlidates the block after the in flight request is handled. You shouldn't change these functions I believe. You should check the mshr in the case it is not inService and go through the targets and look for any SC's that exist. You will need to then remove the target corresponding to the SC and possibly remove the MSHR if there is no remaining targets. You should also clear the MasterRequest flag in the BaseCache if you have no more MSHRs after removing that one. The best place to look would be in the MissQueue and MSHRQueue code to see if you can reuse any of the functions there to do the removing of the target. But I can't think of a simple function to just remove a target from the MSHR, I haven't needed one yet." More information can be found at the following URL: http://www.m5sim.org/flyspray/task/197 You are receiving this message because you have requested it from the Flyspray bugtracking system. You can be removed from future notifications by visiting the URL shown above. _______________________________________________ m5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/m5-dev
