diff options
author | Binh Pham <binhpham@cs.rutgers.edu> | 2014-06-21 10:39:44 -0700 |
---|---|---|
committer | Binh Pham <binhpham@cs.rutgers.edu> | 2014-06-21 10:39:44 -0700 |
commit | b085db84afcbb4824d34b8755f4c09c1fcfefcee (patch) | |
tree | 624324e3628addbf4dbc1ea567021a16131ec324 /build_opts/X86_MESI_Two_Level | |
parent | b72c8798682d307adfe9c1c2a77ac5a6d6240c15 (diff) | |
download | gem5-b085db84afcbb4824d34b8755f4c09c1fcfefcee.tar.xz |
x86: fix table walker assertion
In a cycle, we could see a R and W requests corresponding to the same
page walk being sent to the memory. During the cycle that assertion
happens, we have 2 responses corresponding to the R and W above. We
also have a 'read' variable to keep track of the inflight Read
request, this gets reset to NULL right after we send out any R
request; and gets set to the next R in the page walk when a response
comes back.
The issue we are seeing here is when we get a response for W request,
assert(!read) fires because we got a response for R request right
before this, hence we set 'read' to NOT NULL value, pointing to the
next R request in the pagewalk!
This work was done while Binh was an intern at AMD Research.
Diffstat (limited to 'build_opts/X86_MESI_Two_Level')
0 files changed, 0 insertions, 0 deletions