Re: [PATCHv11 2.6.36-rc2-tip 3/15] 3: uprobes: Slot allocationfor Execution out of line(XOL)

From: Peter Zijlstra
Date: Thu Sep 02 2010 - 04:23:55 EST


On Wed, 2010-08-25 at 19:11 +0530, Srikar Dronamraju wrote:
> Current slot allocation mechanism:
> 1. Allocate one dedicated slot per user breakpoint. Each slot is big
> enuf to accomodate the biggest instruction for that architecture. (16
> bytes for x86).
> 2. We currently allocate only one page for slots. Hence the number of
> slots is limited to active breakpoint hits on that process.
> 3. Bitmap to track used slots.

An alternative method would be to have 1 slot per cpu, and manage the
slot content using preemption notifiers. That gives you a fixed number
of slots and an unlimited number of probe points.

If the preemption happens to be a migration you need to rewrite the
userspace IP to point to the new slot -- if indeed the task was inside
one when it got preempted -- but that all should be doable.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/