All of lore.kernel.org
 help / color / mirror / Atom feed
From: hpa@zytor.com
To: Ingo Molnar <mingo@kernel.org>, Nadav Amit <namit@vmware.com>
Cc: Ingo Molnar <mingo@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jan Beulich <JBeulich@suse.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andy Lutomirski <luto@kernel.org>
Subject: Re: [PATCH v9 04/10] x86: refcount: prevent gcc distortions
Date: Thu, 04 Oct 2018 02:17:24 -0700	[thread overview]
Message-ID: <3F2AE080-9F76-441D-A8FA-7AB7B8DF46BD@zytor.com> (raw)
In-Reply-To: <20181004091222.GB21864@gmail.com>

On October 4, 2018 2:12:22 AM PDT, Ingo Molnar <mingo@kernel.org> wrote:
>
>* Nadav Amit <namit@vmware.com> wrote:
>
>> I can run some tests. (@hpa: I thought you asked about the -pipe
>overhead;
>> perhaps I misunderstood).
>
>Well, tests are unlikely to show the overhead of extra lines of this
>magnitude, unless done very carefully, yet the added bloat exists and
>is not even
>mentioned by the changelog, it just says:
>
>Subject: [PATCH v9 02/10] Makefile: Prepare for using macros for inline
>asm
>
>  Using macros for inline assembly improves both readability and
>compilation decisions that are distorted by big assembly blocks that
>use
>  alternative sections. Compile macros.S and use it to assemble all C
>  files. Currently, only x86 will use it.
>
>> I guess you regard to the preprocessing of the assembler. Note that
>the C 
>> preprocessing of macros.S obviously happens only once. That’s the
>reason
>> I assumed it’s not that expensive.
>
>True - so first we build macros.s, and that gets included in every C
>file build, right?
>
>macros.s is smaller: 275 lines only in the distro test build I tried,
>which looks
>a lot better than my first 4,200 lines guesstimate.
>
>> Anyhow, I remember that we discussed at some point doing something
>like
>> ‘asm(“.include XXX.s”)’ and somebody said it is not good, but I don’t
>> remember why and don’t see any reason it is so. Unless I am missing
>> something, I think it is possible to take each individual header and
>> preprocess the assembly part of into a separate .s file. Then we can
>put in
>> the C part of the header ‘asm(".include XXX.s”)’.
>> 
>> What do you think?
>
>Hm, this looks quite complex - macros.s is better I think. Also, 275
>straight assembly lines is 
>a lot better than 4,200.
>
>Another, separate question I wanted to ask: how do we ensure that the
>kernel stays fixed?
>I.e. is there some tooling we can use to actually measure whether
>there's bad inlining decisions 
>done, to detect all these bad patterns that cause bad GCC code
>generation?
>
>Thanks,
>
>	Ingo

The assembly output from GCC is quite volumious; I doubt tacking a few hundred lines on will matter one iota.
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

  reply	other threads:[~2018-10-04  9:17 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-03 21:30 [PATCH v9 00/10] x86: macrofying inline asm Nadav Amit
2018-10-03 21:30 ` Nadav Amit
2018-10-03 21:30 ` [PATCH v9 01/10] xtensa: defining LINKER_SCRIPT for the linker script Nadav Amit
2018-10-04 10:00   ` [tip:x86/build] kbuild/arch/xtensa: Define " tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 02/10] Makefile: Prepare for using macros for inline asm Nadav Amit
2018-10-03 21:30   ` Nadav Amit
2018-10-04 10:01   ` [tip:x86/build] kbuild/Makefile: Prepare for using macros in inline assembly code to work around asm() related GCC inlining bugs tip-bot for Nadav Amit
2018-11-06 18:57   ` [PATCH v9 02/10] Makefile: Prepare for using macros for inline asm Logan Gunthorpe
2018-11-06 19:18     ` Nadav Amit
2018-11-06 20:01       ` Logan Gunthorpe
2018-11-07 18:01         ` Nadav Amit
2018-11-07 18:53           ` Logan Gunthorpe
2018-11-07 18:56             ` Nadav Amit
2018-11-07 21:43               ` Logan Gunthorpe
2018-11-07 21:50                 ` hpa
2018-11-08  6:18                   ` Nadav Amit
2018-11-08 17:14                     ` Logan Gunthorpe
2018-11-08 19:54                       ` Nadav Amit
2018-11-08 20:00                         ` Logan Gunthorpe
2018-11-08 20:18                           ` Nadav Amit
2018-11-10 22:04                             ` Nadav Amit
2018-11-13  4:56                               ` Logan Gunthorpe
2018-10-03 21:30 ` [PATCH v9 03/10] x86: objtool: use asm macro for better compiler decisions Nadav Amit
2018-10-03 21:30   ` Nadav Amit
2018-10-04 10:02   ` [tip:x86/build] x86/objtool: Use asm macros to work around GCC inlining bugs tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 04/10] x86: refcount: prevent gcc distortions Nadav Amit
2018-10-04  7:57   ` Ingo Molnar
2018-10-04  8:33     ` Ingo Molnar
2018-10-04  8:40       ` hpa
2018-10-04  8:56         ` Ingo Molnar
2018-10-04  8:56         ` Nadav Amit
2018-10-04  9:02           ` hpa
2018-10-04  9:16             ` Ingo Molnar
2018-10-04 19:33               ` H. Peter Anvin
2018-10-04 20:05                 ` Nadav Amit
2018-10-04 20:08                   ` H. Peter Anvin
2018-10-04 20:29                 ` Andy Lutomirski
2018-10-04 23:11                   ` H. Peter Anvin
2018-10-06  1:40                 ` Rasmus Villemoes
2018-10-04  9:12           ` Ingo Molnar
2018-10-04  9:17             ` hpa [this message]
2018-10-04  9:30             ` Nadav Amit
2018-10-04  9:45               ` Ingo Molnar
2018-10-04 10:23                 ` Nadav Amit
2018-10-05  9:31                   ` Ingo Molnar
2018-10-05 11:20                     ` Borislav Petkov
2018-10-05 12:52                       ` Ingo Molnar
2018-10-05 20:27                     ` [PATCH 0/3] Macrofying inline asm rebased Nadav Amit
2018-10-05 20:27                       ` [PATCH 1/3] x86/extable: Macrofy inline assembly code to work around GCC inlining bugs Nadav Amit
2018-10-06 14:42                         ` [tip:x86/build] " tip-bot for Nadav Amit
2018-10-05 20:27                       ` [PATCH 2/3] x86/cpufeature: " Nadav Amit
2018-10-06 14:43                         ` [tip:x86/build] " tip-bot for Nadav Amit
2018-10-05 20:27                       ` [PATCH 3/3] x86/jump-labels: " Nadav Amit
2018-10-06 14:44                         ` [tip:x86/build] " tip-bot for Nadav Amit
2018-10-08  2:17                     ` [PATCH v9 04/10] x86: refcount: prevent gcc distortions Nadav Amit
2018-10-04  8:40     ` Nadav Amit
2018-10-04  9:01       ` Ingo Molnar
2018-10-04 10:02   ` [tip:x86/build] x86/refcount: Work around GCC inlining bug tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 05/10] x86: alternatives: macrofy locks for better inlining Nadav Amit
2018-10-04 10:03   ` [tip:x86/build] x86/alternatives: Macrofy lock prefixes to work around GCC inlining bugs tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 06/10] x86: bug: prevent gcc distortions Nadav Amit
2018-10-04 10:03   ` [tip:x86/build] x86/bug: Macrofy the BUG table section handling, to work around GCC inlining bugs tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 07/10] x86: prevent inline distortion by paravirt ops Nadav Amit
2018-10-04 10:04   ` [tip:x86/build] x86/paravirt: Work around GCC inlining bugs when compiling " tip-bot for Nadav Amit
2018-10-03 21:30 ` [PATCH v9 08/10] x86: extable: use macros instead of inline assembly Nadav Amit
2018-10-03 21:30 ` [PATCH v9 09/10] x86: cpufeature: " Nadav Amit
2018-10-03 21:31 ` [PATCH v9 10/10] x86: jump-labels: " Nadav Amit
2018-10-07  9:18 ` PROPOSAL: Extend inline asm syntax with size spec Borislav Petkov
2018-10-07  9:18 ` Borislav Petkov
2018-10-07  9:18   ` Borislav Petkov
2018-10-07 13:22   ` Segher Boessenkool
2018-10-07 14:13     ` Borislav Petkov
2018-10-07 14:13       ` Borislav Petkov
2018-10-07 15:14       ` Segher Boessenkool
2018-10-07 15:14         ` Segher Boessenkool
2018-10-08  5:58         ` Ingo Molnar
2018-10-08  5:58         ` Ingo Molnar
2018-10-08  5:58           ` Ingo Molnar
2018-10-08  7:53           ` Segher Boessenkool
2018-10-08  7:53             ` Segher Boessenkool
2018-10-07 14:13     ` Borislav Petkov
2018-10-07 15:53     ` Michael Matz
2018-10-07 15:53       ` Michael Matz
2018-10-08  6:13       ` Ingo Molnar
2018-10-08  6:13         ` Ingo Molnar
2018-10-08  8:18         ` Segher Boessenkool
2018-10-08  8:18           ` Segher Boessenkool
2018-10-08  7:31       ` Segher Boessenkool
2018-10-08  7:31         ` Segher Boessenkool
2018-10-08  9:07         ` Richard Biener
2018-10-08  9:07           ` Richard Biener
2018-10-08 10:02           ` Segher Boessenkool
2018-10-08 10:02             ` Segher Boessenkool
2018-10-09 14:53           ` Segher Boessenkool
2018-10-09 14:53             ` Segher Boessenkool
2018-10-10  6:35             ` Ingo Molnar
2018-10-10  6:35               ` Ingo Molnar
2018-10-10  7:12             ` Richard Biener
2018-10-10  7:12               ` Richard Biener
2018-10-10  7:22               ` Ingo Molnar
2018-10-10  7:22                 ` Ingo Molnar
2018-10-10  8:03                 ` Segher Boessenkool
2018-10-10  8:03                   ` Segher Boessenkool
2018-10-10  8:19                   ` Borislav Petkov
2018-10-10  8:19                   ` Borislav Petkov
2018-10-10  8:19                     ` Borislav Petkov
2018-10-10  8:35                     ` Richard Biener
2018-10-10  8:35                       ` Richard Biener
2018-10-10 18:54                     ` Segher Boessenkool
2018-10-10 18:54                       ` Segher Boessenkool
2018-10-10 19:14                       ` Borislav Petkov
2018-10-10 19:14                       ` Borislav Petkov
2018-10-10 19:14                         ` Borislav Petkov
2018-10-13 19:33                         ` Borislav Petkov
2018-10-13 19:33                           ` Borislav Petkov
2018-10-13 21:14                           ` Alexander Monakov
2018-10-13 21:14                             ` Alexander Monakov
2018-10-13 21:30                             ` Borislav Petkov
2018-10-13 21:30                               ` Borislav Petkov
2018-10-25 10:24                           ` Borislav Petkov
2018-10-25 10:24                           ` Borislav Petkov
2018-10-25 10:24                             ` Borislav Petkov
2018-10-31 12:55                           ` Peter Zijlstra
2018-10-31 12:55                             ` Peter Zijlstra
2018-10-31 13:11                             ` Peter Zijlstra
2018-10-31 13:11                               ` Peter Zijlstra
2018-10-31 16:31                             ` Segher Boessenkool
2018-10-31 16:31                               ` Segher Boessenkool
2018-11-01  5:20                             ` Joe Perches
2018-11-01  5:20                               ` Joe Perches
2018-11-01  9:01                               ` Peter Zijlstra
2018-11-01  9:01                                 ` Peter Zijlstra
2018-11-01  9:20                                 ` Joe Perches
2018-11-01  9:20                                   ` Joe Perches
2018-11-01 11:15                                   ` Peter Zijlstra
2018-11-01 11:15                                     ` Peter Zijlstra
2018-11-01  9:20                                 ` Joe Perches
2018-11-01  5:20                             ` Joe Perches
2018-12-27  4:47                             ` Masahiro Yamada
2018-12-27  4:47                               ` Masahiro Yamada
2018-10-10 10:29                   ` Richard Biener
2018-10-10 10:29                     ` Richard Biener
2018-10-10  7:53               ` Segher Boessenkool
2018-10-10  7:53                 ` Segher Boessenkool
2018-10-10 16:31             ` Nadav Amit
2018-10-10 16:31               ` Nadav Amit
2018-10-10 19:21               ` Segher Boessenkool
2018-10-10 19:21                 ` Segher Boessenkool
2018-10-11  7:04               ` Richard Biener
2018-10-11  7:04                 ` Richard Biener
2018-11-29 11:46             ` Masahiro Yamada
2018-11-29 11:46             ` Masahiro Yamada
2018-11-29 11:46               ` Masahiro Yamada
2018-11-29 12:25               ` Segher Boessenkool
2018-11-29 12:25                 ` Segher Boessenkool
2018-11-30  9:06                 ` Boris Petkov via Virtualization
2018-11-30  9:06                 ` Boris Petkov
2018-11-30  9:06                   ` Boris Petkov
2018-11-30 13:16                   ` Segher Boessenkool
2018-11-30 13:16                     ` Segher Boessenkool
2018-12-10  8:16                     ` Masahiro Yamada
2018-12-10  8:16                       ` Masahiro Yamada
2018-12-10  8:16                     ` Masahiro Yamada
2018-11-29 13:07               ` Borislav Petkov
2018-11-29 13:07                 ` Borislav Petkov via Virtualization
2018-11-29 13:09                 ` Richard Biener
2018-11-29 13:09                   ` Richard Biener
2018-11-29 13:16                   ` Borislav Petkov via Virtualization
2018-11-29 13:16                   ` Borislav Petkov
2018-11-29 13:16                     ` Borislav Petkov
2018-11-29 13:24                     ` Richard Biener
2018-11-29 13:24                       ` Richard Biener
2018-10-08 16:24       ` David Laight
2018-10-08 16:24       ` David Laight
2018-10-08 16:24         ` David Laight
2018-10-07 16:09   ` Nadav Amit
2018-10-07 16:09     ` Nadav Amit
2018-10-07 16:13     ` [RESEND] " Nadav Amit
2018-10-07 16:46     ` Richard Biener
2018-10-07 16:46       ` Richard Biener
2018-10-07 19:06       ` Nadav Amit
2018-10-07 19:06         ` Nadav Amit
2018-10-07 19:52         ` Jeff Law
2018-10-07 19:52           ` Jeff Law
2018-10-08  7:46         ` Richard Biener
2018-10-08  7:46           ` Richard Biener

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F2AE080-9F76-441D-A8FA-7AB7B8DF46BD@zytor.com \
    --to=hpa@zytor.com \
    --cc=JBeulich@suse.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namit@vmware.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.