lkml.org 
[lkml]   [2008]   [Apr]   [5]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 05 Apr 2008 15:39:05 +0300
FromAvi Kivity <>
SubjectRe: mmiotrace bug: recursive probe hit
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.



\
 
 \ /
  Last update: 2008-04-05 14:41    [from the cache]
©2003-2008