From: Al Viro <viro@ZenIV.linux.org.uk>
To: Joe Perches <joe@perches.com>
Cc: linux-kernel@vger.kernel.org, cpufreq@vger.kernel.org,
Dave Jones <davej@redhat.com>,
Greg Kroah-Hartman <gregkh@suse.de>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
x86@kernel.org, Len Brown <len.brown@intel.com>,
Mike Travis <travis@sgi.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Thomas Gleixner <tglx@linutronix.de>,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH V2 0/3] Introduce and use DO_ONCE statement expression macro
Date: Fri, 22 May 2009 06:26:52 +0100 [thread overview]
Message-ID: <20090522052652.GX8633@ZenIV.linux.org.uk> (raw)
In-Reply-To: <cover.1242965306.git.joe@perches.com>
On Thu, May 21, 2009 at 09:27:29PM -0700, Joe Perches wrote:
> The printk_once macro in kernel.h is limited to printk
>
> This generalizes the functionality of printk_once and
> allows statements like DO_ONCE(pr_info("foo\n"))
> and DO_ONCE(initialize(foo));
Sigh... Please, don't do introduce new control structures without extremely
good reasons.
printk_once() has syntax of function call; it's far more tolerable for
casual reader (e.g. somebody looking through the code while trying to
localize a bug) since it doesn't interrupt the flow - it parses as
"some function call, apparently doing some debugging output, let's see
if there are any obvious side effects in the arguments and move on".
Your DO_ONCE(....) parses as "what the fuck is that?" followed by
grepping for definition, and the cost is much higher.
Don't do that. Staying close to normal syntax is a very good thing;
preprocessor can be used in a lot of ways that are harmful and introduction
of (effectively) new kinds of statements is a prime example. It *does*
have its place, but it should be done very sparingly.
next prev parent reply other threads:[~2009-05-22 5:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-22 4:27 [PATCH V2 0/3] Introduce and use DO_ONCE statement expression macro Joe Perches
2009-05-22 4:27 ` [PATCH V2 1/3] kernel.h: Add " Joe Perches
2009-05-22 4:27 ` [PATCH V2 2/3] arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c: Use DO_ONCE & spelling fix Joe Perches
2009-05-22 4:27 ` [PATCH V2 3/3] kernel.h: Remove unused printk_once Joe Perches
2009-05-22 5:26 ` Al Viro [this message]
2009-05-22 5:39 ` [PATCH V2 0/3] Introduce and use DO_ONCE statement expression macro Joe Perches
2009-05-22 7:01 ` Al Viro
2009-05-22 7:44 ` Ingo Molnar
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=20090522052652.GX8633@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=cpufreq@vger.kernel.org \
--cc=davej@redhat.com \
--cc=gregkh@suse.de \
--cc=hpa@zytor.com \
--cc=joe@perches.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=tglx@linutronix.de \
--cc=travis@sgi.com \
--cc=venkatesh.pallipadi@intel.com \
--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.