[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47F772E9.4000902@qumranet.com>
Date: Sat, 05 Apr 2008 15:39:05 +0300
From: Avi Kivity <avi@...ranet.com>
To: Pekka Enberg <penberg@...helsinki.fi>
CC: Pekka Paalanen <pq@....fi>, linux-kernel@...r.kernel.org,
Ingo Molnar <mingo@...e.hu>,
Christoph Hellwig <hch@...radead.org>,
Arjan van de Ven <arjan@...radead.org>,
Pavel Roskin <proski@....org>,
Steven Rostedt <rostedt@...dmis.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
vegard.nossum@...il.com
Subject: Re: mmiotrace bug: recursive probe hit
Pekka Enberg wrote:
> On Sat, Apr 5, 2008 at 10:36 AM, Avi Kivity <avi@...ranet.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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists