From: Jan Kiszka <jan.kiszka@web.de>
To: Jun Koi <junkoi2004@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] A bit optimization for tlb_set_page()
Date: Wed, 28 Apr 2010 08:53:54 +0200 [thread overview]
Message-ID: <4BD7DB82.2080809@web.de> (raw)
In-Reply-To: <k2ufdaac4d51004271952n98cf1456gdf714c27b0815746@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2273 bytes --]
Jun Koi wrote:
> On Wed, Apr 28, 2010 at 8:48 AM, Jun Koi <junkoi2004@gmail.com> wrote:
>> On Wed, Apr 28, 2010 at 3:36 AM, Jan Kiszka <jan.kiszka@web.de> wrote:
>>> Jun Koi wrote:
>>>> It is not necessary to continue searching for watchpoint when we
>>>> already found one and setup for handling watchpoint in a search loop
>>>> in tlb_set_page().
>>>> This patch breaks that search loop on then.
>>> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
>>>
>>>> Signed-off-by: Jun Koi <junkoi2004@gmail.com>
>>>>
>>>> diff --git a/exec.c b/exec.c
>>>> index 14d1fd7..6329775 100644
>>>> --- a/exec.c
>>>> +++ b/exec.c
>>>> @@ -2240,6 +2240,7 @@ void tlb_set_page(CPUState *env, target_ulong vaddr,
>>>> /* TODO: The memory case can be optimized by not trapping
>>>> reads of pages with a write breakpoint. */
>>> PS: Don't you also want to address this todo while you are at it? :)
>>>
>
> Do you have any comment on below patch?
>
> Thanks,
> J
>
>
> Dont handle write watchpoints on read-only memory access.
> This patch also breaks the searching loop for watchpoint once the
> setup facilities for handling watchpoint later is done.
>
> Signed-off-by: Jun Koi <junkoi2004@gmail.com>
>
> diff --git a/exec.c b/exec.c
> index 14d1fd7..3f2d9ed 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2236,10 +2236,12 @@ void tlb_set_page(CPUState *env, target_ulong vaddr,
> watchpoint trap routines. */
> QTAILQ_FOREACH(wp, &env->watchpoints, entry) {
> if (vaddr == (wp->vaddr & TARGET_PAGE_MASK)) {
> - iotlb = io_mem_watch + paddr;
> - /* TODO: The memory case can be optimized by not trapping
> - reads of pages with a write breakpoint. */
> - address |= TLB_MMIO;
> + /* Avoid trapping reads of pages with a write breakpoint. */
> + if (!((prot & PAGE_WRITE == 0) && (wp->flags &
> BP_MEM_WRITE != 0))) {
Patch is line-wrapped. Besides that
if ((wp->flags & BP_MEM_READ) || (prot & PAGE_WRITE))
is more readable IMHO.
> + iotlb = io_mem_watch + paddr;
> + address |= TLB_MMIO;
> + break;
> + }
> }
> }
Thanks,
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
next prev parent reply other threads:[~2010-04-28 6:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 3:25 [Qemu-devel] [PATCH] A bit optimization for tlb_set_page() Jun Koi
2010-04-27 18:36 ` [Qemu-devel] " Jan Kiszka
2010-04-27 23:48 ` Jun Koi
2010-04-28 2:52 ` Jun Koi
2010-04-28 6:53 ` Jan Kiszka [this message]
2010-04-28 7:13 ` Jun Koi
2010-04-30 6:44 ` Jan Kiszka
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=4BD7DB82.2080809@web.de \
--to=jan.kiszka@web.de \
--cc=junkoi2004@gmail.com \
--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.