From: Oleg Verych <olecom@flower.upol.cz>
To: "LKML (Cc removed)" <linux-kernel@vger.kernel.org>
Subject: coding for optimizations (Re: [PATCH 1/2] i386: mce cleanup part1: functional change)
Date: Tue, 9 Oct 2007 19:33:17 +0200 [thread overview]
Message-ID: <20071009173317.GD22435@flower.upol.cz> (raw)
In-Reply-To: <20071009160605.GC13205@amd.com>
On Tue, Oct 09, 2007 at 06:06:05PM +0200, Joerg Roedel wrote:
> > > void mcheck_init(struct cpuinfo_x86 *c)
> > > {
> > > + uint32_t mca, mce;
> > > +
> > > if (mce_disabled==1)
> > > return;
> > >
> > > + mca = cpu_has(c, X86_FEATURE_MCA);
> > > + mce = cpu_has(c, X86_FEATURE_MCE);
> > > +
> > > + if (!mca || !mce) {
> > > + printk(KERN_INFO "CPU%i: No machine check support available\n",
> > > + smp_processor_id());
> > > + return;
> > > + }
> > > +
> >
> > cpu_has() returns int,
> > but would it be better to have something like
> >
> > if (!mce_disabled &&
> > !(c->x86_capability & (X86_FEATURE_MCA | X86_FEATURE_MCE)) {
> > printk(KERN_INFO "CPU%i: No machine check support available\n",
> > smp_processor_id());
>
> This looks complicated and is harder to read. Its exactly the purpose of the
> cpu_has() macro to avoid such constructs.
>
> > return;
> > } else
> > return;
>
> Return unconditionaly here?
Kind of typo.
Due to arch code, i think, it must be coded in non-gcc optimistic way. As
practice and Linus shows, gcc's optimizations sometimes produce very
unexpected results. People do spaghetti-like coding, without thinking
about text size / run time.
Compile time payment was noted by Andrew many years ago:
"As you know, I'd be more concerned about moves to drop support for the
older and much faster gcc versions. If you're not using egcs-1.1.2,
you're already a very patient person." <http://lkml.org/lkml/2001/12/29/163>
So, i actually wanted to write this:
if (!mce_disabled) {
if (!(c->x86_capability & (X86_FEATURE_MCA | X86_FEATURE_MCE)) {
printk(KERN_INFO "CPU%i: No machine check support available\n",
smp_processor_id());
return;
}
/* function code */
}
(ugly, because `mce_disabled == 1' check is even in gcc is likely by
default). But changed my mind, due to violation of the coding style.
Of course this my be no appropriate at all, but i'd like to bring
this, if anyone would be like to discuss this.
____
next prev parent reply other threads:[~2007-10-09 17:19 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-09 12:49 [PATCH 0/2] i386: MCE updates Joerg Roedel
2007-10-09 12:49 ` [PATCH 1/2] i386: mce cleanup part1: functional change Joerg Roedel
2007-10-09 16:04 ` Oleg Verych
2007-10-09 16:06 ` Joerg Roedel
2007-10-09 16:32 ` Oleg Verych
2007-10-09 16:54 ` Joerg Roedel
2007-10-09 20:46 ` Valdis.Kletnieks
2007-10-10 1:58 ` Oleg Verych
2007-10-09 17:33 ` Oleg Verych [this message]
2007-10-09 18:30 ` coding for optimizations (Re: [PATCH 1/2] i386: mce cleanup part1: functional change) Joerg Roedel
2007-10-10 23:14 ` Adrian Bunk
2007-10-11 15:26 ` Oleg Verych
2007-10-11 15:21 ` Adrian Bunk
2007-10-11 16:13 ` Oleg Verych
2007-10-09 12:49 ` [PATCH 2/2] i386: mce cleanup part2: conding style cleanups Joerg Roedel
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=20071009173317.GD22435@flower.upol.cz \
--to=olecom@flower.upol.cz \
--cc=linux-kernel@vger.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
Powered by JetHome