tarch, mem: Abstract the data stored in the SE page tables.
authorGabe Black <gabeblack@google.com>
Tue, 9 Jan 2018 07:37:57 +0000 (23:37 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 23 Jan 2018 20:39:17 +0000 (20:39 +0000)
commita4e722725c90677d555675eca616c9d0990393f1
treeed9a8268f73742fd4b4acbaf8e8434b67dc5fed7
parentdb8c55dede65e07cb9ea8e95c48badd2ea24462f
tarch, mem: Abstract the data stored in the SE page tables.

Rather than store the actual TLB entry that corresponds to a mapping,
we can just store some abstracted information (address, a few flags)
and then let the caller turn that into the appropriate entry. There
could potentially be some small amount of overhead from creating
entries vs. storing them and just installing them, but it's likely
pretty minimal since that only happens on a TLB miss (ideally rare),
and, if it is problematic, there could be some preallocated TLB
entries which are just minimally filled in as necessary.

This has the nice effect of finally making the page tables ISA
agnostic.

Change-Id: I11e630f60682f0a0029b0683eb8ff0135fbd4317
Reviewed-on: https://gem5-review.googlesource.com/7350
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
src/arch/alpha/faults.cc
src/arch/sparc/faults.cc
src/arch/x86/tlb.cc
src/gpu-compute/gpu_tlb.cc
src/mem/page_table.cc
src/mem/page_table.hh
src/sim/syscall_emul.hh