|
From: | Lucas Mateus Martins Araujo e Castro |
Subject: | Re: [RFC PATCH v2 0/2] hw/ppc: code motion to compile without TCG |
Date: | Tue, 4 May 2021 15:57:36 +0000 |
Thanks, it will be quite helpful.
Also, I agree with Bruno including this information somewhere would be quite good in my opinion.
From: Fabiano Rosas <farosas@linux.ibm.com>
Sent: Monday, May 3, 2021 7:21 PM To: Lucas Mateus Martins Araujo e Castro <lucas.araujo@eldorado.org.br>; qemu-devel@nongnu.org <qemu-devel@nongnu.org>; qemu-ppc@nongnu.org <qemu-ppc@nongnu.org> Cc: Bruno Piazera Larsen <bruno.larsen@eldorado.org.br>; Lucas Mateus Martins Araujo e Castro <lucas.araujo@eldorado.org.br>; david@gibson.dropbear.id.au <david@gibson.dropbear.id.au> Subject: Re: [RFC PATCH v2 0/2] hw/ppc: code motion to compile without TCG "Lucas Mateus Castro (alqotel)" <lucas.araujo@eldorado.org.br> writes:
> After the feedback from v1 I reworked the patch with suggested ideas and > this version has less duplicated code and is overall simpler. > > This patch series is still a WIP, there are still 2 main problems I am > trying to solve, I'll mention them in their respective patches. > > The aim of these patches is to progress toward enabling disable-tcg on > PPC by solving errors in hw/ppc with that option. > > As a WIP comments are welcome. > > Lucas Mateus Castro (alqotel) (2): > target/ppc: Moved functions out of mmu-hash64 > hw/ppc: Moved TCG code to spapr_hcall_tcg > > hw/ppc/meson.build | 3 + > hw/ppc/spapr.c | 1 + > hw/ppc/spapr_caps.c | 1 + > hw/ppc/spapr_cpu_core.c | 1 + > hw/ppc/spapr_hcall.c | 301 ++-------------------------------- > hw/ppc/spapr_hcall_tcg.c | 343 +++++++++++++++++++++++++++++++++++++++ > hw/ppc/spapr_rtas.c | 1 + > target/ppc/meson.build | 1 + > target/ppc/mmu-hash64.c | 81 +-------- > target/ppc/mmu-hash64.h | 6 - > target/ppc/mmu-misc.c | 86 ++++++++++ > target/ppc/mmu-misc.h | 22 +++ > 12 files changed, 478 insertions(+), 369 deletions(-) > create mode 100644 hw/ppc/spapr_hcall_tcg.c > create mode 100644 target/ppc/mmu-misc.c > create mode 100644 target/ppc/mmu-misc.h This is the list of hypercalls registered with spapr_register_hypercall and whether they are implemented by KVM HV, KVM PR or none. I also list whether the KVM hcall uses the QEMU implementation as a fallback. Maybe it will be helpful to this discussion. (This is from just looking at the code, so take it with a grain of salt) H_ADD_LOGICAL_LAN_BUFFER - not impl. by KVM H_CHANGE_LOGICAL_LAN_MAC - not impl. by KVM H_ENABLE_CRQ - not impl. by KVM H_FREE_CRQ - not impl. by KVM H_FREE_LOGICAL_LAN - not impl. by KVM H_GET_CPU_CHARACTERISTICS - not impl. by KVM H_GET_TERM_CHAR - not impl. by KVM H_HOME_NODE_ASSOCIATIVITY - not impl. by KVM H_INT_ESB - not impl. by KVM H_INT_GET_QUEUE_INFO - not impl. by KVM H_INT_GET_SOURCE_CONFIG - not impl. by KVM H_INT_GET_SOURCE_INFO - not impl. by KVM H_INT_RESET - not impl. by KVM H_INT_SET_QUEUE_CONFIG - not impl. by KVM H_INT_SET_SOURCE_CONFIG - not impl. by KVM H_INT_SYNC - not impl. by KVM H_JOIN - not impl. by KVM H_LOGICAL_CACHE_LOAD - not impl. by KVM H_LOGICAL_CACHE_STORE - not impl. by KVM H_LOGICAL_DCBF - not impl. by KVM H_LOGICAL_ICBI - not impl. by KVM H_MULTICAST_CTRL - not impl. by KVM H_PUT_TERM_CHAR - not impl. by KVM H_REGISTER_LOGICAL_LAN - not impl. by KVM H_REGISTER_PROC_TBL - not impl. by KVM H_REG_CRQ - not impl. by KVM H_RESIZE_HPT_COMMIT - not impl. by KVM H_RESIZE_HPT_PREPARE - not impl. by KVM H_SCM_BIND_MEM - not impl. by KVM H_SCM_READ_METADATA - not impl. by KVM H_SCM_UNBIND_ALL - not impl. by KVM H_SCM_WRITE_METADATA - not impl. by KVM H_SEND_CRQ - not impl. by KVM H_SEND_LOGICAL_LAN - not impl. by KVM H_SET_SPRG0 - not impl. by KVM H_SIGNAL_SYS_RESET - not impl. by KVM H_VIO_SIGNAL - not impl. by KVM H_CAS - not impl. by KVM | called by SLOF only H_LOGICAL_MEMOP - not impl. by KVM | called by SLOF only H_TPM_COMM - not impl. by KVM | called by UV only H_UPDATE_DT - not impl. by KVM | called by SLOF only H_INT_GET_OS_REPORTING_LINE - not impl. by KVM | not called by linux/SLOF/UV H_INT_GET_QUEUE_CONFIG - not impl. by KVM | not called by linux/SLOF/UV H_INT_SET_OS_REPORTING_LINE - not impl. by KVM | not called by linux/SLOF/UV H_SCM_UNBIND_MEM - not impl. by KVM | not called by linux/SLOF/UV H_GET_TCE - HV | not impl. by PR | QEMU fallback H_SET_MODE - HV | not impl. by PR | QEMU fallback H_CONFER - HV | not impl. by PR H_PAGE_INIT - HV | not impl. by PR H_PROD - HV | not impl. by PR H_RANDOM - HV | not impl. by PR H_READ - HV | not impl. by PR H_REGISTER_VPA - HV | not impl. by PR H_SET_DABR - HV | not impl. by PR H_SET_XDABR - HV | not impl. by PR H_CPPR - HV | PR | QEMU fallback H_EOI - HV | PR | QEMU fallback H_IPI - HV | PR | QEMU fallback H_IPOLL - HV | PR | QEMU fallback H_LOGICAL_CI_LOAD - HV | PR | QEMU fallback H_LOGICAL_CI_STORE - HV | PR | QEMU fallback H_PUT_TCE - HV | PR | QEMU fallback H_PUT_TCE_INDIRECT - HV | PR | QEMU fallback H_RTAS - HV | PR | QEMU fallback H_STUFF_TCE - HV | PR | QEMU fallback H_XIRR - HV | PR | QEMU fallback H_XIRR_X - HV | PR | QEMU fallback H_BULK_REMOVE - HV | PR H_CEDE - HV | PR H_ENTER - HV | PR H_PROTECT - HV | PR H_REMOVE - HV | PR H_CLEAN_SLB - never called/implemented, added along with H_REGISTER_PROC_TBL H_INVALIDATE_PID - never called/implemented, added along with H_REGISTER_PROC_TBL PS: we could perhaps use this information to annotate qemu/include/spapr.h. I can send a patch if people find it useful. |
[Prev in Thread] | Current Thread | [Next in Thread] |