linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Oleg Nesterov <oleg@redhat.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Alexei Starovoitov <ast@plumgrid.com>,
	Will Drewry <wad@chromium.org>, Kees Cook <keescook@chromium.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/9] x86/asm/entry/32: tidy up some instructions
Date: Wed, 1 Apr 2015 10:29:35 +0200	[thread overview]
Message-ID: <20150401082934.GA23533@gmail.com> (raw)
In-Reply-To: <1427821211-25099-7-git-send-email-dvlasenk@redhat.com>


* Denys Vlasenko <dvlasenk@redhat.com> wrote:

> After TESTs, use logically correct JZ mnemonic instead of JE
> (this doesn't change code).
> 
> Tidy up CMPW insns:
> 
> Modern CPUs are not good with 16-bit operations.
> The instructions with 16-bit immediates are especially bad,
> on many CPUs they cause length changing prefix stall
> in the decoders, costing ~6 cycles to recover.
> 
> Replace CMPWs with CMPLs.
> Of these, for form with 8-bit sign-extended immediates
> it is a win because they are smaller now
> (no 0x66 prefix anymore);
> ones with 16-bit immediates are faster.

This patch does JE->JZ transitions, but it also does CMPW instruction 
tweaking - which was buggy as Brian (miraculously!) noticed.

This isn't the first such incident, and I made this point about three 
times already in the past, but it appears I've not made it loud 
enough: which part of 'do not put two unrelated changes into the same 
patch' did you not understand??

We _DO NOT PUT_ multiple, unrelated changes to assembly files into a 
single patch! And we _especially_ don't mix them up under a 
meaningless, repetitive, misleading 'tidy up instructions' title!

Full stop.

The titles of the two patches should have been something like:

 x86/asm/entry/32: Convert JNE to JNZ mnemonics, to improve readability
 x86/asm/entry/32: Optimize CMPW to CMPL instructions, to make use of automatic zero-extend

We were lucky that Brian was alert enough to have read through a 
misleadingly titled, seemingly harmless patch and noticed the bug in 
your patch, but heck you made it hard!!!

And no, it's not a problem if you create a dozen trivial looking 
patches and have to wait a bit more for them to trickle into the 
maintainer tree: asm patches are seldom trivial, and even if they are 
trivial, both reviewability and bisectability will improve from the 
process.

You are doing a nice job improving the x86/asm/entry code, but if you 
cannot create suitably conservative, maximally reviewable and 
maximally bisectable patches to x86/asm then I won't be able to apply 
assembly patches from you!

</rant>

Thanks,

	Ingo

  parent reply	other threads:[~2015-04-01  8:29 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-31 17:00 [PATCH 1/9] x86/asm/entry/64: do not TRACE_IRQS fast SYSRET64 path Denys Vlasenko
2015-03-31 17:00 ` [PATCH 2/9] x86/asm/entry/32: Use PUSH instructions to build pt_regs on stack Denys Vlasenko
2015-04-01  8:51   ` Ingo Molnar
2015-04-01 13:12     ` Denys Vlasenko
2015-04-01 13:21       ` Ingo Molnar
2015-04-01 13:53       ` Borislav Petkov
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/32: Use smaller PUSH instructions instead of MOV, to build 'pt_regs' " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 3/9] x86/asm/entry/64: simplify retint_kernel label usage, make retint_restore_args label local Denys Vlasenko
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/64: Simplify " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 4/9] x86/asm/entry/64: remove redundant DISABLE_INTERRUPTS Denys Vlasenko
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/64: Remove redundant DISABLE_INTERRUPTS() tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 5/9] x86/asm/entry/64: simplify looping around preempt_schedule_irq Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm/entry/64: Simplify looping around preempt_schedule_irq() tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 6/9] x86/asm/entry/64: tidy up some instructions Denys Vlasenko
2015-03-31 17:00 ` [PATCH 7/9] x86/asm/entry/32: " Denys Vlasenko
2015-03-31 22:21   ` Brian Gerst
2015-03-31 23:09     ` Linus Torvalds
2015-04-01 11:10     ` Denys Vlasenko
2015-04-01 15:50       ` Linus Torvalds
2015-04-01 20:52         ` Denys Vlasenko
2015-04-01 20:57           ` H. Peter Anvin
2015-04-01 22:14           ` Linus Torvalds
2015-04-02  0:32             ` Brian Gerst
2015-04-01  8:29   ` Ingo Molnar [this message]
2015-03-31 17:00 ` [PATCH 8/9] x86/asm: replace MOVQ $imm,%reg with MOVL Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm: Replace "MOVQ $imm, %reg" " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 9/9] x86/asm/entry/64: use local label to skip around sycall dispatch Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm/entry/64: Use " tip-bot for Denys Vlasenko
2015-04-02 12:25 ` [tip:x86/asm] x86/asm/entry/64: Do not TRACE_IRQS fast SYSRET64 path tip-bot for Denys Vlasenko

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=20150401082934.GA23533@gmail.com \
    --to=mingo@kernel.org \
    --cc=ast@plumgrid.com \
    --cc=bp@alien8.de \
    --cc=dvlasenk@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=oleg@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wad@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).