lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170714171745.xq257arzxnypq4mt@treble>
Date:   Fri, 14 Jul 2017 12:17:45 -0500
From:   Josh Poimboeuf <jpoimboe@...hat.com>
To:     Ingo Molnar <mingo@...nel.org>
Cc:     x86@...nel.org, linux-kernel@...r.kernel.org,
        live-patching@...r.kernel.org,
        Linus Torvalds <torvalds@...ux-foundation.org>,
        Andy Lutomirski <luto@...nel.org>, Jiri Slaby <jslaby@...e.cz>,
        "H. Peter Anvin" <hpa@...or.com>,
        Peter Zijlstra <peterz@...radead.org>,
        Mike Galbraith <efault@....de>
Subject: Re: [PATCH v3 00/10] x86: ORC unwinder (previously undwarf)

On Wed, Jul 12, 2017 at 09:27:50PM +0200, Ingo Molnar wrote:
> Maybe we could offer a menu of unwinders - i.e. make the whole Kconfig interface a 
> bit nicer:
> 
>   CONFIG_UNWINDER_FRAME_POINTER
>   CONFIG_UNWINDER_ORC
>   CONFIG_UNWINDER_GUESS
> 
> ... or so?

So far I haven't been able to figure out how to make the above three
options into a multiple choice selection, such that allnoconfig selects
CONFIG_UNWINDER_GUESS and alldefconfig selects
CONFIG_UNWINDER_FRAME_POINTER.

I *think* I should be able to do it by setting the choice default to
FRAME_POINTER, and setting the 'allnoconfig_y' option for
UNWINDER_GUESS.  But kconfig apparently doesn't support 'allnoconfig_y'
for choice selections yet.  I may need to modify kconfig for that.

But IMO, this change can come later, and the current patches should be
fine to merge as-is.  And it might make sense to delay such a patch
anyway, see below.

> Default would be the historic FRAME_POINTER, at least initially, I think.
> 
> I wouldn't mind making CONFIG_UNWINDER_ORC the new default either, due to the 
> non-trivial speedup it offers - but maybe folks would object?

Personally I wouldn't have an objection to making ORC the default,
though we should probably wait to give it some burn-in time first.

If we *do* decide to eventually make it the default, we could flip the
switch at the same time we introduced the multiple-choice config and
rename above.  That way, users of "make oldconfig" would see the change
and would be encouraged to switch ORC.

> > > CONFIG_FRAME_POINTERS et al would be left for architectures where it has a meaning 
> > > beyond backtrace generation. (Not sure whether there's any such architectures.)
> > 
> > Well, on x86, hardened usercopy relies on frame pointers, but not the
> > unwinder.  It does the frame pointer walk manually to avoid the full
> > unwinder overhead.  See arch_within_stack_frames().
> 
> Oh well...
> 
> > Ok, how about:
> > 
> >   "Orc unwind tables take up ~50% more RAM (+1.3MB on an x86 defconfig
> >   kernel) than DWARF eh_frame tables."
> > 
> > (My previous 1MB number was from my distro-based config, and it also
> > forgot to take into account the fast lookup table (".orc_lookup")).
> 
> Sounds good to me!

Ok, I'll post a v3.1 of patch 9 with the changed wording.

-- 
Josh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ