From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751337AbbHAM2c (ORCPT ); Sat, 1 Aug 2015 08:28:32 -0400 Received: from mail-wi0-f176.google.com ([209.85.212.176]:33265 "EHLO mail-wi0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750978AbbHAM2b (ORCPT ); Sat, 1 Aug 2015 08:28:31 -0400 From: Tal Shorer To: tal.shorer@gmail.com, rostedt@goodmis.org Cc: mingo@redhat.com, linux-kernel@vger.kernel.org Subject: [Patch v3 0/2] tracing: allow disabling compilation of specific trace systems Date: Sat, 1 Aug 2015 15:27:55 +0300 Message-Id: <1438432079-11704-1-git-send-email-tal.shorer@gmail.com> X-Mailer: git-send-email 2.4.6 In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, enabling CONFIG_TRACING on a system comes as all-or-nothing: either tracepoints for all subsystems are compiled (with CONFIG_TRACING) or none of them are (without it). This caused me an unacceptable performance penalty (obviously SOME penalty was expected, but not one so severe) which made me revert the changes in configuration. The first patch in this series modifies the files that actually define the tracepoint to look for a preprocessor macro NOTRACE and define nops (as if CONFIG_TRACING was not set) instead of them. The second patch provides an example of how I see this working, with the gpio subsystem as the example for absolutely no reason. Changelog: v2: - A comment in tracepoint.h explaining NOTRACE and its use - Avoid duplication of the test for both NOTRACE and a config option by defining TRACEPOINTS_ENABLED when both are present and using that to check whether or not to define tracepoints v3: - Fix Patch 1/2 to apply to changes in include/trace/define_trace.h - Add Linus Walleij's ack to Patch 2/2 - Move the Kconfig option from drivers/gpio/Kconfig to kernel/trace/Kconfig This was done to group up all TRACING_EVENTS_* options together in the future to ease disabling everything you don't need. Tal Shorer (2): tracing: allow disabling compilation of specific trace systems tracing: gpio: add Kconfig option for enabling/disabling trace events include/linux/tracepoint.h | 17 ++++++++++++++--- include/trace/define_trace.h | 2 +- include/trace/events/gpio.h | 4 ++++ kernel/trace/Kconfig | 7 +++++++ 4 files changed, 26 insertions(+), 4 deletions(-) -- 2.4.6