All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@qumranet.com>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Pekka Paalanen <pq@iki.fi>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Christoph Hellwig <hch@infradead.org>,
	Arjan van de Ven <arjan@infradead.org>,
	Pavel Roskin <proski@gnu.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	vegard.nossum@gmail.com
Subject: Re: mmiotrace bug: recursive probe hit
Date: Sat, 05 Apr 2008 15:39:05 +0300	[thread overview]
Message-ID: <47F772E9.4000902@qumranet.com> (raw)
In-Reply-To: <84144f020804050040r6fd8b9a8h6d344b4ea53cb3e5@mail.gmail.com>

Pekka Enberg wrote:
> On Sat, Apr 5, 2008 at 10:36 AM, Avi Kivity <avi@qumranet.com> wrote:
>   
>> It should not be too difficult to modify x86_emulate.c to do everything
>> through a function vector.  However there is a simpler (for you) solution:
>> run the driver-to-be-reverse-engineered in a kvm guest, and modify kvm
>> userspace to log accesses to mmio regions.  This requires the not-yet-merged
>> pci passthrough support.  You can reverse engineer Windows drivers with this
>> as well.
>>
>>  This won't work for kmemcheck smp though.
>>     
>
> For kmemcheck, I'd prefer the per-CPU page tables suggested by Ingo.
> I'm having hard time understanding why that's a "ugly hack" compared
> to using kvm for this...
>   

It's not an ugly hack, but will be very very difficult.  With mmu 
notifiers it's probably doable though:

- the linux page tables are never loaded into cr3, but rather kept as a 
reference
- page faults are by instantiating ptes into shadow page tables (which 
track the linux page tables)
- mmu notifiers are used to drop shadow ptes when the linux ptes change

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


  reply	other threads:[~2008-04-05 12:39 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-09 14:40 [RFC] mmiotrace full patch, preview 2 Pekka Paalanen
2008-03-09 14:46 ` Pekka Paalanen
2008-03-27 23:13 ` Vegard Nossum
2008-03-28 18:24   ` Pekka Paalanen
2008-03-28 20:25 ` mmiotrace bug: recursive probe hit Pekka Paalanen
2008-03-30 17:26   ` Pekka Paalanen
2008-04-03 21:07     ` Pekka Paalanen
2008-04-03 21:40       ` Vegard Nossum
2008-04-04 13:18         ` Pekka Paalanen
2008-04-05  7:36       ` Avi Kivity
2008-04-05  7:40         ` Pekka Enberg
2008-04-05 12:39           ` Avi Kivity [this message]
2008-04-05 15:58             ` Avi Kivity
2008-04-06 17:32         ` Pekka Paalanen

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=47F772E9.4000902@qumranet.com \
    --to=avi@qumranet.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=arjan@infradead.org \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=penberg@cs.helsinki.fi \
    --cc=pq@iki.fi \
    --cc=proski@gnu.org \
    --cc=rostedt@goodmis.org \
    --cc=vegard.nossum@gmail.com \
    /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.