[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/16] translate-all: move tb_invalidate_phys_pa
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 09/16] translate-all: move tb_invalidate_phys_page_range up in the file |
Date: |
Thu, 29 Mar 2018 11:08:29 +0100 |
User-agent: |
mu4e 1.1.0; emacs 26.0.91 |
Emilio G. Cota <address@hidden> writes:
> This greatly simplifies next commit's diff.
>
> Signed-off-by: Emilio G. Cota <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
> ---
> accel/tcg/translate-all.c | 77
> ++++++++++++++++++++++++-----------------------
> 1 file changed, 39 insertions(+), 38 deletions(-)
>
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index a98e182..4cb03f1 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -1371,44 +1371,6 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
>
> /*
> * Invalidate all TBs which intersect with the target physical address range
> - * [start;end[. NOTE: start and end may refer to *different* physical pages.
> - * 'is_cpu_write_access' should be true if called from a real cpu write
> - * access: the virtual CPU will exit the current TB if code is modified
> inside
> - * this TB.
> - *
> - * Called with mmap_lock held for user-mode emulation, grabs tb_lock
> - * Called with tb_lock held for system-mode emulation
> - */
> -static void tb_invalidate_phys_range_1(tb_page_addr_t start, tb_page_addr_t
> end)
> -{
> - tb_page_addr_t next;
> -
> - for (next = (start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
> - start < end;
> - start = next, next += TARGET_PAGE_SIZE) {
> - tb_page_addr_t bound = MIN(next, end);
> -
> - tb_invalidate_phys_page_range(start, bound, 0);
> - }
> -}
> -
> -#ifdef CONFIG_SOFTMMU
> -void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end)
> -{
> - assert_tb_locked();
> - tb_invalidate_phys_range_1(start, end);
> -}
> -#else
> -void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end)
> -{
> - assert_memory_lock();
> - tb_lock();
> - tb_invalidate_phys_range_1(start, end);
> - tb_unlock();
> -}
> -#endif
> -/*
> - * Invalidate all TBs which intersect with the target physical address range
> * [start;end[. NOTE: start and end must refer to the *same* physical page.
> * 'is_cpu_write_access' should be true if called from a real cpu write
> * access: the virtual CPU will exit the current TB if code is modified
> inside
> @@ -1505,6 +1467,45 @@ void tb_invalidate_phys_page_range(tb_page_addr_t
> start, tb_page_addr_t end,
> #endif
> }
>
> +/*
> + * Invalidate all TBs which intersect with the target physical address range
> + * [start;end[. NOTE: start and end may refer to *different* physical pages.
> + * 'is_cpu_write_access' should be true if called from a real cpu write
> + * access: the virtual CPU will exit the current TB if code is modified
> inside
> + * this TB.
> + *
> + * Called with mmap_lock held for user-mode emulation, grabs tb_lock
> + * Called with tb_lock held for system-mode emulation
> + */
> +static void tb_invalidate_phys_range_1(tb_page_addr_t start, tb_page_addr_t
> end)
> +{
> + tb_page_addr_t next;
> +
> + for (next = (start & TARGET_PAGE_MASK) + TARGET_PAGE_SIZE;
> + start < end;
> + start = next, next += TARGET_PAGE_SIZE) {
> + tb_page_addr_t bound = MIN(next, end);
> +
> + tb_invalidate_phys_page_range(start, bound, 0);
> + }
> +}
> +
> +#ifdef CONFIG_SOFTMMU
> +void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end)
> +{
> + assert_tb_locked();
> + tb_invalidate_phys_range_1(start, end);
> +}
> +#else
> +void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end)
> +{
> + assert_memory_lock();
> + tb_lock();
> + tb_invalidate_phys_range_1(start, end);
> + tb_unlock();
> +}
> +#endif
> +
> #ifdef CONFIG_SOFTMMU
> /* len must be <= 8 and start must be a multiple of len.
> * Called via softmmu_template.h when code areas are written to with
--
Alex Bennée
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 09/16] translate-all: move tb_invalidate_phys_page_range up in the file,
Alex Bennée <=