qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, philmd@linaro.org
Subject: Re: [PATCH 00/37] accel/tcg, codebase: Build once patches
Date: Thu, 13 Mar 2025 09:36:09 -0700	[thread overview]
Message-ID: <04c5bc51-ac5e-412e-b77c-a52c5a90be13@linaro.org> (raw)
In-Reply-To: <20250313034524.3069690-1-richard.henderson@linaro.org>

On 3/12/25 20:44, Richard Henderson wrote:
> All this is working toward building accel/tcg/translator.c once,
> but it got late and I decided to stop at a convenient milestone.
> 
> In the process, I discovered that we have already added files to
> common_ss which indirectly depend on CONFIG_USER_ONLY.  Sometimes
> this is harmless, and sometimes it really is not.  For instance,
> plugin/api.c is affected by different translation-block.h layout.
>

Maybe it's finally a good reason to tackle user/system at the same time 
we make the rest of the files common.

> The only solution I can see is to poison CONFIG_USER_ONLY outside
> of specific contexts.  I hoisted some existing magic in tcg/ and
> gdbstub/ to build separate shared_libraries for user and system,
> as that's the only way to add extra command-line -Defines.
> 

It's a good approach (make common + poison is what prevent regressions 
and ensure we progress).
Working on target code, I found the need to have a common-{arch} lib, 
allowing to share code between variants of a given arch (arm vs 
aarch64), with a specific define too.

s/shared_libraries/static_libraries

As you mention, it's the only way, static libs used in our meson is just 
a hack to apply flags to a set of files, and in the end, object files 
are aggregated to create a final binary, without any intermediate file. 
I guess that was the only way to "make it work" for a project lacking 
proper libraries in the first place.

> Ideally, we would reuse the existing user_ss and system_ss source
> sets for these new static_libraries.  But in order for that to work,
> we'd need to construct the configuration_data sets to apply, and it
> wasn't immediately obvious what the correct sets would be.  Getting
> that wrong would silently omit files from the build, which could be
> hard to diagnose.  I thought it would be quicker and safer to create
> new source sets with only unconditional files.
> 
> I know there is overlap with other in-flight patches, but it
> seemed easiest to just start from master.
> 

It's probably the best way, even though we'll have rebase conflicts. 
Stacking series is something not convenient, a nightmare to apply, and 
does not scale when having several people working on the same topic.

> 
> r~
> 
> 
> Richard Henderson (37):
>    accel/tcg: Build user-exec-stub.c once
>    accel/tcg: Build plugin-gen.c once
>    include/exec: Use vaddr for *_mmu guest memory access routines
>    include/exec: Split out cpu-ldst-common.h
>    include/exec: Inline *_mmuidx_ra memory operations
>    include/exec: Inline *_data_ra memory operations
>    include/exec: Inline *_data memory operations
>    include/exec: Inline *_code memory operations
>    accel/tcg: Perform aligned atomic reads in translator_ld
>    accel/tcg: Use cpu_ld*_code_mmu in translator.c
>    accel/tcg: Implement translator_ld*_end
>    accel/tcg: Remove mmap_lock/unlock from watchpoint.c
>    include/exec: Split out mmap-lock.h
>    include/system: Move exec/memory.h to system/memory.h
>    include/system: Move exec/address-spaces.h to system/address-spaces.h
>    include/system: Move exec/ioport.h to system/ioport.h
>    meson: Introduce top-level libuser_ss and libsystem_ss
>    gdbstub: Move syscalls.c out of common_ss
>    accel/tcg: Use libuser_ss and libsystem_ss
>    target/mips: Protect semihosting call with CONFIG_SEMIHOSTING
>    target/xtensa: Protect semihosting call with CONFIG_SEMIHOSTING
>    semihosting: Move user-only implementation out-of-line
>    include/system: Move exec/ram_addr.h to system/ram_addr.h
>    include/system: Move exec/ramblock.h to system/ramblock.h
>    common-user: Split out watchpoint-stub.c
>    hw/core: Move unconditional files to libsystem_ss, libuser_ss
>    system: Move watchpoint.c to libsystem_ss
>    plugins: Move api.c, core.c to libuser_ss, libsystem_ss
>    include/exec: Split out cpu-mmu-index.h
>    include/exec: Drop ifndef CONFIG_USER_ONLY from cpu-common.h
>    include/hw/core: Drop ifndef CONFIG_USER_ONLY from cpu.h
>    include/hw/intc: Remove ifndef CONFIG_USER_ONLY from armv7m_nvic.h
>    include/hw/s390x: Remove ifndef CONFIG_USER_ONLY in css.h
>    include/system: Remove ifndef CONFIG_USER_ONLY
>    include/qemu: Remove ifndef CONFIG_USER_ONLY from accel.h
>    target/riscv: Remove ifndef CONFIG_USER_ONLY from cpu_cfg.h
>    meson: Only allow CONFIG_USER_ONLY from certain source sets
> 
>   accel/tcg/atomic_template.h                 |  16 +-
>   accel/tcg/internal-target.h                 |   1 +
>   hw/arm/strongarm.h                          |   2 +-
>   hw/display/apple-gfx.h                      |   2 +-
>   hw/display/framebuffer.h                    |   2 +-
>   hw/display/vga_int.h                        |   4 +-
>   hw/hyperv/hv-balloon-our_range_memslots.h   |   2 +-
>   hw/intc/ioapic_internal.h                   |   2 +-
>   hw/net/i82596.h                             |   4 +-
>   hw/net/pcnet.h                              |   2 +-
>   hw/s390x/ipl.h                              |   2 +-
>   hw/tpm/tpm_ppi.h                            |   2 +-
>   hw/usb/hcd-uhci.h                           |   2 +-
>   hw/vfio/pci.h                               |   2 +-
>   hw/virtio/vhost-iova-tree.h                 |   2 +-
>   include/exec/cpu-all.h                      |   9 +-
>   include/exec/cpu-common.h                   |  26 -
>   include/exec/cpu-ldst-common.h              | 122 +++++
>   include/exec/cpu-mmu-index.h                |  33 ++
>   include/exec/cpu_ldst.h                     | 540 +++++++++++++-------
>   include/exec/mmap-lock.h                    |  33 ++
>   include/exec/page-protection.h              |  22 -
>   include/exec/poison.h                       |   5 +
>   include/exec/translator.h                   |  50 +-
>   include/hw/acpi/acpi.h                      |   2 +-
>   include/hw/acpi/ich9_tco.h                  |   2 +-
>   include/hw/arm/fsl-imx25.h                  |   2 +-
>   include/hw/arm/fsl-imx31.h                  |   2 +-
>   include/hw/arm/fsl-imx6.h                   |   2 +-
>   include/hw/arm/fsl-imx6ul.h                 |   2 +-
>   include/hw/arm/omap.h                       |   2 +-
>   include/hw/arm/stm32l4x5_soc.h              |   2 +-
>   include/hw/boards.h                         |   2 +-
>   include/hw/char/parallel-isa.h              |   2 +-
>   include/hw/char/parallel.h                  |   2 +-
>   include/hw/char/riscv_htif.h                |   2 +-
>   include/hw/char/serial-mm.h                 |   2 +-
>   include/hw/char/serial.h                    |   2 +-
>   include/hw/core/cpu.h                       |  33 --
>   include/hw/display/macfb.h                  |   2 +-
>   include/hw/dma/i8257.h                      |   2 +-
>   include/hw/fsi/aspeed_apb2opb.h             |   2 +-
>   include/hw/fsi/cfam.h                       |   2 +-
>   include/hw/fsi/fsi-master.h                 |   2 +-
>   include/hw/fsi/fsi.h                        |   2 +-
>   include/hw/fsi/lbus.h                       |   2 +-
>   include/hw/gpio/npcm7xx_gpio.h              |   2 +-
>   include/hw/hw.h                             |   4 -
>   include/hw/i2c/npcm7xx_smbus.h              |   2 +-
>   include/hw/i2c/pm_smbus.h                   |   2 +-
>   include/hw/i386/apic_internal.h             |   2 +-
>   include/hw/i386/x86.h                       |   2 +-
>   include/hw/ide/ahci.h                       |   2 +-
>   include/hw/ide/ide-bus.h                    |   2 +-
>   include/hw/intc/armv7m_nvic.h               |  14 -
>   include/hw/ipmi/ipmi.h                      |   2 +-
>   include/hw/isa/apm.h                        |   2 +-
>   include/hw/isa/isa.h                        |   4 +-
>   include/hw/m68k/q800.h                      |   2 +-
>   include/hw/mem/npcm7xx_mc.h                 |   2 +-
>   include/hw/mem/pc-dimm.h                    |   2 +-
>   include/hw/mips/mips.h                      |   2 +-
>   include/hw/misc/auxbus.h                    |   2 +-
>   include/hw/misc/ivshmem-flat.h              |   2 +-
>   include/hw/misc/lasi.h                      |   2 +-
>   include/hw/misc/mac_via.h                   |   2 +-
>   include/hw/misc/npcm7xx_mft.h               |   2 +-
>   include/hw/misc/npcm_clk.h                  |   2 +-
>   include/hw/misc/npcm_gcr.h                  |   2 +-
>   include/hw/misc/pvpanic.h                   |   2 +-
>   include/hw/net/dp8393x.h                    |   2 +-
>   include/hw/net/msf2-emac.h                  |   2 +-
>   include/hw/nubus/nubus.h                    |   2 +-
>   include/hw/nvram/mac_nvram.h                |   2 +-
>   include/hw/nvram/npcm7xx_otp.h              |   2 +-
>   include/hw/pci-host/fsl_imx8m_phy.h         |   2 +-
>   include/hw/pci-host/pam.h                   |   2 +-
>   include/hw/pci-host/remote.h                |   2 +-
>   include/hw/pci/pci.h                        |   2 +-
>   include/hw/pci/pcie_host.h                  |   2 +-
>   include/hw/pci/shpc.h                       |   2 +-
>   include/hw/ppc/mac_dbdma.h                  |   2 +-
>   include/hw/ppc/pnv_lpc.h                    |   2 +-
>   include/hw/ppc/pnv_occ.h                    |   2 +-
>   include/hw/ppc/pnv_sbe.h                    |   2 +-
>   include/hw/ppc/pnv_xscom.h                  |   2 +-
>   include/hw/ppc/ppc4xx.h                     |   2 +-
>   include/hw/ppc/vof.h                        |   4 +-
>   include/hw/ppc/xics.h                       |   2 +-
>   include/hw/register.h                       |   2 +-
>   include/hw/remote/proxy-memory-listener.h   |   2 +-
>   include/hw/s390x/css.h                      |   2 -
>   include/hw/sh4/sh_intc.h                    |   2 +-
>   include/hw/southbridge/ich9.h               |   2 +-
>   include/hw/sysbus.h                         |   2 +-
>   include/hw/timer/npcm7xx_timer.h            |   2 +-
>   include/hw/tricore/triboard.h               |   2 +-
>   include/hw/tricore/tricore.h                |   2 +-
>   include/hw/usb.h                            |   2 +-
>   include/hw/vfio/vfio-common.h               |   2 +-
>   include/hw/vfio/vfio-container-base.h       |   2 +-
>   include/hw/virtio/vhost-backend.h           |   2 +-
>   include/hw/virtio/vhost.h                   |   2 +-
>   include/hw/virtio/virtio.h                  |   2 +-
>   include/hw/xen/xen-pvh-common.h             |   2 +-
>   include/hw/xtensa/mx_pic.h                  |   2 +-
>   include/qemu/accel.h                        |  10 +-
>   include/qemu/iova-tree.h                    |   2 +-
>   include/qemu/reserved-region.h              |   2 +-
>   include/semihosting/semihost.h              |  29 +-
>   include/{exec => system}/address-spaces.h   |   8 +-
>   include/system/confidential-guest-support.h |   4 -
>   include/system/cpu-timers.h                 |   2 +-
>   include/system/dma.h                        |   4 +-
>   include/system/hostmem.h                    |   2 +-
>   include/{exec => system}/ioport.h           |   8 +-
>   include/system/kvm_int.h                    |   2 +-
>   include/{exec => system}/memory.h           |   8 +-
>   include/system/qtest.h                      |   2 -
>   include/{exec => system}/ram_addr.h         |   9 +-
>   include/{exec => system}/ramblock.h         |   9 +-
>   include/system/replay.h                     |   4 -
>   include/system/vhost-user-backend.h         |   2 +-
>   include/system/xen.h                        |   4 -
>   migration/rdma.h                            |   2 +-
>   rust/wrapper.h                              |   4 +-
>   target/i386/hvf/vmx.h                       |   2 +-
>   target/loongarch/cpu.h                      |   2 +-
>   target/mips/cpu.h                           |   2 +-
>   target/riscv/cpu_cfg.h                      |   2 -
>   accel/hvf/hvf-accel-ops.c                   |   2 +-
>   accel/kvm/kvm-all.c                         |   4 +-
>   accel/tcg/cpu-exec.c                        |   1 +
>   accel/tcg/cputlb.c                          |  40 +-
>   accel/tcg/plugin-gen.c                      |  13 +-
>   accel/tcg/tb-maint.c                        |   1 +
>   accel/tcg/translate-all.c                   |   3 +-
>   accel/tcg/translator.c                      | 120 +++--
>   accel/tcg/user-exec.c                       |  48 +-
>   accel/tcg/watchpoint.c                      |   3 -
>   backends/tpm/tpm_util.c                     |   2 +-
>   block/blkio.c                               |   4 +-
>   common-user/watchpoint-stub.c               |  28 +
>   disas/disas-mon.c                           |   2 +-
>   hw/acpi/erst.c                              |   4 +-
>   hw/arm/aspeed_ast10x0.c                     |   2 +-
>   hw/arm/bananapi_m2u.c                       |   2 +-
>   hw/arm/collie.c                             |   2 +-
>   hw/arm/exynos4_boards.c                     |   2 +-
>   hw/arm/fsl-imx31.c                          |   2 +-
>   hw/arm/fsl-imx8mp.c                         |   2 +-
>   hw/arm/imx8mp-evk.c                         |   2 +-
>   hw/arm/integratorcp.c                       |   2 +-
>   hw/arm/kzm.c                                |   2 +-
>   hw/arm/microbit.c                           |   2 +-
>   hw/arm/mps2-tz.c                            |   2 +-
>   hw/arm/mps2.c                               |   2 +-
>   hw/arm/mps3r.c                              |   2 +-
>   hw/arm/msf2-soc.c                           |   2 +-
>   hw/arm/msf2-som.c                           |   2 +-
>   hw/arm/musca.c                              |   2 +-
>   hw/arm/omap1.c                              |   2 +-
>   hw/arm/omap_sx1.c                           |   2 +-
>   hw/arm/orangepi.c                           |   2 +-
>   hw/arm/stellaris.c                          |   2 +-
>   hw/arm/stm32f100_soc.c                      |   2 +-
>   hw/arm/stm32f205_soc.c                      |   2 +-
>   hw/arm/stm32f405_soc.c                      |   2 +-
>   hw/arm/stm32l4x5_soc.c                      |   2 +-
>   hw/avr/atmega.c                             |   4 +-
>   hw/block/fdc-isa.c                          |   2 +-
>   hw/block/fdc-sysbus.c                       |   2 +-
>   hw/char/goldfish_tty.c                      |   2 +-
>   hw/char/omap_uart.c                         |   2 +-
>   hw/char/riscv_htif.c                        |   2 +-
>   hw/core/cpu-system.c                        |   4 +-
>   hw/core/loader-fit.c                        |   2 +-
>   hw/core/loader.c                            |   2 +-
>   hw/core/null-machine.c                      |   2 +-
>   hw/core/sysbus.c                            |   2 +-
>   hw/display/edid-region.c                    |   2 +-
>   hw/display/virtio-gpu-udmabuf.c             |   2 +-
>   hw/dma/rc4030.c                             |   2 +-
>   hw/hyperv/hv-balloon.c                      |   4 +-
>   hw/hyperv/hyperv.c                          |   4 +-
>   hw/i386/acpi-common.c                       |   2 +-
>   hw/i386/acpi-microvm.c                      |   2 +-
>   hw/i386/kvm/xen_evtchn.c                    |   2 +-
>   hw/i386/kvm/xen_gnttab.c                    |   2 +-
>   hw/i386/kvm/xen_overlay.c                   |   2 +-
>   hw/i386/pc_piix.c                           |   2 +-
>   hw/i386/sgx-epc.c                           |   2 +-
>   hw/i386/sgx.c                               |   2 +-
>   hw/i386/vapic.c                             |   2 +-
>   hw/ide/ahci-sysbus.c                        |   2 +-
>   hw/input/lasips2.c                          |   2 +-
>   hw/intc/loongarch_extioi.c                  |   2 +-
>   hw/intc/mips_gic.c                          |   2 +-
>   hw/intc/ompic.c                             |   2 +-
>   hw/intc/riscv_aplic.c                       |   2 +-
>   hw/intc/riscv_imsic.c                       |   2 +-
>   hw/loongarch/virt.c                         |   2 +-
>   hw/mem/memory-device.c                      |   2 +-
>   hw/microblaze/petalogix_ml605_mmu.c         |   2 +-
>   hw/microblaze/petalogix_s3adsp1800_mmu.c    |   2 +-
>   hw/microblaze/xlnx-zynqmp-pmu.c             |   2 +-
>   hw/mips/mipssim.c                           |   2 +-
>   hw/misc/allwinner-h3-dramc.c                |   2 +-
>   hw/misc/allwinner-r40-dramc.c               |   2 +-
>   hw/misc/ivshmem-flat.c                      |   2 +-
>   hw/misc/mac_via.c                           |   2 +-
>   hw/net/i82596.c                             |   2 +-
>   hw/net/ne2000.c                             |   2 +-
>   hw/nvram/fw_cfg.c                           |   2 +-
>   hw/openrisc/openrisc_sim.c                  |   2 +-
>   hw/openrisc/virt.c                          |   2 +-
>   hw/pci-bridge/pci_bridge_dev.c              |   2 +-
>   hw/pci-host/mv64361.c                       |   2 +-
>   hw/pci-host/remote.c                        |   2 +-
>   hw/ppc/pegasos2.c                           |   2 +-
>   hw/ppc/pnv_homer.c                          |   2 +-
>   hw/ppc/pnv_psi.c                            |   2 +-
>   hw/ppc/ppc405_uc.c                          |   2 +-
>   hw/ppc/ppc4xx_sdram.c                       |   2 +-
>   hw/ppc/prep_systemio.c                      |   2 +-
>   hw/ppc/rs6000_mc.c                          |   2 +-
>   hw/ppc/sam460ex.c                           |   2 +-
>   hw/ppc/spapr.c                              |   2 +-
>   hw/ppc/spapr_caps.c                         |   2 +-
>   hw/ppc/spapr_ovec.c                         |   2 +-
>   hw/ppc/spapr_pci.c                          |   2 +-
>   hw/ppc/vof.c                                |   2 +-
>   hw/remote/iommu.c                           |   4 +-
>   hw/remote/machine.c                         |   2 +-
>   hw/remote/memory.c                          |   2 +-
>   hw/remote/proxy-memory-listener.c           |   4 +-
>   hw/remote/vfio-user-obj.c                   |   2 +-
>   hw/riscv/microblaze-v-generic.c             |   2 +-
>   hw/riscv/opentitan.c                        |   2 +-
>   hw/riscv/shakti_c.c                         |   2 +-
>   hw/s390x/css.c                              |   2 +-
>   hw/s390x/s390-pci-inst.c                    |   2 +-
>   hw/s390x/s390-skeys.c                       |   2 +-
>   hw/s390x/s390-stattrib-kvm.c                |   2 +-
>   hw/s390x/s390-stattrib.c                    |   2 +-
>   hw/s390x/s390-virtio-ccw.c                  |   2 +-
>   hw/s390x/virtio-ccw.c                       |   2 +-
>   hw/sparc/sun4m_iommu.c                      |   2 +-
>   hw/sparc64/sun4u_iommu.c                    |   2 +-
>   hw/timer/hpet.c                             |   2 +-
>   hw/timer/sh_timer.c                         |   2 +-
>   hw/tpm/tpm_crb.c                            |   2 +-
>   hw/vfio/ap.c                                |   2 +-
>   hw/vfio/ccw.c                               |   2 +-
>   hw/vfio/common.c                            |   6 +-
>   hw/vfio/container.c                         |   6 +-
>   hw/vfio/iommufd.c                           |   2 +-
>   hw/vfio/migration.c                         |   2 +-
>   hw/vfio/platform.c                          |   4 +-
>   hw/vfio/spapr.c                             |   4 +-
>   hw/virtio/vhost-user.c                      |   2 +-
>   hw/virtio/vhost-vdpa.c                      |   2 +-
>   hw/virtio/virtio-balloon.c                  |   2 +-
>   hw/virtio/virtio-bus.c                      |   2 +-
>   hw/virtio/virtio-mem.c                      |   2 +-
>   hw/xtensa/sim.c                             |   2 +-
>   hw/xtensa/virt.c                            |   2 +-
>   hw/xtensa/xtensa_memory.c                   |   2 +-
>   hw/xtensa/xtfpga.c                          |   2 +-
>   linux-user/arm/cpu_loop.c                   |   1 +
>   linux-user/elfload.c                        |   1 +
>   linux-user/flatload.c                       |   1 +
>   linux-user/mmap.c                           |   1 +
>   linux-user/syscall.c                        |   1 +
>   migration/dirtyrate.c                       |   4 +-
>   migration/file.c                            |   2 +-
>   migration/multifd-nocomp.c                  |   2 +-
>   migration/multifd-qatzip.c                  |   2 +-
>   migration/multifd-qpl.c                     |   2 +-
>   migration/multifd-uadk.c                    |   2 +-
>   migration/multifd-zero-page.c               |   2 +-
>   migration/multifd-zlib.c                    |   2 +-
>   migration/multifd-zstd.c                    |   2 +-
>   migration/multifd.c                         |   2 +-
>   migration/postcopy-ram.c                    |   2 +-
>   migration/ram.c                             |   2 +-
>   migration/rdma.c                            |   2 +-
>   migration/savevm.c                          |   2 +-
>   monitor/hmp-cmds-target.c                   |   4 +-
>   monitor/hmp-cmds.c                          |   4 +-
>   semihosting/uaccess.c                       |   1 +
>   semihosting/user.c                          |  30 ++
>   stubs/ram-block.c                           |   2 +-
>   system/dirtylimit.c                         |   2 +-
>   system/ioport.c                             |   6 +-
>   system/memory.c                             |   6 +-
>   system/memory_mapping.c                     |   4 +-
>   system/physmem.c                            |   6 +-
>   system/qtest.c                              |   4 +-
>   target/arm/gdbstub64.c                      |   3 +
>   target/arm/helper.c                         |   1 +
>   target/arm/hvf/hvf.c                        |   2 +-
>   target/arm/kvm.c                            |   2 +-
>   target/arm/tcg/mte_helper.c                 |   2 +-
>   target/avr/helper.c                         |   2 +-
>   target/hppa/mem_helper.c                    |   1 +
>   target/i386/cpu-apic.c                      |   2 +-
>   target/i386/cpu.c                           |   2 +-
>   target/i386/kvm/xen-emu.c                   |   2 +-
>   target/i386/nvmm/nvmm-all.c                 |   4 +-
>   target/i386/sev.c                           |   2 +-
>   target/i386/tcg/system/misc_helper.c        |   2 +-
>   target/i386/tcg/system/tcg-cpu.c            |   2 +-
>   target/i386/tcg/translate.c                 |   1 +
>   target/i386/whpx/whpx-all.c                 |   4 +-
>   target/loongarch/cpu_helper.c               |   1 +
>   target/loongarch/kvm/kvm.c                  |   2 +-
>   target/microblaze/helper.c                  |   1 +
>   target/microblaze/mmu.c                     |   1 +
>   target/mips/cpu.c                           |   3 +-
>   target/openrisc/translate.c                 |   1 +
>   target/ppc/kvm.c                            |   2 +-
>   target/riscv/kvm/kvm-cpu.c                  |   2 +-
>   target/s390x/kvm/kvm.c                      |   2 +-
>   target/s390x/mmu_helper.c                   |   2 +-
>   target/s390x/sigp.c                         |   2 +-
>   target/s390x/tcg/excp_helper.c              |   2 +-
>   target/sparc/cpu.c                          |   1 +
>   target/sparc/mmu_helper.c                   |   1 +
>   target/tricore/helper.c                     |   1 +
>   target/xtensa/cpu.c                         |   2 +-
>   target/xtensa/dbg_helper.c                  |   2 +-
>   target/xtensa/mmu_helper.c                  |   1 +
>   target/xtensa/translate.c                   |  13 +-
>   tests/qtest/fuzz/generic_fuzz.c             |   4 +-
>   tests/qtest/fuzz/qos_fuzz.c                 |   2 +-
>   tests/qtest/fuzz/qtest_wrappers.c           |   2 +-
>   tests/unit/test-resv-mem.c                  |   2 +-
>   ui/console.c                                |   2 +-
>   util/vfio-helpers.c                         |   2 +-
>   MAINTAINERS                                 |   8 +-
>   accel/tcg/ldst_common.c.inc                 | 335 +-----------
>   accel/tcg/meson.build                       |  25 +-
>   common-user/meson.build                     |   1 +
>   docs/devel/memory.rst                       |   2 +-
>   gdbstub/meson.build                         |  36 +-
>   hw/core/meson.build                         |   4 +-
>   hw/display/apple-gfx.m                      |   2 +-
>   meson.build                                 |  24 +
>   plugins/meson.build                         |   5 +-
>   scripts/analyze-inclusions                  |   2 +-
>   semihosting/meson.build                     |   2 +
>   system/meson.build                          |   5 +-
>   tcg/meson.build                             |  23 +-
>   354 files changed, 1211 insertions(+), 1229 deletions(-)
>   create mode 100644 include/exec/cpu-ldst-common.h
>   create mode 100644 include/exec/cpu-mmu-index.h
>   create mode 100644 include/exec/mmap-lock.h
>   rename include/{exec => system}/address-spaces.h (89%)
>   rename include/{exec => system}/ioport.h (96%)
>   rename include/{exec => system}/memory.h (99%)
>   rename include/{exec => system}/ram_addr.h (99%)
>   rename include/{exec => system}/ramblock.h (96%)
>   create mode 100644 common-user/watchpoint-stub.c
>   create mode 100644 semihosting/user.c
> 



  parent reply	other threads:[~2025-03-13 16:37 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-13  3:44 [PATCH 00/37] accel/tcg, codebase: Build once patches Richard Henderson
2025-03-13  3:44 ` [PATCH 01/37] accel/tcg: Build user-exec-stub.c once Richard Henderson
2025-03-13  9:43   ` Philippe Mathieu-Daudé
2025-03-13 16:37   ` Pierrick Bouvier
2025-03-13 22:56   ` Alex Bennée
2025-03-13  3:44 ` [PATCH 02/37] accel/tcg: Build plugin-gen.c once Richard Henderson
2025-03-13 16:46   ` Pierrick Bouvier
2025-03-13 22:57   ` Alex Bennée
2025-03-13  3:44 ` [PATCH 03/37] include/exec: Use vaddr for *_mmu guest memory access routines Richard Henderson
2025-03-13 16:48   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 04/37] include/exec: Split out cpu-ldst-common.h Richard Henderson
2025-03-13 16:50   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 05/37] include/exec: Inline *_mmuidx_ra memory operations Richard Henderson
2025-03-13 16:59   ` Pierrick Bouvier
2025-03-13 18:05     ` Richard Henderson
2025-03-13 18:26       ` Philippe Mathieu-Daudé
2025-03-14  0:07         ` Richard Henderson
2025-03-13 20:14       ` Pierrick Bouvier
2025-03-13 17:11   ` Pierrick Bouvier
2025-03-13 17:55     ` Richard Henderson
2025-03-13  3:44 ` [PATCH 06/37] include/exec: Inline *_data_ra " Richard Henderson
2025-03-13 16:22   ` Alex Bennée
2025-03-14  0:20     ` Richard Henderson
2025-03-13 17:04   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 07/37] include/exec: Inline *_data " Richard Henderson
2025-03-13 17:05   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 08/37] include/exec: Inline *_code " Richard Henderson
2025-03-13 17:08   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 09/37] accel/tcg: Perform aligned atomic reads in translator_ld Richard Henderson
2025-03-13 17:14   ` Pierrick Bouvier
2025-03-14  0:47     ` Richard Henderson
2025-03-13  3:44 ` [PATCH 10/37] accel/tcg: Use cpu_ld*_code_mmu in translator.c Richard Henderson
2025-03-13  9:54   ` Philippe Mathieu-Daudé
2025-03-13  9:57     ` Philippe Mathieu-Daudé
2025-03-13 17:21   ` Pierrick Bouvier
2025-03-14  0:57     ` Richard Henderson
2025-03-13  3:44 ` [PATCH 11/37] accel/tcg: Implement translator_ld*_end Richard Henderson
2025-03-13 17:33   ` Pierrick Bouvier
2025-03-13 18:17     ` Richard Henderson
2025-03-13 20:49       ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 12/37] accel/tcg: Remove mmap_lock/unlock from watchpoint.c Richard Henderson
2025-03-13  9:57   ` Philippe Mathieu-Daudé
2025-03-13 17:27   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 13/37] include/exec: Split out mmap-lock.h Richard Henderson
2025-03-13  9:58   ` Philippe Mathieu-Daudé
2025-03-14  1:40     ` Richard Henderson
2025-03-13 17:34   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 14/37] include/system: Move exec/memory.h to system/memory.h Richard Henderson
2025-03-13 10:00   ` Philippe Mathieu-Daudé
2025-03-13 17:34   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 15/37] include/system: Move exec/address-spaces.h to system/address-spaces.h Richard Henderson
2025-03-13 10:01   ` Philippe Mathieu-Daudé
2025-03-13 17:34   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 16/37] include/system: Move exec/ioport.h to system/ioport.h Richard Henderson
2025-03-13 17:35   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 17/37] meson: Introduce top-level libuser_ss and libsystem_ss Richard Henderson
2025-03-13 17:36   ` Pierrick Bouvier
2025-03-13  3:44 ` [PATCH 18/37] gdbstub: Move syscalls.c out of common_ss Richard Henderson
2025-03-13 17:46   ` Pierrick Bouvier
2025-03-13 18:31     ` Richard Henderson
2025-03-13  3:44 ` [PATCH 19/37] accel/tcg: Use libuser_ss and libsystem_ss Richard Henderson
2025-03-13 20:53   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 20/37] target/mips: Protect semihosting call with CONFIG_SEMIHOSTING Richard Henderson
2025-03-13 20:51   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 21/37] target/xtensa: " Richard Henderson
2025-03-13 20:54   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 22/37] semihosting: Move user-only implementation out-of-line Richard Henderson
2025-03-13 10:04   ` Philippe Mathieu-Daudé
2025-03-13 10:28     ` Philippe Mathieu-Daudé
2025-03-13  3:45 ` [PATCH 23/37] include/system: Move exec/ram_addr.h to system/ram_addr.h Richard Henderson
2025-03-13 17:22   ` Alex Bennée
2025-03-13 20:55   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 24/37] include/system: Move exec/ramblock.h to system/ramblock.h Richard Henderson
2025-03-13 20:56   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 25/37] common-user: Split out watchpoint-stub.c Richard Henderson
2025-03-13 10:07   ` Philippe Mathieu-Daudé
2025-03-13 10:39     ` Philippe Mathieu-Daudé
2025-03-14 16:37       ` Richard Henderson
2025-03-14 16:53         ` Pierrick Bouvier
2025-03-13 20:57   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 26/37] hw/core: Move unconditional files to libsystem_ss, libuser_ss Richard Henderson
2025-03-13 20:57   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 27/37] system: Move watchpoint.c to libsystem_ss Richard Henderson
2025-03-13 20:57   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 28/37] plugins: Move api.c, core.c to libuser_ss, libsystem_ss Richard Henderson
2025-03-13 20:57   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 29/37] include/exec: Split out cpu-mmu-index.h Richard Henderson
2025-03-13 20:58   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 30/37] include/exec: Drop ifndef CONFIG_USER_ONLY from cpu-common.h Richard Henderson
2025-03-13 20:58   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 31/37] include/hw/core: Drop ifndef CONFIG_USER_ONLY from cpu.h Richard Henderson
2025-03-13 20:58   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 32/37] include/hw/intc: Remove ifndef CONFIG_USER_ONLY from armv7m_nvic.h Richard Henderson
2025-03-13 21:00   ` Pierrick Bouvier
2025-03-14 18:13     ` Richard Henderson
2025-03-14 18:36       ` Pierrick Bouvier
2025-03-14 20:03         ` Richard Henderson
2025-03-14 20:34           ` Pierrick Bouvier
2025-03-14 20:59             ` Richard Henderson
2025-03-14 22:05               ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 33/37] include/hw/s390x: Remove ifndef CONFIG_USER_ONLY in css.h Richard Henderson
2025-03-13 21:00   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 34/37] include/system: Remove ifndef CONFIG_USER_ONLY Richard Henderson
2025-03-13 10:18   ` Philippe Mathieu-Daudé
2025-03-13 21:02   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 35/37] include/qemu: Remove ifndef CONFIG_USER_ONLY from accel.h Richard Henderson
2025-03-13 21:03   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 36/37] target/riscv: Remove ifndef CONFIG_USER_ONLY from cpu_cfg.h Richard Henderson
2025-03-13 21:03   ` Pierrick Bouvier
2025-03-13  3:45 ` [PATCH 37/37] meson: Only allow CONFIG_USER_ONLY from certain source sets Richard Henderson
2025-03-13 20:50   ` Pierrick Bouvier
2025-03-13 13:56 ` [PATCH 00/37] accel/tcg, codebase: Build once patches Alex Bennée
2025-03-13 16:36 ` Pierrick Bouvier [this message]
2025-03-13 17:48   ` Philippe Mathieu-Daudé
2025-03-13 20:13     ` Pierrick Bouvier

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=04c5bc51-ac5e-412e-b77c-a52c5a90be13@linaro.org \
    --to=pierrick.bouvier@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --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).