Received: by 10.192.165.148 with SMTP id m20csp681358imm; Wed, 2 May 2018 07:09:45 -0700 (PDT) X-Google-Smtp-Source: AB8JxZr490wecu84j80Zvh2dT/PjzY3eCCEih77iPO9PzrBsvO5cmi5f1wpQ9n2G4+CQm5jeLEz0 X-Received: by 2002:a17:902:bd03:: with SMTP id p3-v6mr20313521pls.236.1525270185480; Wed, 02 May 2018 07:09:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525270185; cv=none; d=google.com; s=arc-20160816; b=jVqhkE8pIyD3yPIQpfEjKZ2rwGQo1E0Y2ztkZwnhEYBqlfLlyhx58UWA6GJ2ICrUeY UXOTRc3ykL7B3Tqua2Oxo1gfhCgJptyagE6ig0/kNuQKmGLTake4SuXNsIQJxn/5JZsf WrUxyA6yo7dRQjEcWa86c23V4UTbjsqp95jVQTowzRIAT/2B0j2D0lPVnu0lox/ebzwQ FxOmhm8IFYWZpwXjNEACO46T3tGyFqQeTuU73qaDeLfjPQnOYaIJagn9m+YxSTHWleI1 mZAH2DJ+qWZ8GAnkG19GSwgRbdHcTJTFIEn/4x2Y8pRt7mXdhqDWrYLFkGpPflDfgo9d 5LCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :arc-authentication-results; bh=Y64qrcB3p8XdyoI1+85oQt2YlxL5GPNjRmo4bxyDybw=; b=lNTGsjKjC1UyihXVQZ96Zt/mbaVCSIlJ4cZI1bK9n9CUY2SI0fmmkA+YB+VQIXTO2P CLGaQH3hQETqvjMJzP2RjnJoOyYOW0l+isDSF/zWcoy7+2NXoz1D/tzpy+hV1C988RhJ 4KqCrXJI5sakP4JmJZO9pgPywoWmDBU/MnuDEnIAJe3NYYeW/R234wwCdt7xbkpSkIm4 svimwF63FY8Zfp0eB/Unvwg12fbTuJE0vV6VH9kzCgItMLFCBlg1GY1SdwYwA+fLeVqa 2XQ8Eqy7wRrnJWEU+W+VjtssXNs0J7ZBgWL4/1g6pYciyYWx75hVDP7O5IKyMX26XstV O7YA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f8-v6si2696196plr.471.2018.05.02.07.09.31; Wed, 02 May 2018 07:09:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751563AbeEBOH5 (ORCPT + 99 others); Wed, 2 May 2018 10:07:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:56742 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751020AbeEBOHw (ORCPT ); Wed, 2 May 2018 10:07:52 -0400 Received: from gandalf.local.home (cpe-66-24-56-78.stny.res.rr.com [66.24.56.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 47CC7218B4; Wed, 2 May 2018 14:07:50 +0000 (UTC) Date: Wed, 2 May 2018 10:07:48 -0400 From: Steven Rostedt To: changbin.du@intel.com Cc: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, akpm@linux-foundation.org, rdunlap@infradead.org, x86@kernel.org, lgirdwood@gmail.com, broonie@kernel.org, arnd@arndb.de, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org Subject: Re: [PATCH v2 3/5] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations Message-ID: <20180502100748.3fd41bae@gandalf.local.home> In-Reply-To: <1525268700-10631-4-git-send-email-changbin.du@intel.com> References: <1525268700-10631-1-git-send-email-changbin.du@intel.com> <1525268700-10631-4-git-send-email-changbin.du@intel.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2 May 2018 21:44:58 +0800 changbin.du@intel.com wrote: > From: Changbin Du > > This patch add a new kernel hacking option NO_AUTO_INLINE. Selecting > this option will prevent the compiler from optimizing the kernel by > auto-inlining functions not marked with the inline keyword. > > With this option, only functions explicitly marked with "inline" will > be inlined. This will allow the function tracer to trace more functions > because it only traces functions that the compiler has not inlined. > > Signed-off-by: Changbin Du > Cc: Steven Rostedt I'm fine with this patch if others are OK with it too. Acked-by: Steven Rostedt (VMware) -- Steve > > --- > v2: Some grammar updates from Steven. > --- > Makefile | 6 ++++++ > lib/Kconfig.debug | 18 ++++++++++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/Makefile b/Makefile > index 619a85a..eb694f6 100644 > --- a/Makefile > +++ b/Makefile > @@ -775,6 +775,12 @@ KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ > $(call cc-option,-fno-var-tracking) > endif > > +ifdef CONFIG_NO_AUTO_INLINE > +KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions) \ > + $(call cc-option, -fno-inline-small-functions) \ > + $(call cc-option, -fno-inline-functions-called-once) > +endif > + > ifdef CONFIG_FUNCTION_TRACER > ifndef CC_FLAGS_FTRACE > CC_FLAGS_FTRACE := -pg > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index c40c7b7..ab55801 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -198,6 +198,24 @@ config GDB_SCRIPTS > instance. See Documentation/dev-tools/gdb-kernel-debugging.rst > for further details. > > +config NO_AUTO_INLINE > + bool "Disable compiler auto-inline optimizations" > + default n > + help > + This will prevent the compiler from optimizing the kernel by > + auto-inlining functions not marked with the inline keyword. > + With this option, only functions explicitly marked with > + "inline" will be inlined. This will allow the function tracer > + to trace more functions because it only traces functions that > + the compiler has not inlined. > + > + Enabling this function can help debugging a kernel if using > + the function tracer. But it can also change how the kernel > + works, because inlining functions may change the timing, > + which could make it difficult while debugging race conditions. > + > + If unsure, select N. > + > config ENABLE_WARN_DEPRECATED > bool "Enable __deprecated logic" > default y