From patchwork Sun Oct 28 13:09:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 10658625 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 05F95109C for ; Sun, 28 Oct 2018 13:12:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E608F29CF0 for ; Sun, 28 Oct 2018 13:12:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D6CB629D36; Sun, 28 Oct 2018 13:12:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7800229CF0 for ; Sun, 28 Oct 2018 13:12:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=ehztihOpB2g0RMK8FkzsL+rJm9Bg+MQD526PXwJeVKU=; b=Gx8HKY8uYY+LODFNZ8LlU6Speg XAkamk7aut/hfdv/9fHnlqtgxHTVEcG1yS65BKupGi5sJzz3XeWoXTcimcqhshTzNOA0o26j8sGZu bsFrKh10Ab7WentctmngipWpYFfoCTSrsSDfPXi7DC1WyvDx4HTymralydM39RoauUGIVJHF89Kxf AYc1bYVNh2WPUgRGWZjnPv+TO4CpA2VxHQ60H4+gbjxtZnk5SH3bL93rKo69+DNVKz/QkUj4H/Zhh Rnb1lV1vGfkPUc/l6CKgidB1Fqq/ymfpknsOAwPnQL9cmjOS20ZVaN+Zj2CeUUmOosXdWwDzCmh0h 5TvllSpA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkrN-00011P-OQ; Sun, 28 Oct 2018 13:12:05 +0000 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkpz-0000Op-CC for linux-arm-kernel@lists.infradead.org; Sun, 28 Oct 2018 13:10:41 +0000 Received: by mail-pl1-x642.google.com with SMTP id b5-v6so1909158pla.6 for ; Sun, 28 Oct 2018 06:10:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Hk0Di9Qb+zs88OQ4I5uk9OIJ44YMozS+eSEHj+aJ9Z0=; b=DULrqDVbYreYAt1oKKC5KgMOg6D5NXd/8T9BEROdYj6TkIU2HY30/P/DGiMiC14ufk o3AFsrfDOdGoxj/rkJm14rSK6bmINopwt3Hzq/Kg1duxBokx79pObjNY8Y8rME7o9YZ0 Vr5jeGR7C/fPLJipN6wWiqX17b0VIxAftL54IC2Fu7QrPgeplkHgwzrdXqeCRTTQxYfA nmNDD/O4bKqqV7GY4sPM69rZMSwnjT5d5+3+gIniBJD1egbzijp8Wt2s8VxM0dqaoOxr oPDKfIBPItQd9HyqT/bFwP168d263K6nG7SYQSkYBkK1krUhpb91xE6HdlAyTvTfe07M czZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Hk0Di9Qb+zs88OQ4I5uk9OIJ44YMozS+eSEHj+aJ9Z0=; b=Kwq1jomWIIfRIZJWQKgE6b+YaMcwDU4eiVPPMWPcfz1oUK3AwN6OkkGZloww8D3/kN 9LPI/ksXkKq7SptK+4o/+V0TkdDOF8MwSy1JS+BLIRcJ/qqRkYEeJN/Ky5xRxz/gczDh vdhtqfQUu21w3hrdPaPOg3I0fpQuwLr4RG217ub589ko+jB3e13WJ+v57Vv+EFhDDJnz wRu3dEk171y6q+QHqhE/VhyMe2OeDVoBYW4NeMZdYKiY/nsSHs/hYIvVtzrt+cwgBuoq 4b9F068qT/DTRtRHwhxwcrxhveXBWI5tM1PBCZ3AYUzc1yqodTNYd20qHLppMJPj0Frp R6Wg== X-Gm-Message-State: AGRZ1gLyE003ot3XQAmYxc89x5GX9bDTjp/8pjn7wSdWZxvzN3+mcbX+ nLuA11KpALcNcblVzMtLIew= X-Google-Smtp-Source: AJdET5dlcd9UXIUBLCS603gJym1Rp6+h0wVdPcUWTt9ebbUn43Wir4lzeAXgOyGgOH1LsevXat6yJg== X-Received: by 2002:a17:902:d806:: with SMTP id a6-v6mr10148394plz.301.1540732228780; Sun, 28 Oct 2018 06:10:28 -0700 (PDT) Received: from vultr.guest ([2001:19f0:6001:4ff6:5400:1ff:feb7:a195]) by smtp.gmail.com with ESMTPSA id e3-v6sm24520585pgc.71.2018.10.28.06.10.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 28 Oct 2018 06:10:28 -0700 (PDT) From: Changbin Du To: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, linux@armlinux.org.uk, akpm@linux-foundation.org, gregkh@linuxfoundation.org Subject: [PATCH v3 1/4] x86/mm: declare check_la57_support() as inline Date: Sun, 28 Oct 2018 13:09:42 +0000 Message-Id: <20181028130945.23581-2-changbin.du@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181028130945.23581-1-changbin.du@gmail.com> References: <20181028130945.23581-1-changbin.du@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181028_061039_432717_3B59DC3B X-CRM114-Status: GOOD ( 12.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kbuild@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, linux-sparse@vger.kernel.org, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, Changbin Du MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The level4_kernel_pgt is only defined when X86_5LEVEL is enabled. So declare check_la57_support() as inline to make sure the code referring to level4_kernel_pgt is optimized out. This is a preparation for CONFIG_CC_OPTIMIZE_FOR_DEBUGGING. Signed-off-by: Changbin Du Cc: Steven Rostedt (VMware) Cc: Masahiro Yamada Reviewed-by: Steven Rostedt (VMware) --- arch/x86/kernel/head64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index 5dc377dc9d7b..5ae682f2aa83 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -98,7 +98,7 @@ static bool __head check_la57_support(unsigned long physaddr) return true; } #else -static bool __head check_la57_support(unsigned long physaddr) +static inline bool __head check_la57_support(unsigned long physaddr) { return false; } From patchwork Sun Oct 28 13:09:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 10658629 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9D429109C for ; Sun, 28 Oct 2018 13:13:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8A314285D1 for ; Sun, 28 Oct 2018 13:13:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7C2A5285F0; Sun, 28 Oct 2018 13:13:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 301D0285D1 for ; Sun, 28 Oct 2018 13:13:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=nzdsO8CnzdYJF+pUEZQAPowgX9smZqG58F5U0sSkVSg=; b=JGY7PRP+V5ekivuP7zzo5/3+U6 mMXG+qDdyNnoR3RldW6IWviaC9ErI87VOzG1K3u1U7zd3CzM3C8Fhqwh5tDqhmzoqiPAl7CioivnF 3WT90skH8Q2+9mw/aHNyYewu0asHue4Jrre8/K/jLvOCMv0ficnuzjGVEsjJRAp11X3j9dAlHH3rK aD+SeBxlJL0zkREM6ohYNhskxZBe+JHyI0Zd9OWFOkL5nQK8VQuSZuCqJ978LwShO8RZgHmvxVtYH QLCHgsHNbDzJG6mYX4PXY9aYbVxm8VgVSupzAZtdXDJSIGdiYadD7gclcbWqoS7iclTjAMeY483Ca P9Y7ZhOQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGksj-0001eZ-Ml; Sun, 28 Oct 2018 13:13:29 +0000 Received: from mail-pg1-x541.google.com ([2607:f8b0:4864:20::541]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkq1-0000Ot-GU for linux-arm-kernel@lists.infradead.org; Sun, 28 Oct 2018 13:10:49 +0000 Received: by mail-pg1-x541.google.com with SMTP id k1-v6so1174814pgq.1 for ; Sun, 28 Oct 2018 06:10:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Z1p1Mx8pgPnws2nPs4SRISeGm4KePLjEigb8toAYrzc=; b=p70glEk2yIucDRr40/8Hr1khRVVKJNRIDH5GYhj9Q0/g7Z+dOkKBVaZDZ98t6IJVCJ PbD7er//t9LHVRYB+C+YEoVZxlBecTg0kl1EW6Twv3wswZJpD8oSpcg+jPxjUdhyJpYh 8NkSxTYPKy8bEh2LBgb6Vcc6HIwzHsPvuBmx6Wwld/2KZ+53cQEzhCRQXA77xVT5pI3P QsbNUdTF83/EGw2ZGg8xiNLqirLreNo6qGh9OX/M6aGnbuyXebaamKkU/aovLXC1AhLF pHUiSumZHFKjHAwx+8wzEmX8XkqwufG1Mj+Qt5FiDDQPLHZ1aSpF/K13FXu5JIkdMUjb mWZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Z1p1Mx8pgPnws2nPs4SRISeGm4KePLjEigb8toAYrzc=; b=UUVSjKqP1QznhPBn03uyd8dcQ7R5O+FJvt4f9qgLRE0/Jvih/AXevqLBjmgWzsdaaS 9vM6opMJBID60Rv9u9GdrQEYRFph+gg2JnnIeBMsRYpFw7iJ2u4bLyH48Ft6RMCkkQcC qtJnxqDYf+IOnwSSe+waeD/W0hdH++kID+7mp1XLiE022uy+fzxBtIGf+b89UVZFqQap PMl9RLyOf+MV40hNIAPCNboTxy37Q1eww/NvvbqNF2u2DCrdBZURN+YI03Q1fcV/+3Fb n5jldb64rMLY3lLl853PuSWa/BJL/V8wgHrDp6QxJTxWWt1B/L4vGWqBq7o/0V7LYIYy JOLA== X-Gm-Message-State: AGRZ1gKIHSxsVMIyzYBIjtWVNzTpMRr9FdfUATvR+SvDaNapXlG79+QE VyutWZScQmbJe+CuGzTSUts= X-Google-Smtp-Source: AJdET5cLbwkXzA9J08vC2kuEb0XRP43sQtDazJtqPYG0V2E1TwCUeCXE6abOHRLPKtZT9JI1faLr9g== X-Received: by 2002:a65:56cc:: with SMTP id w12-v6mr9868447pgs.224.1540732230956; Sun, 28 Oct 2018 06:10:30 -0700 (PDT) Received: from vultr.guest ([2001:19f0:6001:4ff6:5400:1ff:feb7:a195]) by smtp.gmail.com with ESMTPSA id e3-v6sm24520585pgc.71.2018.10.28.06.10.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 28 Oct 2018 06:10:30 -0700 (PDT) From: Changbin Du To: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, linux@armlinux.org.uk, akpm@linux-foundation.org, gregkh@linuxfoundation.org Subject: [PATCH v3 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations Date: Sun, 28 Oct 2018 13:09:43 +0000 Message-Id: <20181028130945.23581-3-changbin.du@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181028130945.23581-1-changbin.du@gmail.com> References: <20181028130945.23581-1-changbin.du@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181028_061041_545911_8F2957C9 X-CRM114-Status: GOOD ( 12.02 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kbuild@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, linux-sparse@vger.kernel.org, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, Changbin Du MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP 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 Acked-by: Steven Rostedt (VMware) --- Makefile | 6 ++++++ lib/Kconfig.debug | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Makefile b/Makefile index 7d4ba5196010..04beb822ddfc 100644 --- a/Makefile +++ b/Makefile @@ -749,6 +749,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 ifdef CONFIG_FTRACE_MCOUNT_RECORD # gcc 5 supports generating the mcount tables directly diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 04adfc3b185e..d50711b41dad 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -211,6 +211,23 @@ 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" + 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_MUST_CHECK bool "Enable __must_check logic" default y From patchwork Sun Oct 28 13:09:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 10658627 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 650F1109C for ; Sun, 28 Oct 2018 13:12:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5061129D36 for ; Sun, 28 Oct 2018 13:12:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 410D129D73; Sun, 28 Oct 2018 13:12:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D1B5629D36 for ; Sun, 28 Oct 2018 13:12:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=/KEoARgkPpJQvd8OxxAG9Ag0UkzwfFTIhOtaMJ8BKMU=; b=nRrYfRd9xBeyKudM0f8LX6t/jH o6rQC8DkFiNzg4C4oPT4EI40L36lpDIXjDjfsQZAI+bTyYoMorBfIqYLrtHfJ3B4Ktp0fkjXf1Ebi gGyXuLmLAlV/y59oBC3W0sOrFjc09l6bGW/+HH4CxhoCnBr9f76Ni7TEInZJmwVcwX0B/fYqHFArg m8ryXak+c1GZFblAKLnOmQ0pUt3daMT7MVXyJJRxA9oIqeFXRHVAxjkuP1DQDS/kaseF7+eZ1IVgO stUdMKqR14meeLojgJIIcHc9llr4pFRbPzvHXJqEGUWeLbCEgKUsIzawMp+8mgbiH9y+IJusU87K6 g3Nz/VPA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkry-0001MG-Sr; Sun, 28 Oct 2018 13:12:42 +0000 Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkpz-0000Oy-CG for linux-arm-kernel@lists.infradead.org; Sun, 28 Oct 2018 13:10:41 +0000 Received: by mail-pl1-x642.google.com with SMTP id b9-v6so2521665pls.7 for ; Sun, 28 Oct 2018 06:10:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Kpqpa9BZU+OQvUZEt5EjgcpLDGJ7LYzg33W/0iJP1IU=; b=GzZBW3iQRzy1++L2+rMly7s+XGO5sCf2vm2L80QHemKPNXtqraC4vZZ78TMuSVzlmV EK9B4sQzrNxqG7VfdNIWBFWkVWe/YiE0MrGGSuMAZX2LdWFOCfQVy06ZLXD+LQG2w81n BqDeA1KNTRBenQCn1rsGJm3nQHDvPzcY4osxub8JEa5qgqe3MkswskHz1DL0vEAAL1Fa rEOp850CBTZClZ15ATK3l0PFz/AnpNlygwcDe//XCybQ9AgP3OX1ZnPhYya17m8JCTEF CM+JPtT32FzyNpTawHK/WQ+nBQFYWyd+8hQT0xDOPix/EJ0kl+9x4qGk0EYSd1zjq09d oWXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Kpqpa9BZU+OQvUZEt5EjgcpLDGJ7LYzg33W/0iJP1IU=; b=NJiMvGjUIMNyMZmHAF9c0q8KkSlRu23QRkscGlkpiBtihPD2E/F7cErxFADC9Pdn+r Tp1n6KdTK+x62HfspLrNuS/QjqEyFmjG1QIxqCRQu19na2PFjElXIJc1V40XCSFLzMEe eC6vQIHuVprMfkKk13cFskRWMCdLwUM1iqUhrQl4v2iGb18qJvxCk7ck9fHtgzpb4/Ic +FztSNPunnZdmRl9YN6wrrMvFGeurc6vSdKAFrZxj+0zEy/01QtqnYuZaM42z1uMjHc8 Yp8XI+bqFWWZN8OZNPVQnp7dHPNEnL1XsmZmG+He8irEtlrGJQwtJzjtLY3yj3myOL3c b0BA== X-Gm-Message-State: AGRZ1gJupe2qDWmER7RhzWgIV+5ZTKm5RN511p1VtNa7SUSz3wUUGhEe 5ZCRIdor6swaG+xkotBkFAA= X-Google-Smtp-Source: AJdET5cpZ64yhtGBXP9CJqPAYJ3I+V+dhlwUfEuT7gKrAtWFQu4MGKpcSsX18AOmD+ciiU5xq6IHLQ== X-Received: by 2002:a17:902:9a07:: with SMTP id v7-v6mr10240898plp.14.1540732233035; Sun, 28 Oct 2018 06:10:33 -0700 (PDT) Received: from vultr.guest ([2001:19f0:6001:4ff6:5400:1ff:feb7:a195]) by smtp.gmail.com with ESMTPSA id e3-v6sm24520585pgc.71.2018.10.28.06.10.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 28 Oct 2018 06:10:32 -0700 (PDT) From: Changbin Du To: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, linux@armlinux.org.uk, akpm@linux-foundation.org, gregkh@linuxfoundation.org Subject: [PATCH v3 3/4] ARM: mm: fix build error in fix_to_virt with CONFIG_CC_OPTIMIZE_FOR_DEBUGGING Date: Sun, 28 Oct 2018 13:09:44 +0000 Message-Id: <20181028130945.23581-4-changbin.du@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181028130945.23581-1-changbin.du@gmail.com> References: <20181028130945.23581-1-changbin.du@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181028_061039_437343_0D6372BB X-CRM114-Status: GOOD ( 13.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kbuild@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, linux-sparse@vger.kernel.org, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, Changbin Du MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP With '-Og' optimization level, GCC would not optimize a count for a loop as a constant value. But BUILD_BUG_ON() only accept compile-time constant values. Let's use __fix_to_virt() to avoid the error. arch/arm/mm/mmu.o: In function `fix_to_virt': /home/changbin/work/linux/./include/asm-generic/fixmap.h:31: undefined reference to `__compiletime_assert_31' Makefile:1051: recipe for target 'vmlinux' failed make: *** [vmlinux] Error 1 Signed-off-by: Changbin Du Acked-by: Steven Rostedt (VMware) --- arch/arm/mm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index e46a6a446cdd..c08d74e76714 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -1599,7 +1599,7 @@ static void __init early_fixmap_shutdown(void) pte_t *pte; struct map_desc map; - map.virtual = fix_to_virt(i); + map.virtual = __fix_to_virt(i); pte = pte_offset_early_fixmap(pmd_off_k(map.virtual), map.virtual); /* Only i/o device mappings are supported ATM */ From patchwork Sun Oct 28 13:09:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changbin Du X-Patchwork-Id: 10658631 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3753C109C for ; Sun, 28 Oct 2018 13:14:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 242DF2927D for ; Sun, 28 Oct 2018 13:14:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1819229543; Sun, 28 Oct 2018 13:14:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8122E2927D for ; Sun, 28 Oct 2018 13:14:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=1jW3GscUHAqbfMxBGS3Pa8TIUEshWtY1UKs+P5iimX0=; b=k/84r00flLgUAvyC5kwmBRWgST i2EQoOG4ioZ9/PhaArulXtgoELeTbst1HqcZWCdg44x5kHLcDCnvFrBStcXKyt8gqU/ittoYH8d4x Y/1X5QyQYRaMpVdSmDXNS13hee4jUfdhjBwepK6hqe8x7HEyVMgS41wOoychn0SdDcWWRLe+vU8yS HiXVOIha28QiD4VAtoQGz5UaJnINlOANuEKjkyt3OwC6+A6I5T8EkJsJ7gk3HKi0Ni0Fe8ephrexp mcr9hMfa4+lqyHFJWczybzbi7xBTnroa/HSPFU8KEyX5obkvCQkvjBeUpMJyWP3pfJ14nBhGshYT5 BcOnIOHA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGktJ-0001ud-7L; Sun, 28 Oct 2018 13:14:05 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gGkq5-0000PB-W5 for linux-arm-kernel@lists.infradead.org; Sun, 28 Oct 2018 13:11:05 +0000 Received: by mail-pg1-x542.google.com with SMTP id a5-v6so2574166pgt.13 for ; Sun, 28 Oct 2018 06:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=+j4XlDFq4raU553LDUaUCt5+jy/FBKWbgmTWsZs9/w4=; b=ZcZBVTU89pzNt3vBNg6lVDMrt64t8JhHC/0QMzrER553066hxt39E1B+2UPNQ1CWhP 8v2Srqy/Yq86tkFT0eLx4mC/cdct4Rnrr7omJ/gsVPv8WxtIjs9QCE7NbNWLzElqVLzV Jweu+ZO6fkhSsXFPGne13D87/uAow5Sndz8G5BTRLmso+V9aUlySPUt4/YGPhS/6qZ9h U095NfJJa34DSdKEjJZy3VsaGm6860estcI6578dO9vw7pPuYG5AttvngxaYbyHfUeJv 7+lb5IBXlUrdp6aoq1UOGGiTY45kTlxBk1mkyemOkyJqD8eLC0Yu8/sCeZH3rf3EtU7+ omvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=+j4XlDFq4raU553LDUaUCt5+jy/FBKWbgmTWsZs9/w4=; b=lYugANhSIBU/jQfk53tgvV5Cq2T2Po5NGBII+dihS+MlGDUPaJJtBYqlJ6enAqh6KH 7NgJmHoELwY7XxNY1Jf6DKk3PsJRxt0HzbMO9G5k/ymWxzUWBIbN8okdgpS3e3Uph1CV sA5wwNTHe1wRCPYg+A91x4ZDMQzrnILlXZU7Aoj6U3yLozToNmB6MUiCFy85oJZjxqG2 BW2CgWSa7gm1N9n2DPogUFZOAWMspTL6cpNurfAFx8DekIXX94+T0y0AVHgHtn8w0+u4 Ux3PKVwE6y73bqF7eHa4qFcbfbI3fiYXjYsx2V11jATzLDYGfScgdWLPzzyFPukQ5Dj2 1VJg== X-Gm-Message-State: AGRZ1gIAWnJ7nKAqnPW5sAj80zYi7jbROd+H2hYnQTv307SnX1tGFKW2 w2XuUWfRWyA0N0gQRvS+y4M= X-Google-Smtp-Source: AJdET5fvHJQDAmPn9R6YowSIM8HbjBhm2D9STevLO7cEgHL7LQu7zx+lqCgO6PEB40iV3xLLy4Kjsw== X-Received: by 2002:a62:b24e:: with SMTP id x75-v6mr6183101pfe.148.1540732235340; Sun, 28 Oct 2018 06:10:35 -0700 (PDT) Received: from vultr.guest ([2001:19f0:6001:4ff6:5400:1ff:feb7:a195]) by smtp.gmail.com with ESMTPSA id e3-v6sm24520585pgc.71.2018.10.28.06.10.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 28 Oct 2018 06:10:34 -0700 (PDT) From: Changbin Du To: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, linux@armlinux.org.uk, akpm@linux-foundation.org, gregkh@linuxfoundation.org Subject: [PATCH v3 4/4] kernel hacking: new config CC_OPTIMIZE_FOR_DEBUGGING to apply GCC -Og optimization Date: Sun, 28 Oct 2018 13:09:45 +0000 Message-Id: <20181028130945.23581-5-changbin.du@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181028130945.23581-1-changbin.du@gmail.com> References: <20181028130945.23581-1-changbin.du@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181028_061046_067529_79CB8153 X-CRM114-Status: GOOD ( 17.47 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kbuild@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, linux-sparse@vger.kernel.org, robin.murphy@arm.com, linux-arm-kernel@lists.infradead.org, Changbin Du MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP This will apply GCC '-Og' optimization level which is supported since GCC 4.8. This optimization level offers a reasonable level of optimization while maintaining fast compilation and a good debugging experience. It is similar to '-O1' while perferring to keep debug ability over runtime speed. If enabling this option breaks your kernel, you should either disable this or find a fix (mostly in the arch code). Currently this option has only been tested on x86_64 and arm platform. This option can satisfy people who was searching for a method to disable compiler optimizations so to achieve better kernel debugging experience with kgdb or qemu. The main problem of '-Og' is we must not use __attribute__((error(msg))). The compiler will report error though the call to error function still can be optimize out. So we must fallback to array tricky. Comparison of vmlinux size: a bit smaller. w/o CONFIG_CC_OPTIMIZE_FOR_DEBUGGING $ size vmlinux text data bss dec hex filename 22665554 9709674 2920908 35296136 21a9388 vmlinux w/ CONFIG_CC_OPTIMIZE_FOR_DEBUGGING $ size vmlinux text data bss dec hex filename 21499032 10102758 2920908 34522698 20ec64a vmlinux Comparison of system performance: a bit drop (~6%). This benchmark of kernel compilation is suggested by Ingo Molnar. https://lkml.org/lkml/2018/5/2/74 Preparation: Set cpufreq to 'performance'. for ((cpu=0; cpu<120; cpu++)); do G=/sys/devices/system/cpu/cpu$cpu/cpufreq/scaling_governor [ -f $G ] && echo performance > $G done w/o CONFIG_CC_OPTIMIZE_FOR_DEBUGGING $ perf stat --repeat 5 --null --pre '\ cp -a kernel ../kernel.copy.$(date +%s); \ rm -rf *; \ git checkout .; \ echo 1 > /proc/sys/vm/drop_caches; \ find ../kernel* -type f | xargs cat >/dev/null; \ make -j kernel >/dev/null; \ make clean >/dev/null 2>&1; \ sync '\ \ make -j8 >/dev/null Performance counter stats for 'make -j8' (5 runs): 219.764246652 seconds time elapsed ( +- 0.78% ) w/ CONFIG_CC_OPTIMIZE_FOR_DEBUGGING $ perf stat --repeat 5 --null --pre '\ cp -a kernel ../kernel.copy.$(date +%s); \ rm -rf *; \ git checkout .; \ echo 1 > /proc/sys/vm/drop_caches; \ find ../kernel* -type f | xargs cat >/dev/null; \ make -j kernel >/dev/null; \ make clean >/dev/null 2>&1; \ sync '\ \ make -j8 >/dev/null Performance counter stats for 'make -j8' (5 runs): 233.574187771 seconds time elapsed ( +- 0.19% ) Signed-off-by: Changbin Du Acked-by: Steven Rostedt (VMware) Cc: Masahiro Yamada --- v3: o make CC_OPTIMIZE_FOR_DEBUGGING depends on $(cc-option,-Og) o reflect CONFIG_CC_OPTIMIZE_FOR_DEBUGGING in tiny.config --- Makefile | 5 +++++ include/linux/compiler-gcc.h | 2 +- include/linux/compiler.h | 2 +- init/Kconfig | 20 ++++++++++++++++++++ kernel/configs/tiny.config | 1 + 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 04beb822ddfc..10de245a3325 100644 --- a/Makefile +++ b/Makefile @@ -657,6 +657,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context) +ifdef CONFIG_CC_OPTIMIZE_FOR_DEBUGGING +KBUILD_CFLAGS += -Og +KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) +else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) @@ -667,6 +671,7 @@ else KBUILD_CFLAGS += -O2 endif endif +endif KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \ $(call cc-disable-warning,maybe-uninitialized,)) diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 90ddfefb6c2b..4832c98c7885 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -85,7 +85,7 @@ #define __compiletime_object_size(obj) __builtin_object_size(obj, 0) -#ifndef __CHECKER__ +#if !defined(__CHECKER__) && !defined(CONFIG_CC_OPTIMIZE_FOR_DEBUGGING) #define __compiletime_warning(message) __attribute__((warning(message))) #define __compiletime_error(message) __attribute__((error(message))) diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 1921545c6351..3836397bf477 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -350,7 +350,7 @@ static inline void *offset_to_ptr(const int *off) * sparse see a constant array size without breaking compiletime_assert on old * versions of GCC (e.g. 4.2.4), so hide the array from sparse altogether. */ -# ifndef __CHECKER__ +# if !defined(__CHECKER__) && !defined(CONFIG_CC_OPTIMIZE_FOR_DEBUGGING) # define __compiletime_error_fallback(condition) \ do { ((void)sizeof(char[1 - 2 * condition])); } while (0) # endif diff --git a/init/Kconfig b/init/Kconfig index a4112e95724a..0fb9c0b5f1a1 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1105,6 +1105,26 @@ config CC_OPTIMIZE_FOR_SIZE If unsure, say N. +config CC_OPTIMIZE_FOR_DEBUGGING + bool "Optimize for better debugging experience (-Og)" + depends on $(cc-option,-Og) + select NO_AUTO_INLINE + help + This will apply GCC '-Og' optimization level which is supported + since GCC 4.8. This optimization level offers a reasonable level + of optimization while maintaining fast compilation and a good + debugging experience. It is similar to '-O1' while preferring to + keep debug ability over runtime speed. The overall performance + will drop a bit (~6%). + + Use only if you want to debug the kernel, especially if you want + to have better kernel debugging experience with gdb facilities + like kgdb or qemu. If enabling this option breaks your kernel, + you should either disable this or find a fix (mostly in the arch + code). + + If unsure, select N. + endchoice config HAVE_LD_DEAD_CODE_DATA_ELIMINATION diff --git a/kernel/configs/tiny.config b/kernel/configs/tiny.config index 7fa0c4ae6394..599ea86b0800 100644 --- a/kernel/configs/tiny.config +++ b/kernel/configs/tiny.config @@ -1,5 +1,6 @@ # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_DEBUGGING is not set # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set