Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752540AbaLDFgv (ORCPT ); Thu, 4 Dec 2014 00:36:51 -0500 Received: from szxga02-in.huawei.com ([119.145.14.65]:28173 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750928AbaLDFgs (ORCPT ); Thu, 4 Dec 2014 00:36:48 -0500 From: Wang Nan To: , , CC: , , Subject: [PATCH v12 0/7] ARM: kprobes: OPTPROBES and other improvements. Date: Thu, 4 Dec 2014 13:32:52 +0800 Message-ID: <1417671172-52915-1-git-send-email-wangnan0@huawei.com> X-Mailer: git-send-email 1.8.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.107.197.247] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is v12 of optprobe related patch series. In this series, code in optprobe is improvemented; the kprobe related files names are changed to represent their functions. Patch 1/7 moves all ARM probe related code to arch/arm/probes according to suggestion from Russell King and Masami Hiramatsu. Patch 2/7 - 5/7 introduce checker framework and use it to detect stack consumption for each probed instructions. Patch 6/7 and 7/7 are for real optprobe work. Previous discussion can be found from: https://lkml.org/lkml/2014/11/22/18 https://lkml.org/lkml/2014/11/21/55 https://lkml.org/lkml/2014/11/18/26 https://lkml.org/lkml/2014/11/19/31 https://lkml.org/lkml/2014/11/18/41 https://lkml.org/lkml/2014/10/25/48 https://lkml.org/lkml/2014/10/22/254 https://lkml.org/lkml/2014/8/27/255 https://lkml.org/lkml/2014/8/12/12 https://lkml.org/lkml/2014/8/8/992 https://lkml.org/lkml/2014/8/8/5 https://lkml.org/lkml/2014/8/5/63 Masami Hiramatsu (1): kprobes: Pass the original kprobe for preparing optimized kprobe Wang Nan (6): ARM: probes: move all probe code to dedicate directory ARM: kprobes: introduces checker ARM: kprobes: collects stack consumption for store instructions ARM: kprobes: disallow probing stack consuming instructions ARM: kprobes: Add test cases for stack consuming instructions ARM: kprobes: enable OPTPROBES for ARM 32 arch/arm/Kconfig | 1 + arch/arm/Makefile | 1 + arch/arm/{kernel => include/asm}/insn.h | 0 arch/arm/include/asm/kprobes.h | 35 ++- arch/arm/{kernel => include/asm}/patch.h | 0 arch/arm/include/asm/probes.h | 13 + arch/arm/kernel/Makefile | 16 +- arch/arm/kernel/entry-armv.S | 3 +- arch/arm/kernel/ftrace.c | 3 +- arch/arm/kernel/jump_label.c | 5 +- arch/arm/kernel/patch.c | 3 +- arch/arm/probes/Makefile | 7 + .../{kernel/probes-arm.c => probes/decode-arm.c} | 12 +- .../{kernel/probes-arm.h => probes/decode-arm.h} | 7 +- .../probes-thumb.c => probes/decode-thumb.c} | 16 +- .../probes-thumb.h => probes/decode-thumb.h} | 10 +- arch/arm/{kernel/probes.c => probes/decode.c} | 74 ++++- arch/arm/{kernel/probes.h => probes/decode.h} | 13 +- arch/arm/probes/kprobes/Makefile | 12 + .../kprobes-arm.c => probes/kprobes/actions-arm.c} | 9 +- .../kprobes/actions-common.c} | 4 +- .../kprobes/actions-thumb.c} | 10 +- arch/arm/probes/kprobes/checkers-arm.c | 99 +++++++ arch/arm/probes/kprobes/checkers-common.c | 101 +++++++ arch/arm/probes/kprobes/checkers-thumb.c | 110 +++++++ arch/arm/probes/kprobes/checkers.h | 54 ++++ .../{kernel/kprobes.c => probes/kprobes/core.c} | 24 +- .../{kernel/kprobes.h => probes/kprobes/core.h} | 10 +- arch/arm/probes/kprobes/opt-arm.c | 322 +++++++++++++++++++++ .../kprobes/test-arm.c} | 31 +- .../kprobes-test.c => probes/kprobes/test-core.c} | 8 +- .../kprobes-test.h => probes/kprobes/test-core.h} | 2 +- .../kprobes/test-thumb.c} | 16 +- arch/arm/probes/uprobes/Makefile | 2 + .../uprobes-arm.c => probes/uprobes/actions-arm.c} | 6 +- .../{kernel/uprobes.c => probes/uprobes/core.c} | 8 +- .../{kernel/uprobes.h => probes/uprobes/core.h} | 0 arch/x86/kernel/kprobes/opt.c | 3 +- include/linux/kprobes.h | 3 +- kernel/kprobes.c | 4 +- 40 files changed, 966 insertions(+), 91 deletions(-) rename arch/arm/{kernel => include/asm}/insn.h (100%) rename arch/arm/{kernel => include/asm}/patch.h (100%) create mode 100644 arch/arm/probes/Makefile rename arch/arm/{kernel/probes-arm.c => probes/decode-arm.c} (99%) rename arch/arm/{kernel/probes-arm.h => probes/decode-arm.h} (93%) rename arch/arm/{kernel/probes-thumb.c => probes/decode-thumb.c} (98%) rename arch/arm/{kernel/probes-thumb.h => probes/decode-thumb.h} (90%) rename arch/arm/{kernel/probes.c => probes/decode.c} (85%) rename arch/arm/{kernel/probes.h => probes/decode.h} (97%) create mode 100644 arch/arm/probes/kprobes/Makefile rename arch/arm/{kernel/kprobes-arm.c => probes/kprobes/actions-arm.c} (98%) rename arch/arm/{kernel/kprobes-common.c => probes/kprobes/actions-common.c} (98%) rename arch/arm/{kernel/kprobes-thumb.c => probes/kprobes/actions-thumb.c} (98%) create mode 100644 arch/arm/probes/kprobes/checkers-arm.c create mode 100644 arch/arm/probes/kprobes/checkers-common.c create mode 100644 arch/arm/probes/kprobes/checkers-thumb.c create mode 100644 arch/arm/probes/kprobes/checkers.h rename arch/arm/{kernel/kprobes.c => probes/kprobes/core.c} (96%) rename arch/arm/{kernel/kprobes.h => probes/kprobes/core.h} (83%) create mode 100644 arch/arm/probes/kprobes/opt-arm.c rename arch/arm/{kernel/kprobes-test-arm.c => probes/kprobes/test-arm.c} (97%) rename arch/arm/{kernel/kprobes-test.c => probes/kprobes/test-core.c} (99%) rename arch/arm/{kernel/kprobes-test.h => probes/kprobes/test-core.h} (99%) rename arch/arm/{kernel/kprobes-test-thumb.c => probes/kprobes/test-thumb.c} (98%) create mode 100644 arch/arm/probes/uprobes/Makefile rename arch/arm/{kernel/uprobes-arm.c => probes/uprobes/actions-arm.c} (98%) rename arch/arm/{kernel/uprobes.c => probes/uprobes/core.c} (97%) rename arch/arm/{kernel/uprobes.h => probes/uprobes/core.h} (100%) -- 1.8.4 -- 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/