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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 20 Apr 2020 13:17:30 -0500
From:   Josh Poimboeuf <jpoimboe@...hat.com>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        Ingo Molnar <mingo@...nel.org>,
        Thomas Gleixner <tglx@...utronix.de>,
        Masahiro Yamada <masahiroy@...nel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        the arch/x86 maintainers <x86@...nel.org>
Subject: Re: [GIT pull] perf/urgent for 5.7-rc2

On Mon, Apr 20, 2020 at 07:40:31PM +0200, Peter Zijlstra wrote:
> On Mon, Apr 20, 2020 at 09:51:55AM -0700, Linus Torvalds wrote:
> > On Mon, Apr 20, 2020 at 12:48 AM Ingo Molnar <mingo@...nel.org> wrote:
> > >
> > > Fortunately, much of what objtool does against vmlinux.o can be
> > > parallelized in a rather straightforward fashion I believe, if we build
> > > with -ffunction-sections.
> > 
> > Well, I was actually thinking about a simpler model.
> > 
> > By "link time" I didn't mean "after final link". Yes, there may be
> > reasons to do it at that point too (to do any whole-program checks),
> > but that wasn't what I meant.
> > 
> > I meant literally doing it in the $(LD) and $(AR) phases, when you
> > still have lots of independent object files that you are just about to
> > link (or archive - do we even do that any more?) into one.
> > 
> > Then you'd parallelize exactly the same way we do now: one object file
> > at a time, and with no real change of semantics.
> > 
> > IOW, what I was thinking that instead of doing it as part of a final
> > step after the CC/AS, we'd do it as a preparatory step before the
> > LD/AR. Same exact operation, same exact target *.o files, just shifted
> > in time.
> 
> So my pet peeve is that when objtool errors, or crashes, the .o file
> gets deleted and it becomes really hard to debug the situation. I'm
> thinking that your suggestion would actually help with that too.

I do have the same pet peeve and I'm thinking we should just revert
644592d32837 ("objtool: Fail the kernel build on fatal errors") which
would ease most of the pain.  Those fatal errors don't really buy us
much IMO.  Agree?

> I just don't have enough Kbuild foo to even attempt this :/

It's an interesting idea, but it might have its own share of annoyances.

If you added something bad to a file, and just rebuilt that file, you
wouldn't see the objtool warning until later when you build the entire
kernel.  (Of course the same complaint would apply to vmlinux.o
validation.)  But the warning shows the .o file, which could be
confusing.

And for localized testing where you don't want to rebuild everything,
you'd have to figure out which archive belongs to the .o file you want
to run objtool on.  And then rebuilding that archive manually might not
work, for example I have no idea what's going wrong here:

  $ make arch/x86/kernel/built-in.a
    CALL    scripts/checksyscalls.sh
    CALL    scripts/atomic/check-atomics.sh
    DESCEND  objtool
    AR      arch/x86/kernel/built-in.a
  ar: arch/x86/kernel/fpu/built-in.a: No such file or directory
  make[2]: *** [scripts/Makefile.build:387: arch/x86/kernel/built-in.a] Error 1
  make[1]: *** [scripts/Makefile.build:488: arch/x86/kernel] Error 2
  make: *** [Makefile:1723: arch/x86] Error 2


Though I do really like Ingo's idea for parallelizing things for
vmlinux.o.

-- 
Josh

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ