Received: by 10.192.165.148 with SMTP id m20csp4915545imm; Tue, 1 May 2018 06:12:25 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqDKCQkyX7iESTKOScuBQv61z8rd+kzWT4tSKrvwDA8FAkF7jgO7CXWu0rJ3aUVRGZROQny X-Received: by 2002:a63:af44:: with SMTP id s4-v6mr12690814pgo.295.1525180344999; Tue, 01 May 2018 06:12:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525180344; cv=none; d=google.com; s=arc-20160816; b=NOVD80N2Fyl8dETJt0Gjce6N7jjFD57P5DYCj4z8hD0hAH9qi8I12aQukBIT3Zw4oB OKNFcJafvyarssjbiNMoUPyvkMjkrSIUAsG1b9f9rlpJJlRVH/zTAX6tW+VRBsJNeQlx 8O1KLl8+iF7kLuGH68JDTYZ3Go4BthDwUnlSbsOsRkmAmV7WNz+TlCJgXAMy4y6icbFH 0wf7jaSyddJ0tZzXnPaRdptoaD2czQGpgyjvs0wX4vTpLqjQz6nJbMfh788ggDWk+wPo 4oyCnrANgKq7OQ8DWdZNn8/SZ49iRm1a2h4h+dGGpdrZwAWdy9UaNvJGQxmYkwXu0FCT IXhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=oLAWSQfGsxhZMeKBWScQUGQHcE5f4foMQAGHo1OStik=; b=BBZJ2zNMjCH+feTxo6rMfeK7ve3NXbdFyox8L5gNZ4RYoRTS/oBMSssSIxWJPeoP3j 1BxOXZnZQISkvZCAZVcyvPo5pWUQVEYw767UI+aAT+hTkWXZNz5Sz5WAiKu1XxnRXzyJ l50OQd2jWoiVbvMqVsLfW1sSUUfupdZ9xEMCSZh4FkMHw2zcwWnJ41+f7AFS4/bgg6Yq yzD+oOjYnZCyiiVKa7vdo1Y/9e7K7znn55qGZeSd2skAsToiagD8VP9lvNdUL1nN6Dp1 q7R7JPoyQwwXoIJnE8aT1xLvLW29ULkoUOVw7ANylWnZprUp10dEXoA6HHtGGVLs/eLS J8Sw== 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 z25-v6si3712363pgu.486.2018.05.01.06.12.10; Tue, 01 May 2018 06:12:24 -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 S1755186AbeEANKo (ORCPT + 99 others); Tue, 1 May 2018 09:10:44 -0400 Received: from mga09.intel.com ([134.134.136.24]:56155 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754805AbeEANKk (ORCPT ); Tue, 1 May 2018 09:10:40 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 May 2018 06:10:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,351,1520924400"; d="scan'208";a="38382500" Received: from gvt-dell.bj.intel.com (HELO gvt-dell-host.bj.intel.com) ([10.238.154.59]) by orsmga006.jf.intel.com with ESMTP; 01 May 2018 06:10:36 -0700 From: changbin.du@intel.com To: yamada.masahiro@socionext.com, michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com, akpm@linux-foundation.org Cc: 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, Changbin Du Subject: [PATCH 0/5] kernel hacking: GCC optimization for debug experience (-Og) Date: Tue, 1 May 2018 21:00:09 +0800 Message-Id: <1525179614-14571-1-git-send-email-changbin.du@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Changbin Du Hi all, I know some kernel developers was searching for a method to dissable GCC optimizations, probably they want to apply GCC '-O0' option. But since Linux kernel replys on GCC optimization to remove some dead code, so '-O0' just breaks the build. They do need this because they want to debug kernel with qemu, simics, kgtp or kgdb. Thanks for the GCC '-Og' optimization level introduced in GCC 4.8, which offers a reasonable level of optimization while maintaining fast compilation and a good debugging experience. It is similar to '-O1' while perfer keeping debug ability over runtime speed. With '-Og', we can build a kernel with better debug ability and little performance drop after some simple change. In this serias, firstly introduce a new config CONFIG_NO_AUTO_INLINE after two fixes. Selecting this option will make compiler not auto-inline kernel functions.This is useful when you are using ftrace to understand the control flow of kernel code or tracing some static functions. Then introduce new config CONFIG_DEBUG_EXPERIENCE which apply '-Og' optimization level for whole kernel, with a simple fix in fix_to_virt(). Currently this option is only tested on a QEMU gust and it works fine. Comparison of vmlinux size: a bit smaller. w/o CONFIG_DEBUG_EXPERIENCE $ size vmlinux text data bss dec hex filename 22665554 9709674 2920908 35296136 21a9388 vmlinux w/ CONFIG_DEBUG_EXPERIENCE $ size vmlinux text data bss dec hex filename 21499032 10102758 2920908 34522698 20ec64a vmlinux Comparison of system performance: a bit drop. w/o CONFIG_DEBUG_EXPERIENCE $ time make -j4 real 6m43.619s user 19m5.160s sys 2m20.287s w/ CONFIG_DEBUG_EXPERIENCE $ time make -j4 real 6m55.054s user 19m11.129s sys 2m36.345s Changbin Du (5): x86/mm: surround level4_kernel_pgt with #ifdef CONFIG_X86_5LEVEL...#endif regulator: add dummy of_find_regulator_by_node kernel hacking: new config NO_AUTO_INLINE to disable compiler atuo-inline optimizations kernel hacking: new config DEBUG_EXPERIENCE to apply GCC -Og optimization asm-generic: fix build error in fix_to_virt with CONFIG_DEBUG_EXPERIENCE Makefile | 10 ++++++++++ arch/x86/include/asm/pgtable_64.h | 2 ++ arch/x86/kernel/head64.c | 13 ++++++------- drivers/regulator/internal.h | 9 +++++++-- include/asm-generic/fixmap.h | 3 ++- include/linux/compiler-gcc.h | 2 +- include/linux/compiler.h | 2 +- lib/Kconfig.debug | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 63 insertions(+), 12 deletions(-) -- 2.7.4