From 1a45a8c5d3527f0d96c48e176073d39413b4f990 Mon Sep 17 00:00:00 2001 From: Andrew Bardsley Date: Fri, 12 Sep 2014 10:22:49 -0400 Subject: cpu: Fix memory access in Minor not setting parent Request flags This patch fixes cases where uncacheable/memory type flags are not set correctly on a memory op which is split in the LSQ. Without this patch, request->request if freely used to check flags where the flags should actually come from the accumulation of request fragment flags. This patch also fixes a bug where an uncacheable access which passes through tryToSendRequest more than once can increment LSQ::numAccessesInMemorySystem more than once. --- src/cpu/minor/lsq.hh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/cpu/minor/lsq.hh') diff --git a/src/cpu/minor/lsq.hh b/src/cpu/minor/lsq.hh index 0998395e0..183986826 100644 --- a/src/cpu/minor/lsq.hh +++ b/src/cpu/minor/lsq.hh @@ -585,7 +585,11 @@ class LSQ : public Named protected: /** Count of the number of mem. accesses which have left the - * requests queue and are in the 'wild' in the memory system. */ + * requests queue and are in the 'wild' in the memory system and who + * *must not* be interrupted as they are not normal cacheable + * accesses. This is a count of the number of in-flight requests + * with issuedToMemory set who have visited tryToSendRequest at least + * once */ unsigned int numAccessesInMemorySystem; /** Number of requests in the DTLB in the requests queue */ -- cgit v1.2.3