From: Paolo Bonzini <pbonzini@redhat.com>
To: "Emilio G. Cota" <cota@braap.org>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] translate-all: remove redundant page_find from tb_invalidate_phys_page
Date: Wed, 22 Apr 2015 15:25:02 +0200 [thread overview]
Message-ID: <5537A12E.4070301@redhat.com> (raw)
In-Reply-To: <1428529040-26452-1-git-send-email-cota@braap.org>
On 08/04/2015 23:37, Emilio G. Cota wrote:
> The callers have just looked up the page descriptor, so there's no
> point in searching again for it.
>
> Signed-off-by: Emilio G. Cota <cota@braap.org>
> ---
> translate-all.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/translate-all.c b/translate-all.c
> index 11763c6..4d05898 100644
> --- a/translate-all.c
> +++ b/translate-all.c
> @@ -1246,14 +1246,13 @@ void tb_invalidate_phys_page_fast(tb_page_addr_t start, int len)
> }
> }
>
> #if !defined(CONFIG_SOFTMMU)
> -static void tb_invalidate_phys_page(tb_page_addr_t addr,
> +static void tb_invalidate_phys_page(PageDesc *p, tb_page_addr_t addr,
> uintptr_t pc, void *puc,
> bool locked)
> {
> TranslationBlock *tb;
> - PageDesc *p;
> int n;
> #ifdef TARGET_HAS_PRECISE_SMC
> TranslationBlock *current_tb = NULL;
> CPUState *cpu = current_cpu;
> @@ -1264,12 +1263,8 @@ static void tb_invalidate_phys_page(tb_page_addr_t addr,
> int current_flags = 0;
> #endif
>
> addr &= TARGET_PAGE_MASK;
> - p = page_find(addr >> TARGET_PAGE_BITS);
> - if (!p) {
> - return;
> - }
> tb = p->first_tb;
> #ifdef TARGET_HAS_PRECISE_SMC
> if (tb && pc != 0) {
> current_tb = tb_find_pc(pc);
> @@ -1817,9 +1812,9 @@ void page_set_flags(target_ulong start, target_ulong end, int flags)
> the code inside. */
> if (!(p->flags & PAGE_WRITE) &&
> (flags & PAGE_WRITE) &&
> p->first_tb) {
> - tb_invalidate_phys_page(addr, 0, NULL, false);
> + tb_invalidate_phys_page(p, addr, 0, NULL, false);
> }
> p->flags = flags;
> }
> }
> @@ -1911,9 +1906,9 @@ int page_unprotect(target_ulong address, uintptr_t pc, void *puc)
> prot |= p->flags;
>
> /* and since the content will be modified, we must invalidate
> the corresponding translated code. */
> - tb_invalidate_phys_page(addr, pc, puc, true);
> + tb_invalidate_phys_page(p, addr, pc, puc, true);
> #ifdef DEBUG_TB_CHECK
> tb_invalidate_check(addr);
> #endif
> }
>
This one looks good.
Thanks,
Paolo
next prev parent reply other threads:[~2015-04-22 13:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-08 21:37 [Qemu-devel] [PATCH] translate-all: remove redundant page_find from tb_invalidate_phys_page Emilio G. Cota
2015-04-22 13:25 ` Paolo Bonzini [this message]
2015-05-05 23:51 ` Richard Henderson
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=5537A12E.4070301@redhat.com \
--to=pbonzini@redhat.com \
--cc=cota@braap.org \
--cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.