From: Linus Torvalds <torvalds@linux-foundation.org>
To: Jiri Slaby <jslaby@novell.com>
Cc: jirislaby@gmail.com, Ingo Molnar <mingo@elte.hu>,
nhorman@tuxdriver.com, sfr@canb.auug.org.au,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
marcin.slusarz@gmail.com, tglx@linutronix.de, mingo@redhat.com,
"H. Peter Anvin" <hpa@zytor.com>,
James Morris <jmorris@namei.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
linux-mm@kvack.org
Subject: Re: [PATCH 09/16] MM: use ACCESS_ONCE for rlimits
Date: Wed, 18 Nov 2009 07:29:49 -0800 (PST) [thread overview]
Message-ID: <alpine.LFD.2.01.0911180721440.4644@localhost.localdomain> (raw)
In-Reply-To: <1258555922-2064-9-git-send-email-jslaby@novell.com>
I hate these patches, but not because they start using ACCESS_ONCE() per
se, but because they turn an already much too complex expression into the
ExpressionFromHell(tm).
The fact that you had to split a single expression over multiple lines in
multiple places should really have made you realize that something is
wrong.
So I really would suggest that rather than this kind of mess:
On Wed, 18 Nov 2009, Jiri Slaby wrote:
>
> - unsigned long limit = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
> + unsigned long limit = ACCESS_ONCE(current->signal->
> + rlim[RLIMIT_FSIZE].rlim_cur);
into something more like
static inline unsigned long tsk_get_rlimit(struct task_struct *tsk, int limit)
{
return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur);
}
static inline unsigned long get_rlimit(int limit)
{
return tsk_get_rlimit(current, limit);
}
and then instead of adding ACCESS_ONCE() to many places that are already
ugly, you'd have made the above kind of expression be
unsigned long limit = get_rlimit(RLIMIG_FSIZE);
instead.
Doesn't that look saner?
Yeah, yeah, there's a few places that actually take the address of
'tsk->signal->rlim' and do this all by hand, so you'd not get rid of all
of these things and it's not a matter of wrapping things in some new fancy
abstraction layer, but at least you'd get rid of the overly complex
expressions that span multiple lines.
With that, I'd probably like the series a whole lot better.
Which is not to say that I'm entirely convinced about get/setprlimit() in
the first place, but that's a whole different issue.
Linus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2009-11-18 15:30 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4B040A03.2020508@gmail.com>
2009-11-18 14:51 ` Jiri Slaby
2009-11-18 15:29 ` Linus Torvalds [this message]
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=alpine.LFD.2.01.0911180721440.4644@localhost.localdomain \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=jirislaby@gmail.com \
--cc=jmorris@namei.org \
--cc=jslaby@novell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=marcin.slusarz@gmail.com \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=nhorman@tuxdriver.com \
--cc=sfr@canb.auug.org.au \
--cc=tglx@linutronix.de \
/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