Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758438Ab0LCJ5X (ORCPT ); Fri, 3 Dec 2010 04:57:23 -0500 Received: from mail9.hitachi.co.jp ([133.145.228.44]:41711 "EHLO mail9.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756615Ab0LCJ5V (ORCPT ); Fri, 3 Dec 2010 04:57:21 -0500 X-AuditID: b753bd60-a430fba00000392d-73-4cf8befe6ecd From: Masami Hiramatsu Subject: [PATCH -tip v5 0/8] Kprobes/x86: Batch optimization support To: Ingo Molnar Cc: Rusty Russell , Frederic Weisbecker , Ananth N Mavinakayanahalli , Jason Baron , Mathieu Desnoyers , linux-kernel@vger.kernel.org, 2nddept-manager@sdl.hitachi.co.jp Date: Fri, 03 Dec 2010 18:53:25 +0900 Message-ID: <20101203095325.2961.75137.stgit@ltc236.sdl.hitachi.co.jp> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAA== X-FMFTCR: RANGEC Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2607 Lines: 73 Hi, Here is batch (un)optimizing patch series version 5. Ingo, I've splitted the biggest patch into 6 patches. Since current kprobes jump optimization calls stop_machine() for each probe, it can make a lot of latency noises when (un)registering a lot of probes (~1000) at once. For example, on 4 core Xeon, 256 probes optimization takes 770us in average (max 3.3ms). This patch series introduces batch (un)optimization which modifies code with just one stop_machine(), and it improves optimization time to 90us in average (max 330us). - Introduce text_poke_smp_batch() which modifies multiple codes with one stop_machine(). - Limit how many probes can be (un)optimized at once. - Introduce delayed unoptimization for batch processing. text_poke_smp_batch() will also help Jump label to reduce its delay coming from text_poke_smp(). Changes in v5: - Split delayed unregistering patch into 3 cleanup patches and 3 feature-adding patches. - Add comments to explain code. - Fix missing of text_mutex locks. Changes in v4: - Update to the latest tip tree. Changes in v3: - Set kp.addr = NULL according to Ananth's comment. Changes in v2: - Add kprobes selftest bugfix patch. - Add some comments about locks according to Mathieu's comment. - Allocate working buffers when initializing kprobes, instead of using static arraies. - Merge max optimization limit patch into batch optimizing patch. Thank you, --- Masami Hiramatsu (8): kprobes: Use text_poke_smp_batch for unoptimizing kprobes: Use text_poke_smp_batch for optimizing x86: Introduce text_poke_smp_batch() for batch-code modifying kprobes: Reuse unused kprobe kprobes: Support delayed unoptimizing [CLEANUP]kprobes: Separate kprobe optimizing code from optimizer [CLEANUP]kprobes: Cleanup disabling and unregistering path [CLEANUP] kprobes: Rename old_p to more appropriate name arch/x86/include/asm/alternative.h | 7 arch/x86/kernel/alternative.c | 49 +++ arch/x86/kernel/kprobes.c | 113 +++++++ include/linux/kprobes.h | 4 kernel/kprobes.c | 565 ++++++++++++++++++++++++------------ 5 files changed, 539 insertions(+), 199 deletions(-) -- Masami HIRAMATSU 2nd Dept. Linux Technology Center Hitachi, Ltd., Systems Development Laboratory E-mail: masami.hiramatsu.pt@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/