gpu-compute: fix bad asserts in gpu tlb and cu tlb port
change 2a15bfd79c introduced
a few bugs in the tlb of the cu. asserts in the gpu tlb
and cu expected the page table lookup() function to return
a bool, and this value was used directly in the gpu tlb's
assert and it was kept in the gpu tlb entry, where later
the cu would assert that it is true.
this change fixes the issue by checking the validity of
the pte pointer returned by lookup() in order to set
the validity of the tlb entry itself.
Change-Id: Ief1f205db65f1911fd132acd314e4407c5e3ffdf
Reviewed-on: https://gem5-review.googlesource.com/10001
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
committed by
Anthony Gutierrez
parent
2a9573f594
commit
e3dd3c77d2
@@ -1544,14 +1544,14 @@ namespace X86ISA
|
||||
if (!sender_state->prefetch) {
|
||||
// no PageFaults are permitted after
|
||||
// the second page table lookup
|
||||
assert(success);
|
||||
assert(pte);
|
||||
|
||||
DPRINTF(GPUTLB, "Mapping %#x to %#x\n", alignedVaddr,
|
||||
pte->paddr);
|
||||
|
||||
sender_state->tlbEntry =
|
||||
new GpuTlbEntry(0, virt_page_addr,
|
||||
pte->paddr, success);
|
||||
pte->paddr, true);
|
||||
} else {
|
||||
// If this was a prefetch, then do the normal thing if it
|
||||
// was a successful translation. Otherwise, send an empty
|
||||
@@ -1563,7 +1563,7 @@ namespace X86ISA
|
||||
|
||||
sender_state->tlbEntry =
|
||||
new GpuTlbEntry(0, virt_page_addr,
|
||||
pte->paddr, success);
|
||||
pte->paddr, true);
|
||||
} else {
|
||||
DPRINTF(GPUPrefetch, "Prefetch failed %#x\n",
|
||||
alignedVaddr);
|
||||
|
||||
Reference in New Issue
Block a user