|
From: | Bruno Piazera Larsen |
Subject: | Re: [RFC PATCH 10/11] target/ppc: created tcg-stub.c file |
Date: | Fri, 14 May 2021 15:07:13 -0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
On 5/12/21 9:08 AM, Bruno Larsen (billionai) wrote:
+++ b/target/ppc/tcg-stub.c
@@ -0,0 +1,33 @@
+
+#include "qemu/osdep.h"
All files get copyright boilerplate.
+#include "exec/hwaddr.h"
+#include "cpu.h"
+#include "hw/ppc/spapr.h"
+
+hwaddr ppc_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
+{
+ return 0;
+}
This is used by gdbstub.
If there's a way for kvm to convert a virtual address to a physical address using the hardware, then use that. I suspect there is not.
Otherwise, you have to keep all of the mmu page table walking stuff for kvm as well as tcg. Which probably means that all of the other stuff that you're stubbing out is used or usable as well.
From what I can tell, KVM can't do it, so we'll have to extract the function. Looking at it, the main problem is that it might call get_physical_address and use struct mmu_ctx_t, if the mmu_model isn't one of: POWERPC_MMU_64B, POWERPC_MMU_2_03, POWERPC_MMU_2_06, POWERPC_MMU_2_07, POWERPC_MMU_3_00, POWERPC_MMU_32B, POWERPC_MMU_601.
Is it possible that a machine with an mmu not listed in here
could build a !TCG version of qemu? if it's not possible, we can
separate that part into a separate function left in mmu_helper.c
and move the rest to somewhere else.
Looking at dump_mmu and ppc_tlb_invalidate_all, looks like we
need to move enough code that it make sense to create an
mmu_common.c for common code. Otherwise, it's probably easier to
compile all of mmu_helper.c instead of picking those functions
out.
--
[Prev in Thread] | Current Thread | [Next in Thread] |