From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753358Ab0AKMZ2 (ORCPT ); Mon, 11 Jan 2010 07:25:28 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753309Ab0AKMZ2 (ORCPT ); Mon, 11 Jan 2010 07:25:28 -0500 Received: from e23smtp08.au.ibm.com ([202.81.31.141]:40933 "EHLO e23smtp08.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753286Ab0AKMZ1 (ORCPT ); Mon, 11 Jan 2010 07:25:27 -0500 From: Srikar Dronamraju To: Ingo Molnar Cc: Srikar Dronamraju , Arnaldo Carvalho de Melo , Peter Zijlstra , Ananth N Mavinakayanahalli , utrace-devel , Mark Wielaard , Frederic Weisbecker , Masami Hiramatsu , Maneesh Soni , Jim Keniston , LKML Date: Mon, 11 Jan 2010 17:55:21 +0530 Message-Id: <20100111122521.22050.3654.sendpatchset@srikar.in.ibm.com> Subject: [RFC] [PATCH 0/7] UBP, XOL and Uprobes Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This patchset implements Uprobes which enables you to dynamically break into any routine in a user space application and collect information non-disruptively. Uprobes is based on utrace and uses x86 instruction decoder. When a uprobe is registered, Uprobes makes a copy of the probed instruction, stops the probed application, replaces the first byte(s) of the probed instruction with a breakpoint instruction and allows the probed application to continue. (Uprobes uses the same copy-on-write mechanism so that the breakpoint affects only that process.) When a CPU hits the breakpoint instruction, Uprobes intercepts the SIGTRAP and finds the associated uprobe. It then executes the associated handler. Uprobes single-steps its copy of the probed instruction and resumes execution of the probed process at the instruction following the probepoint. Instruction copies to be single-stepped are stored in a per-process "single-step out of line (XOL) area," Uprobes can be used to take advantage of static markers available in user space applications. Advantages of uprobes over conventional debugging include: 1. Non-disruptive. 2. Uses Execution out of line(XOL), 3. Much better handling of multithreaded programs because of XOL. 4. No context switch between tracer, tracee. Here is the list of TODO Items. - Provide a perf interface to uprobes. - Return probes. - Support for Other Architectures. - Jump optimization. This patchset provides Subject: [RFC] [PATCH 0/7] UBP, XOL and Uprobes Subject: [RFC] [PATCH 1/7] User Space Breakpoint Assistance Layer (UBP) Subject: [RFC] [PATCH 2/7] x86 support for UBP Subject: [RFC] [PATCH 3/7] Execution out of line (XOL) Subject: [RFC] [PATCH 4/7] Uprobes Implementation Subject: [RFC] [PATCH 5/7] X86 Support for Uprobes Subject: [RFC] [PATCH 6/7] Uprobes Documentation Subject: [RFC] [PATCH 7/7] Ftrace plugin for Uprobes This patchset is based on git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace.git If and when utrace gets accepted into tip tree or Mainline, I will rebase this patchset. Please do provide your valuable comments. -- Thanks and Regards Srikar