[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH-for-8.0 1/4] cputlb: Restrict SavedIOTLB to system emulation
From: |
Alex Bennée |
Subject: |
Re: [PATCH-for-8.0 1/4] cputlb: Restrict SavedIOTLB to system emulation |
Date: |
Thu, 08 Dec 2022 08:40:09 +0000 |
User-agent: |
mu4e 1.9.3; emacs 29.0.60 |
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> Commit 2f3a57ee47 ("cputlb: ensure we save the IOTLB data in
> case of reset") added the SavedIOTLB structure -- which is
> system emulation specific -- in the generic CPUState structure.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> accel/tcg/cputlb.c | 4 ++--
> include/hw/core/cpu.h | 6 ++++--
> 2 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
> index 6f1c00682b..0ea96fbcdf 100644
> --- a/accel/tcg/cputlb.c
> +++ b/accel/tcg/cputlb.c
> @@ -1395,7 +1395,7 @@ static uint64_t io_readx(CPUArchState *env,
> CPUTLBEntryFull *full,
> static void save_iotlb_data(CPUState *cs, MemoryRegionSection *section,
> hwaddr mr_offset)
> {
> -#ifdef CONFIG_PLUGIN
> +#if defined(CONFIG_PLUGIN) && !defined(CONFIG_USER_ONLY)
cputlb is softmmu only so I don't think we need to check CONFIG_USER_ONLY here.
> SavedIOTLB *saved = &cs->saved_iotlb;
> saved->section = section;
> saved->mr_offset = mr_offset;
> @@ -1699,7 +1699,7 @@ tb_page_addr_t get_page_addr_code_hostp(CPUArchState
> *env, target_ulong addr,
> return qemu_ram_addr_from_host_nofail(p);
> }
>
> -#ifdef CONFIG_PLUGIN
> +#if defined(CONFIG_PLUGIN) && !defined(CONFIG_USER_ONLY)
> /*
> * Perform a TLB lookup and populate the qemu_plugin_hwaddr structure.
> * This should be a hot path as we will have just looked this path up
> diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
> index 8830546121..bc3229ae13 100644
> --- a/include/hw/core/cpu.h
> +++ b/include/hw/core/cpu.h
> @@ -222,7 +222,7 @@ struct CPUWatchpoint {
> QTAILQ_ENTRY(CPUWatchpoint) entry;
> };
>
> -#ifdef CONFIG_PLUGIN
> +#if defined(CONFIG_PLUGIN) && !defined(CONFIG_USER_ONLY)
> /*
> * For plugins we sometime need to save the resolved iotlb data before
> * the memory regions get moved around by io_writex.
> @@ -406,9 +406,11 @@ struct CPUState {
>
> #ifdef CONFIG_PLUGIN
> GArray *plugin_mem_cbs;
> +#if !defined(CONFIG_USER_ONLY)
> /* saved iotlb data from io_writex */
> SavedIOTLB saved_iotlb;
> -#endif
> +#endif /* !CONFIG_USER_ONLY */
> +#endif /* CONFIG_PLUGIN */
>
> /* TODO Move common fields from CPUArchState here. */
> int cpu_index;
--
Alex Bennée
[PATCH-for-8.0 3/4] target/cpu: Restrict cpu_get_phys_page_debug() handlers to sysemu, Philippe Mathieu-Daudé, 2022/12/07
[PATCH-for-8.0 4/4] target/sparc: Cleanup around sparc_cpu_do_unaligned_access(), Philippe Mathieu-Daudé, 2022/12/07