[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC v1 00/38] arm cleanup experiment for kvm-only build
From: |
Claudio Fontana |
Subject: |
Re: [RFC v1 00/38] arm cleanup experiment for kvm-only build |
Date: |
Tue, 23 Feb 2021 10:18:33 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
On 2/22/21 8:00 PM, Alex Bennée wrote:
>
> Claudio Fontana <cfontana@suse.de> writes:
>
>> Hi all,
>>
>> this is an experiment, a cleanup based on and requiring the series
>> "i386 cleanup PART 2":
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg05935.html
>>
>> The goal is to split the code between TCG-only and non-TCG code,
>> fixing the KVM-only build (configure --disable-tcg),
>>
>> and laying the ground for further cleanups and the use of the
>> new accel objects in the hierarchy to specialize the cpu
>> according to the accelerator.
>>
>> This is known to be an early state, with probably a lot of work
>> still needed.
>
> Well early work is looking pretty good:
>
> 18:59:22 [alex@idun:~/l/q/b/default] review/arm-cleanup-rfc1|… ± ls -lh
> qemu-system-aarch64
> -rwxr-xr-x 1 alex alex 107M Feb 22 18:08 qemu-system-aarch64*
> 18:59:29 [alex@idun:~/l/q/b/default] review/arm-cleanup-rfc1|… ± ls -lh
> ../disable.tcg/qemu-system-aarch64
> -rwxr-xr-x 1 alex alex 76M Feb 22 17:47 ../disable.tcg/qemu-system-aarch64*
>
> and I've tested the KVM side works well enough with a basic image.
Thanks for giving it a spin :-)
Now needs a cleanup pass for sure..
Ciao,
Claudio
>
>>
>> I thought it could be useful to share early, especially in light
>> of the combination of this with Philippe's work on building
>> only the machines and devices compatible with KVM for arm.
>>
>> Comments welcome, thanks,
>>
>> Claudio
>>
>>
>> Claudio Fontana (38):
>> target/arm: move translate modules to tcg/
>> target/arm: move helpers to tcg/
>> arm: tcg: only build under CONFIG_TCG
>> target/arm: move psci.c into tcg/softmmu/
>> target/arm: wrap arm_cpu_exec_interrupt in CONFIG_TCG
>> target/arm: split off cpu-softmmu.c
>> target/arm: split off softmmu/helper.c
>> target/arm/tcg: split softmmu parts of v8_cp_reginfo and
>> el2_cp_reginfo
>> target/arm/tcg: split softmmu parts of vhe_cp_reginfo
>> target/arm/tcg: move v8_user_idregs to user-only subdir
>> target/arm/tcg: move id_v8_user_midr_cp_reginfo to user-only subdir
>> target/arm/tcg: move mpidr_user_cp_reginfo to user-only subdir
>> target/arm/tcg: split vapa_cp_reginfo softmmu part
>> target/arm: move vec_internal.h to tcg/
>> target/arm: move aarch64_sync_32_to_64 and vv to cpu code
>> target/arm: move arm_sctlr away from tcg helpers
>> target/arm: move switch_mode and cpsr_read/write to cpu
>> target/arm: split vfp state setting from tcg helpers
>> target/arm: move register read/write to common_cpu
>> target/arm: move arm_hcr_el2_eff to common_cpu
>> target/arm: move cp regs definition functions to common_cpu
>> target/arm: move arm_cpu_list to common_cpu
>> target/arm: move arm_mmu_idx_el to common-cpu
>> target/arm: move aa64_va_parameter_tbi,tbid,tcma and
>> arm_rebuild_hflags
>> target/arm: move fp_exception_el outside of tcg helpers
>> target/arm: move sve_exception_el to cpu
>> target/arm: move sve_zcr_len_for_el to common_cpu
>> target/arm: make arm_pmu_timer_cb TCG-only, starting tcg-stub
>> target/arm/tcg: add write_v7m_exception to stubs
>> target/arm: make hw_watchpoint and hw_breakpoint stuff tcg-only
>> target/arm: move cp register write-ignore and read-as-zero to cpu
>> target/arm: cpu: do not initialize TCG PMU for KVM
>> target/arm: cpu: do not initialize TCG view of cpregs
>> target/arm: cpu: only initialize TCG gt timers under CONFIG_TCG
>> target/arm: get-phys-addr: new module
>> target/arm: move qmp_query_cpu_definitions to common_cpu
>> target/arm: move arm_mmu_idx from tcg to get-phys-addr.c
>> target/arm: move arm_cpu_do_interrupt from tcg to common code
>>
>> meson.build | 2 +
>> target/arm/cpu.h | 5 +
>> target/arm/internals.h | 84 +-
>> target/arm/tcg/helper-tcg.h | 50 +
>> target/arm/tcg/softmmu/trace.h | 1 +
>> target/arm/tcg/trace.h | 1 +
>> target/arm/{ => tcg}/translate-a64.h | 0
>> target/arm/{ => tcg}/translate.h | 0
>> target/arm/{ => tcg}/vec_internal.h | 0
>> target/arm/{ => tcg}/a32-uncond.decode | 0
>> target/arm/{ => tcg}/a32.decode | 0
>> target/arm/{ => tcg}/m-nocp.decode | 0
>> target/arm/{ => tcg}/neon-dp.decode | 0
>> target/arm/{ => tcg}/neon-ls.decode | 0
>> target/arm/{ => tcg}/neon-shared.decode | 0
>> target/arm/{ => tcg}/sve.decode | 0
>> target/arm/{ => tcg}/t16.decode | 0
>> target/arm/{ => tcg}/t32.decode | 0
>> target/arm/{ => tcg}/vfp-uncond.decode | 0
>> target/arm/{ => tcg}/vfp.decode | 0
>> target/arm/cpu-common.c | 1388 +++++
>> target/arm/cpu-softmmu.c | 1228 ++++
>> target/arm/cpu-user.c | 77 +
>> target/arm/cpu-vfp.c | 232 +
>> target/arm/cpu.c | 109 +-
>> target/arm/get-phys-addr.c | 2286 +++++++
>> target/arm/machine.c | 23 +-
>> target/arm/{ => tcg}/crypto_helper.c | 0
>> target/arm/{ => tcg}/debug_helper.c | 0
>> target/arm/{ => tcg}/helper-a64.c | 0
>> target/arm/{ => tcg}/helper.c | 6613 +--------------------
>> target/arm/{ => tcg}/iwmmxt_helper.c | 0
>> target/arm/{ => tcg}/m_helper.c | 0
>> target/arm/{ => tcg}/mte_helper.c | 0
>> target/arm/{ => tcg}/neon_helper.c | 0
>> target/arm/{ => tcg}/op_helper.c | 0
>> target/arm/{ => tcg}/pauth_helper.c | 0
>> target/arm/tcg/softmmu/helper.c | 1784 ++++++
>> target/arm/{ => tcg/softmmu}/psci.c | 0
>> target/arm/{ => tcg}/sve_helper.c | 0
>> target/arm/tcg/tcg-stub.c | 20 +
>> target/arm/{ => tcg}/tlb_helper.c | 0
>> target/arm/{ => tcg}/translate-a64.c | 0
>> target/arm/{ => tcg}/translate-sve.c | 0
>> target/arm/{ => tcg}/translate.c | 0
>> target/arm/tcg/user/helper.c | 129 +
>> target/arm/tcg/user/psci.c | 26 +
>> target/arm/{ => tcg}/vec_helper.c | 0
>> target/arm/{ => tcg}/vfp_helper.c | 210 +-
>> target/arm/{ => tcg}/translate-neon.c.inc | 0
>> target/arm/{ => tcg}/translate-vfp.c.inc | 0
>> target/arm/meson.build | 42 +-
>> target/arm/tcg/meson.build | 43 +
>> target/arm/tcg/softmmu/meson.build | 5 +
>> target/arm/tcg/softmmu/trace-events | 10 +
>> target/arm/tcg/trace-events | 2 +
>> target/arm/tcg/user/meson.build | 5 +
>> target/arm/trace-events | 9 -
>> 58 files changed, 7427 insertions(+), 6957 deletions(-)
>> create mode 100644 target/arm/tcg/helper-tcg.h
>> create mode 100644 target/arm/tcg/softmmu/trace.h
>> create mode 100644 target/arm/tcg/trace.h
>> rename target/arm/{ => tcg}/translate-a64.h (100%)
>> rename target/arm/{ => tcg}/translate.h (100%)
>> rename target/arm/{ => tcg}/vec_internal.h (100%)
>> rename target/arm/{ => tcg}/a32-uncond.decode (100%)
>> rename target/arm/{ => tcg}/a32.decode (100%)
>> rename target/arm/{ => tcg}/m-nocp.decode (100%)
>> rename target/arm/{ => tcg}/neon-dp.decode (100%)
>> rename target/arm/{ => tcg}/neon-ls.decode (100%)
>> rename target/arm/{ => tcg}/neon-shared.decode (100%)
>> rename target/arm/{ => tcg}/sve.decode (100%)
>> rename target/arm/{ => tcg}/t16.decode (100%)
>> rename target/arm/{ => tcg}/t32.decode (100%)
>> rename target/arm/{ => tcg}/vfp-uncond.decode (100%)
>> rename target/arm/{ => tcg}/vfp.decode (100%)
>> create mode 100644 target/arm/cpu-common.c
>> create mode 100644 target/arm/cpu-softmmu.c
>> create mode 100644 target/arm/cpu-user.c
>> create mode 100644 target/arm/cpu-vfp.c
>> create mode 100644 target/arm/get-phys-addr.c
>> rename target/arm/{ => tcg}/crypto_helper.c (100%)
>> rename target/arm/{ => tcg}/debug_helper.c (100%)
>> rename target/arm/{ => tcg}/helper-a64.c (100%)
>> rename target/arm/{ => tcg}/helper.c (53%)
>> rename target/arm/{ => tcg}/iwmmxt_helper.c (100%)
>> rename target/arm/{ => tcg}/m_helper.c (100%)
>> rename target/arm/{ => tcg}/mte_helper.c (100%)
>> rename target/arm/{ => tcg}/neon_helper.c (100%)
>> rename target/arm/{ => tcg}/op_helper.c (100%)
>> rename target/arm/{ => tcg}/pauth_helper.c (100%)
>> create mode 100644 target/arm/tcg/softmmu/helper.c
>> rename target/arm/{ => tcg/softmmu}/psci.c (100%)
>> rename target/arm/{ => tcg}/sve_helper.c (100%)
>> create mode 100644 target/arm/tcg/tcg-stub.c
>> rename target/arm/{ => tcg}/tlb_helper.c (100%)
>> rename target/arm/{ => tcg}/translate-a64.c (100%)
>> rename target/arm/{ => tcg}/translate-sve.c (100%)
>> rename target/arm/{ => tcg}/translate.c (100%)
>> create mode 100644 target/arm/tcg/user/helper.c
>> create mode 100644 target/arm/tcg/user/psci.c
>> rename target/arm/{ => tcg}/vec_helper.c (100%)
>> rename target/arm/{ => tcg}/vfp_helper.c (84%)
>> rename target/arm/{ => tcg}/translate-neon.c.inc (100%)
>> rename target/arm/{ => tcg}/translate-vfp.c.inc (100%)
>> create mode 100644 target/arm/tcg/meson.build
>> create mode 100644 target/arm/tcg/softmmu/meson.build
>> create mode 100644 target/arm/tcg/softmmu/trace-events
>> create mode 100644 target/arm/tcg/trace-events
>> create mode 100644 target/arm/tcg/user/meson.build
>
>