Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1980090yba; Sat, 27 Apr 2019 11:17:46 -0700 (PDT) X-Google-Smtp-Source: APXvYqzkfDz6TXpyqyZgjDQcxl9Flgqj1EgnqEcDbcZwG2dlIASNpDb8JGgXOQ6NFfVG4ZzQlP2G X-Received: by 2002:a17:902:e305:: with SMTP id cg5mr6364104plb.112.1556389066715; Sat, 27 Apr 2019 11:17:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556389066; cv=none; d=google.com; s=arc-20160816; b=K4k7lvnNqqPs0SWyv2oXy1T/AOVtjrgmtWO68T4uHVLuAWryD3mHDfEfbN1729o3n7 zaNvecidMdH3WwxRELn8TvbFH/Yn8uJpi0vQrNnKobSlCA94EPJHOPK8NRuOPOH9cIT6 RQSXVhM8Vtj1d9hwEtykakF/1rqlZI92cuJYBXndR8++XMm+FA3t18CY3xLneAsPfdXQ VJV/rRdJbI4nlZlRfQDvCwzzYbyoGuCms9Fe/4JE5lH0p+NBSGdngzAHWI0NLrUQd1eZ 6SnI47G3FBcfV3Smj1+3d7xhadv10jwwBqbydUfnJp8YFYYPKs8oCakYTbZ1PrmSGJCA S+eQ== 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 :dkim-signature; bh=RojP188D4T/SyJqZZWtabJ0LdyYtVRK1tXHxpyPzXqk=; b=OSCHVkSg6pd6gwyCfEmJmZ8OsZgHKJcHp+7HZlsAmB3v9paa9R3IGbZdKTGQv+x5rx sbH2ZK8DPw3KfFSdt9m43VAnWmygahpGV3N3y839JmKuWtxoA8V6x3AGfoUnR1RmsOZW K0tQNN4kWb1e1jHyKEBU3J0Wp5jHModcIxi9miJo2/50eX7dSn5mi5zBHsm39loaJZLH LZHCjVzJZFu1uTd57ybyKl6rD+WEDv9RZUQ22MiyYyRU9cJKgUiDZFgIQaRo6YPRi+zj PWvjY8J29Y3uSlMKg7bv5afGfJ3U2CBiDH1U7GMc3TvY/Nq0GIR4eL7m4EmzKwGPF8xj Rc8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b="OYg/wIoi"; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h185si30567049pfc.241.2019.04.27.11.17.30; Sat, 27 Apr 2019 11:17:46 -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; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b="OYg/wIoi"; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726190AbfD0SQk (ORCPT + 99 others); Sat, 27 Apr 2019 14:16:40 -0400 Received: from casper.infradead.org ([85.118.1.10]:51520 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725950AbfD0SQk (ORCPT ); Sat, 27 Apr 2019 14:16:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=RojP188D4T/SyJqZZWtabJ0LdyYtVRK1tXHxpyPzXqk=; b=OYg/wIoiKwcm3tJ6ldmh1wx82R HoTYh2lOQ0ag/AbtvreZOPe27RI6EZjLEc18Li9hXhVnnk3A6es07D6ynXVfaewYlsC68k+VVYY2t hYoAaUxracIZf1YvvMdpaP7n0iNKpUl8BToRKOHlRNLNYntnLfb07KQbdAFKjQRLJAFPR4+15v8rV 17Hfz7tgboUcSGFOHR1x0ZbCxU89BpTml/g+Dn0XVZ/KI/xf/rh4h0iU8mEEDAOXrFFtqV1uDWqVd AyNbtfdrBIjUiBltUVgAeEp+xO35snL2gRFDy2RLxwemtyaaZl8+BYlp0jq/MdbZ9Lv+35KIY6++7 WS7yzbog==; Received: from 177.17.250.151.dynamic.adsl.gvt.net.br ([177.17.250.151] helo=coco.lan) by casper.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1hKRsH-0004Ds-NO; Sat, 27 Apr 2019 18:16:34 +0000 Date: Sat, 27 Apr 2019 15:16:28 -0300 From: Mauro Carvalho Chehab To: Changbin Du Cc: Jonathan Corbet , tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 18/27] Documentation: x86: convert orc-unwinder.txt to reST Message-ID: <20190427151628.219bdf08@coco.lan> In-Reply-To: <20190426153150.21228-19-changbin.du@gmail.com> References: <20190426153150.21228-1-changbin.du@gmail.com> <20190426153150.21228-19-changbin.du@gmail.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-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 Em Fri, 26 Apr 2019 23:31:41 +0800 Changbin Du escreveu: > This converts the plain text documentation to reStructuredText format and > add it to Sphinx TOC tree. No essential content change. > > Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab > --- > Documentation/x86/index.rst | 1 + > .../{orc-unwinder.txt => orc-unwinder.rst} | 27 ++++++++++--------- > 2 files changed, 16 insertions(+), 12 deletions(-) > rename Documentation/x86/{orc-unwinder.txt => orc-unwinder.rst} (93%) > > diff --git a/Documentation/x86/index.rst b/Documentation/x86/index.rst > index 4e9fa2b046df..c41c17906b6d 100644 > --- a/Documentation/x86/index.rst > +++ b/Documentation/x86/index.rst > @@ -14,6 +14,7 @@ Linux x86 Support > kernel-stacks > entry_64 > earlyprintk > + orc-unwinder > zero-page > tlb > mtrr > diff --git a/Documentation/x86/orc-unwinder.txt b/Documentation/x86/orc-unwinder.rst > similarity index 93% > rename from Documentation/x86/orc-unwinder.txt > rename to Documentation/x86/orc-unwinder.rst > index cd4b29be29af..d811576c1f3e 100644 > --- a/Documentation/x86/orc-unwinder.txt > +++ b/Documentation/x86/orc-unwinder.rst > @@ -1,8 +1,11 @@ > +.. SPDX-License-Identifier: GPL-2.0 > + > +============ > ORC unwinder > ============ > > Overview > --------- > +======== > > The kernel CONFIG_UNWINDER_ORC option enables the ORC unwinder, which is > similar in concept to a DWARF unwinder. The difference is that the > @@ -23,12 +26,12 @@ correlate instruction addresses with their stack states at run time. > > > ORC vs frame pointers > ---------------------- > +===================== > > With frame pointers enabled, GCC adds instrumentation code to every > function in the kernel. The kernel's .text size increases by about > 3.2%, resulting in a broad kernel-wide slowdown. Measurements by Mel > -Gorman [1] have shown a slowdown of 5-10% for some workloads. > +Gorman [1]_ have shown a slowdown of 5-10% for some workloads. > > In contrast, the ORC unwinder has no effect on text size or runtime > performance, because the debuginfo is out of band. So if you disable > @@ -55,7 +58,7 @@ depending on the kernel config. > > > ORC vs DWARF > ------------- > +============ > > ORC debuginfo's advantage over DWARF itself is that it's much simpler. > It gets rid of the complex DWARF CFI state machine and also gets rid of > @@ -65,7 +68,7 @@ mission critical oops code. > > The simpler debuginfo format also enables the unwinder to be much faster > than DWARF, which is important for perf and lockdep. In a basic > -performance test by Jiri Slaby [2], the ORC unwinder was about 20x > +performance test by Jiri Slaby [2]_, the ORC unwinder was about 20x > faster than an out-of-tree DWARF unwinder. (Note: That measurement was > taken before some performance tweaks were added, which doubled > performance, so the speedup over DWARF may be closer to 40x.) > @@ -85,7 +88,7 @@ still be able to control the format, e.g. no complex state machines. > > > ORC unwind table generation > ---------------------------- > +=========================== > > The ORC data is generated by objtool. With the existing compile-time > stack metadata validation feature, objtool already follows all code > @@ -133,7 +136,7 @@ objtool follows GCC code quite well. > > > Unwinder implementation details > -------------------------------- > +=============================== > > Objtool generates the ORC data by integrating with the compile-time > stack metadata validation feature, which is described in detail in > @@ -154,7 +157,7 @@ subset of the table needs to be searched. > > > Etymology > ---------- > +========= > > Orcs, fearsome creatures of medieval folklore, are the Dwarves' natural > enemies. Similarly, the ORC unwinder was created in opposition to the > @@ -162,7 +165,7 @@ complexity and slowness of DWARF. > > "Although Orcs rarely consider multiple solutions to a problem, they do > excel at getting things done because they are creatures of action, not > -thought." [3] Similarly, unlike the esoteric DWARF unwinder, the > +thought." [3]_ Similarly, unlike the esoteric DWARF unwinder, the > veracious ORC unwinder wastes no time or siloconic effort decoding > variable-length zero-extended unsigned-integer byte-coded > state-machine-based debug information entries. > @@ -174,6 +177,6 @@ brutal, unyielding efficiency. > ORC stands for Oops Rewind Capability. > > > -[1] https://lkml.kernel.org/r/20170602104048.jkkzssljsompjdwy@suse.de > -[2] https://lkml.kernel.org/r/d2ca5435-6386-29b8-db87-7f227c2b713a@suse.cz > -[3] http://dustin.wikidot.com/half-orcs-and-orcs > +.. [1] https://lkml.kernel.org/r/20170602104048.jkkzssljsompjdwy@suse.de > +.. [2] https://lkml.kernel.org/r/d2ca5435-6386-29b8-db87-7f227c2b713a@suse.cz > +.. [3] http://dustin.wikidot.com/half-orcs-and-orcs Thanks, Mauro