mirror of https://gitlab.com/qemu-project/qemu
be18b2b53e
At present the 64-bit hash MMU code uses information from the SLB to determine the page size of a translation. We do need that information to correctly look up the hash table. However the MMU also allows a possibly larger page size to be encoded into the HPTE itself, which is used to populate the TLB. At present qemu doesn't check that, and so doesn't support the MPSS "Multiple Page Size per Segment" feature. This makes a start on allowing this, by adding an hpte_page_shift() function which looks up the page size of an HPTE. We use this to validate page sizes encodings on faults, and populate the qemu TLB with larger page sizes when appropriate. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: Alexander Graf <agraf@suse.de> |
||
---|---|---|
.. | ||
Makefile.objs | ||
STATUS | ||
arch_dump.c | ||
cpu-models.c | ||
cpu-models.h | ||
cpu-qom.h | ||
cpu.h | ||
dfp_helper.c | ||
excp_helper.c | ||
fpu_helper.c | ||
gdbstub.c | ||
helper.h | ||
helper_regs.h | ||
int_helper.c | ||
kvm-stub.c | ||
kvm.c | ||
kvm_ppc.h | ||
machine.c | ||
mem_helper.c | ||
mfrom_table.c | ||
mfrom_table_gen.c | ||
misc_helper.c | ||
mmu-hash32.c | ||
mmu-hash32.h | ||
mmu-hash64.c | ||
mmu-hash64.h | ||
mmu_helper.c | ||
monitor.c | ||
timebase_helper.c | ||
translate.c | ||
translate_init.c | ||
user_only_helper.c |