All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"Zeus Gómez Marmolejo" <zeus@aluzina.org>
Subject: Re: [Qemu-devel] Physical address debugging
Date: Fri, 26 Aug 2011 19:55:53 +0200	[thread overview]
Message-ID: <4E57DE29.9040203@siemens.com> (raw)
In-Reply-To: <CAAu8pHvhv_zX-LGGdPbLCQocwifSPKpZn6kkGWfJrO9i09Lm9A@mail.gmail.com>

On 2011-08-26 19:34, Blue Swirl wrote:
> 2011/8/26 Jan Kiszka <jan.kiszka@siemens.com>:
>> On 2011-08-26 16:21, Zeus Gómez Marmolejo wrote:
>>> Hi all,
>>>
>>> I just want to do a very simple task. I'm using QEMU for debugging a new OS
>>> and I see that there is a memory region that is being updated by an unknown
>>> task. I don't know if it's another process or the kernel itself.
>>>
>>> So I would like to put a physical memory watchpoint. I don't know how to do
>>> that. As the GDB stub is operating using virtual addressing, I cannot place
>>> a watchpoint on an address as it's not stopping.
>>>
>>> To make it short, I want the equivalent of the Bochs command "watch write
>>> addr", which inserts a write watch point at physical address 'addr'. I
>>> haven't seen this is possible on the QEMU monitor...
>>
>> Indeed, it isn't. It's impossible with KVM (due to lacking hardware
>> support) but would be feasible with TCG if you extend (or ad-hoc hack)
>> QEMU code accordingly.
> 
> Why impossible? The existing watchpoints replace original physical
> memory with io_mem_watch MMIO, virtual addresses are translated to
> physical in exec.c:tlb_set_page(). The only missing piece is to allow
> setting watchpoints with physical addresses directly.
> 
> Since KVM can handle MMIO, I think it should also be able to handle
> watchpoints.

KVM uses x86 debug registers for watchpoints. And the SDM states:

16.2.1 Debug Address Registers (DR0-DR3)

Each of the debug-address registers (DR0 through DR3) holds the 32-bit
linear address of a breakpoint (see Figure 16-1). Breakpoint comparisons
are made before physical address translation occurs. [...]

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

  reply	other threads:[~2011-08-26 17:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-26 14:21 [Qemu-devel] Physical address debugging Zeus Gómez Marmolejo
2011-08-26 14:41 ` Jan Kiszka
2011-08-26 17:34   ` Blue Swirl
2011-08-26 17:55     ` Jan Kiszka [this message]
2011-08-26 18:02       ` Blue Swirl
2011-08-26 18:12         ` Jan Kiszka
2011-08-28 21:42           ` Zeus Gómez Marmolejo
2011-08-29 12:45             ` Lluís
2011-08-29 12:49     ` Avi Kivity
2011-08-30 18:31       ` Blue Swirl
2011-08-31  5:20         ` Avi Kivity

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=4E57DE29.9040203@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=blauwirbel@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=zeus@aluzina.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.