From: Linus Torvalds <torvalds@linux-foundation.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
Pawel Staszewski <pstaszewski@artcom.pl>,
LKML <linux-kernel@vger.kernel.org>,
Adrian Bunk <bunk@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Natalie Protasevich <protasnb@gmail.com>
Subject: Re: 2.6.25-rc7-git2: Reported regressions from 2.6.24
Date: Sat, 29 Mar 2008 14:29:27 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.00.0803291422160.14670@woody.linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0803291330190.26394@schroedinger.engr.sgi.com>
On Sat, 29 Mar 2008, Christoph Lameter wrote:
>
> > If SLUB *ever* calls the page allocator with __GFP_ZERO set, it's a
> > bug, and that has nothing to do with GFP_ATOMIC or anything else. Because
> > SLUB uses its own logic for clearing the result.
>
> Yes it uses its own logic if the object is managed by SLUB but not if the
> object is too big and/or the allocation forwarded to the page allocator
> or for other internal allocations of buffers etc.
Wrong.
It uses it's own logic for __GFP_ZERO *regardless* of size.
> > Why cannot you just admit it?
>
> Admitting something that is not true is rather difficult.
You don't have a f*cking clue about this cocde that you're supposed to be
maintaining, do you?
See "slab_alloc()". See the code:
if (unlikely((gfpflags & __GFP_ZERO) && object))
memset(object, 0, c->objsize);
and see how it does it regardless of anything else.
In short, if *any* code-path calls down to any allocator from that routine
with GFP_ZERO set, it's a bug. No ifs, buts or maybes about it. It
shouldn't do that, because the actual memset() is done by slab_alloc(),
and should not be done ANYWHERE ELSE.
It has *nothing* to do with "object is too big" or anything else.
> So what you want is to forbid any use of
>
> alloc_pages(__GFP_ZERO|...)
No. I want you to admit the bugs in code you maintain. I want you to admit
that slab_alloc() does the memset(), and should NEVER EVER use __GFP_ZERO
for the page allocations.
I have told you about a million times now that THIS HAS NOTHING TO DO WITH
interrupts or HIGHMEM or *anything* else. This is purely a SLUB issue.
But don't worry. I already fixed it by reverting your broken commit. I
just wish you could follow code that you are supposed to be maintaining.
Linus
next prev parent reply other threads:[~2008-03-29 21:30 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-27 22:53 Rafael J. Wysocki
2008-03-28 0:18 ` Carlos R. Mafra
2008-03-28 0:23 ` Rafael J. Wysocki
2008-03-28 2:30 ` Linus Torvalds
2008-03-28 3:24 ` Christoph Lameter
2008-03-28 4:00 ` Linus Torvalds
2008-03-28 10:48 ` Paweł Staszewski
2008-03-28 17:46 ` Andrew Morton
2008-03-28 21:57 ` Rafael J. Wysocki
2008-03-28 17:15 ` Pekka Enberg
2008-03-28 17:27 ` Linus Torvalds
2008-03-28 18:08 ` Pekka Enberg
2008-03-28 18:20 ` Linus Torvalds
2008-03-28 18:38 ` Christoph Lameter
2008-03-28 18:47 ` Andrew Morton
2008-03-28 18:53 ` Christoph Lameter
2008-03-28 19:37 ` Linus Torvalds
2008-03-28 19:59 ` Linus Torvalds
2008-03-28 19:59 ` Pekka Enberg
2008-03-28 20:24 ` Linus Torvalds
2008-03-28 18:37 ` Christoph Lameter
2008-03-28 19:32 ` Linus Torvalds
2008-03-28 18:33 ` Christoph Lameter
2008-03-28 19:25 ` Linus Torvalds
2008-03-29 20:42 ` Christoph Lameter
2008-03-29 21:29 ` Linus Torvalds [this message]
2008-03-29 23:52 ` Pekka Enberg
2008-03-31 18:56 ` Christoph Lameter
2008-03-31 18:45 ` Christoph Lameter
2008-03-28 3:31 ` Yinghai Lu
2008-03-31 10:14 ` Kamalesh Babulal
2008-03-31 12:10 ` Rafael J. Wysocki
2008-03-28 11:29 ` Haavard Skinnemoen
2008-03-28 16:11 ` Rafael J. Wysocki
2008-03-28 16:10 ` Rafael J. Wysocki
2008-03-28 16:47 ` Linus Torvalds
2008-03-28 17:36 ` Adrian Bunk
2008-03-28 20:33 ` Ingo Molnar
2008-03-28 22:28 ` Rafael J. Wysocki
2008-03-31 13:34 ` Ingo Molnar
2008-03-28 10:24 ` Thomas Gleixner
2008-03-28 10:58 ` Thomas Gleixner
2008-03-28 11:00 ` Peter Zijlstra
2008-03-28 11:13 ` Adrian Bunk
2008-03-28 11:16 ` Thomas Gleixner
2008-03-28 11:31 ` Adrian Bunk
2008-03-28 16:17 ` Rafael J. Wysocki
2008-03-28 17:06 ` Adrian Bunk
2008-03-28 20:42 ` Ingo Molnar
2008-03-28 22:33 ` Rafael J. Wysocki
2008-03-28 11:44 ` Peter Zijlstra
2008-03-28 16:12 ` Rafael J. Wysocki
2008-03-28 16:18 ` Thomas Gleixner
2008-03-28 18:57 ` Mark Lord
2008-03-28 22:37 ` Rafael J. Wysocki
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.1.00.0803291422160.14670@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=bunk@kernel.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=protasnb@gmail.com \
--cc=pstaszewski@artcom.pl \
--cc=rjw@sisk.pl \
/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
all inboxes | Powered by JetHome®