qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Claudio Fontana <cfontana@suse.de>
To: "Alex Bennée" <alex.bennee@linaro.org>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org, "Roman Bolshakov" <r.bolshakov@yadro.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: [RFC v1 00/38] arm cleanup experiment for kvm-only build
Date: Tue, 23 Feb 2021 10:18:33 +0100	[thread overview]
Message-ID: <ac869e6c-8969-585b-5a6e-a893635f2b2e@suse.de> (raw)
In-Reply-To: <875z2k53mn.fsf@linaro.org>

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
> 
> 



      parent reply	other threads:[~2021-02-23  9:22 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210221092449.7545-1-cfontana@suse.de>
     [not found] ` <20210221092449.7545-33-cfontana@suse.de>
2021-02-21  9:53   ` [RFC v1 32/38] target/arm: cpu: do not initialize TCG PMU for KVM Philippe Mathieu-Daudé
2021-02-21 13:59     ` Claudio Fontana
2021-02-22  6:11     ` Richard Henderson
     [not found] ` <20210221092449.7545-35-cfontana@suse.de>
2021-02-21  9:55   ` [RFC v1 34/38] target/arm: cpu: only initialize TCG gt timers under CONFIG_TCG Philippe Mathieu-Daudé
2021-02-21 13:59     ` Claudio Fontana
2021-02-22  8:35       ` Claudio Fontana
2021-03-01 18:19       ` Olaf Hering
     [not found]   ` <87v9ak5cz0.fsf@linaro.org>
2021-02-23  9:12     ` Claudio Fontana
2021-02-23 11:01       ` Alex Bennée
2021-02-23 11:36         ` Claudio Fontana
2021-02-23 12:38           ` Claudio Fontana
2021-02-23 14:47         ` Paolo Bonzini
2021-02-22  5:35 ` [RFC v1 00/38] arm cleanup experiment for kvm-only build Richard Henderson
2021-02-22  8:43   ` Claudio Fontana
2021-02-22 11:56     ` Philippe Mathieu-Daudé
2021-02-22 16:08     ` Richard Henderson
2021-02-22 16:57       ` Alex Bennée
2021-02-23  9:17       ` Claudio Fontana
     [not found] ` <20210221092449.7545-21-cfontana@suse.de>
2021-02-22  5:48   ` [RFC v1 20/38] target/arm: move arm_hcr_el2_eff to common_cpu Richard Henderson
     [not found] ` <20210221092449.7545-24-cfontana@suse.de>
2021-02-22  5:52   ` [RFC v1 23/38] target/arm: move arm_mmu_idx_el to common-cpu Richard Henderson
     [not found] ` <20210221092449.7545-25-cfontana@suse.de>
2021-02-22  6:02   ` [RFC v1 24/38] target/arm: move aa64_va_parameter_tbi,tbid,tcma and arm_rebuild_hflags Richard Henderson
2021-02-23 10:07     ` Claudio Fontana
2021-02-23 16:30       ` Richard Henderson
     [not found] ` <20210221092449.7545-26-cfontana@suse.de>
2021-02-22  6:04   ` [RFC v1 25/38] target/arm: move fp_exception_el outside of tcg helpers Richard Henderson
     [not found] ` <20210221092449.7545-27-cfontana@suse.de>
2021-02-22  6:05   ` [RFC v1 26/38] target/arm: move sve_exception_el to cpu Richard Henderson
     [not found] ` <20210221092449.7545-28-cfontana@suse.de>
2021-02-22  6:06   ` [RFC v1 27/38] target/arm: move sve_zcr_len_for_el to common_cpu Richard Henderson
2021-02-25 17:28     ` Claudio Fontana
2021-02-25 20:13       ` Claudio Fontana
2021-02-26  4:01         ` Richard Henderson
     [not found] ` <20210221092449.7545-29-cfontana@suse.de>
2021-02-22  6:09   ` [RFC v1 28/38] target/arm: make arm_pmu_timer_cb TCG-only, starting tcg-stub Richard Henderson
     [not found] ` <20210221092449.7545-2-cfontana@suse.de>
2021-02-22  6:14   ` [RFC v1 01/38] target/arm: move translate modules to tcg/ Richard Henderson
     [not found] ` <20210221092449.7545-3-cfontana@suse.de>
2021-02-22  6:16   ` [RFC v1 02/38] target/arm: move helpers " Richard Henderson
2021-02-22 17:20   ` Philippe Mathieu-Daudé
     [not found] ` <20210221092449.7545-4-cfontana@suse.de>
2021-02-22  6:16   ` [RFC v1 03/38] arm: tcg: only build under CONFIG_TCG Richard Henderson
     [not found] ` <20210221092449.7545-6-cfontana@suse.de>
2021-02-22  6:21   ` [RFC v1 05/38] target/arm: wrap arm_cpu_exec_interrupt in CONFIG_TCG Richard Henderson
2021-02-22  8:31     ` Claudio Fontana
2021-02-22 15:54       ` Richard Henderson
2021-02-23  8:46         ` Claudio Fontana
     [not found] ` <20210221092449.7545-9-cfontana@suse.de>
2021-02-22  6:29   ` [RFC v1 08/38] target/arm/tcg: split softmmu parts of v8_cp_reginfo and el2_cp_reginfo Richard Henderson
     [not found] ` <20210221092449.7545-5-cfontana@suse.de>
     [not found]   ` <87eeh857xf.fsf@linaro.org>
2021-02-23  8:44     ` [RFC v1 04/38] target/arm: move psci.c into tcg/softmmu/ Claudio Fontana
     [not found] ` <20210221092449.7545-7-cfontana@suse.de>
     [not found]   ` <87blcc57rj.fsf@linaro.org>
2021-02-23  8:55     ` [RFC v1 06/38] target/arm: split off cpu-softmmu.c Claudio Fontana
2021-02-23  9:16       ` Philippe Mathieu-Daudé
2021-02-23  9:35         ` Claudio Fontana
2021-02-23 18:18           ` softmmu vs sysemu [Was: Re: [RFC v1 06/38] target/arm: split off cpu-softmmu.c] Claudio Fontana
2021-02-23 18:51             ` Richard Henderson
2021-02-23 23:43               ` Philippe Mathieu-Daudé
2021-02-24  0:06                 ` Richard Henderson
2021-02-24  9:20                   ` Paolo Bonzini
2021-02-24  9:30                     ` Claudio Fontana
2021-02-24 10:00                       ` Paolo Bonzini
     [not found] ` <875z2k53mn.fsf@linaro.org>
2021-02-23  9:18   ` [RFC v1 00/38] arm cleanup experiment for kvm-only build Philippe Mathieu-Daudé
2021-03-01 11:52     ` Claudio Fontana
2021-03-01 16:23       ` Alex Bennée
2021-03-03 17:57         ` Claudio Fontana
2021-03-03 18:09           ` Peter Maydell
2021-03-03 18:17             ` Claudio Fontana
2021-03-03 18:20               ` Claudio Fontana
2021-03-03 18:30                 ` Philippe Mathieu-Daudé
2021-03-03 18:39                 ` Richard Henderson
2021-03-03 18:45                   ` Claudio Fontana
2021-03-03 18:54                     ` Richard Henderson
2021-03-04 16:39                       ` Philippe Mathieu-Daudé
2021-03-04 17:19                         ` Claudio Fontana
2021-03-04 17:47                           ` Philippe Mathieu-Daudé
2021-03-04 19:24                         ` Peter Maydell
2021-03-05  9:04                           ` Claudio Fontana
2021-03-03 18:34           ` Philippe Mathieu-Daudé
2021-03-03 18:38             ` Claudio Fontana
2021-02-23  9:18   ` Claudio Fontana [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac869e6c-8969-585b-5a6e-a893635f2b2e@suse.de \
    --to=cfontana@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=r.bolshakov@yadro.com \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).