lkml.org 
[lkml]   [2010]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC] [PATCH 1/7] User Space Breakpoint Assistance Layer (UBP)
On 01/16/2010 02:58 AM, Jim Keniston wrote:
>
> I hear (er, read) you. Emulation may turn out to be the answer for some
> architectures. But here are some things to keep in mind about the
> various approaches:
>
> 1. Single-stepping inline is easiest: you need to know very little about
> the instruction set you're probing. But it's inadequate for
> multithreaded apps.
> 2. Single-stepping out of line solves the multithreading issue (as do #3
> and #4), but requires more knowledge of the instruction set. (In
> particular, calls, jumps, and returns need special care; as do
> rip-relative instructions in x86_64.) I count 9 architectures that
> support kprobes. I think most of these do SSOL.
> 3. "Boosted" probes (where an appended jump instruction removes the need
> for the single-step trap on many instructions) require even more
> knowledge of the instruction set, and like SSOL, require XOL slots.
> Right now, as far as I know, x86 is the only architecture with boosted
> kprobes.
> 4. Emulation removes the need for the XOL area, but requires pretty much
> total knowledge of the instruction set. It's also a performance win for
> architectures that can't do #3. I see kvm implemented on 4
> architectures (ia64, powerpc, s390, x86). Coincidentally, those are the
> architectures to which uprobes (old uprobes, with ubp and xol bundled
> in) has already been ported (though Intel hasn't been maintaining their
> ia64 port). So it sort of comes down to how objectionable the XOL vma
> (or page) really is.
>

The kvm emulator emulates only a subset of the x86 instruction set
(basically mmio instructions and commonly-used page-table manipulation
instructions, as well as some privileged instructions). It would take a
lot of work to expand it to be completely generic; and even then it will
fail if userspace uses an instruction set extension the kernel is not
aware of.

To me, boosted probes with a fallback to single-stepping seems to be the
better option by far.

--
error compiling committee.c: too many arguments to function



\
 
 \ /
  Last update: 2010-01-17 15:39    [W:0.135 / U:0.636 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site