Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752165AbdGMNPE (ORCPT ); Thu, 13 Jul 2017 09:15:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39368 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751176AbdGMNPD (ORCPT ); Thu, 13 Jul 2017 09:15:03 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8B20E75721 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jpoimboe@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 8B20E75721 Date: Thu, 13 Jul 2017 08:15:00 -0500 From: Josh Poimboeuf To: Andi Kleen Cc: x86@kernel.org, linux-kernel@vger.kernel.org, live-patching@vger.kernel.org, Linus Torvalds , Andy Lutomirski , Jiri Slaby , Ingo Molnar , "H. Peter Anvin" , Peter Zijlstra , Mike Galbraith Subject: Re: [PATCH v3 00/10] x86: ORC unwinder (previously undwarf) Message-ID: <20170713131500.uj2kns7lvidjtnix@treble> References: <87wp7dmgoo.fsf@firstfloor.org> <20170712224759.a32747n3oso245ij@treble> <20170713042916.GD3044@two.firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20170713042916.GD3044@two.firstfloor.org> User-Agent: Mutt/1.6.0.1 (2016-04-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 13 Jul 2017 13:15:03 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1857 Lines: 47 On Wed, Jul 12, 2017 at 09:29:17PM -0700, Andi Kleen wrote: > On Wed, Jul 12, 2017 at 05:47:59PM -0500, Josh Poimboeuf wrote: > > On Wed, Jul 12, 2017 at 03:30:31PM -0700, Andi Kleen wrote: > > > Josh Poimboeuf writes: > > > > > > > > The ORC data format does have a few downsides compared to DWARF. The > > > > ORC unwind tables take up ~1MB more memory than DWARF eh_frame tables. > > > > > > > Can we have an option to just use dwarf instead? For people > > > who don't want to waste a MB+ to solve a problem that doesn't > > > exist (as proven by many years of opensuse kernel experience) > > > > > > As far as I can tell this whole thing has only downsides compared > > > to the dwarf unwinder that was earlier proposed. I don't see > > > a single advantage. > > > > Improved speed, reliability, maintainability. Are those not advantages? > > Ok. We'll see how it works out. > > The memory overhead is quite bad though. You're basically undoing many > years of efforts to shrink kernel text. I hope this can be still > done better. If we're talking *text*, this further shrinks text size by 3% because frame pointers can be disabled. As far as the data size goes, is anyone *truly* impacted by that extra 1MB or so? If you're enabling a DWARF/ORC unwinder, you're already signing up for a few extra megs anyway. I do have a vague idea about how to reduce the data size, if/when the size becomes a problem. Basically there's a *lot* of duplication in the ORC data: $ tools/objtool/objtool orc dump vmlinux | wc -l 311095 $ tools/objtool/objtool orc dump vmlinux |cut -d' ' -f2- |sort |uniq |wc -l 345 So that's over 300,000 6-byte entries, only 345 of which are unique. There should be a way to compress that. However, it will probably require sacrificing some combination of speed and simplicity. -- Josh