From: Christoph Lameter <clameter@sgi.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
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: Fri, 28 Mar 2008 11:33:05 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0803281128480.17805@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <alpine.LFD.1.00.0803272050290.14670@woody.linux-foundation.org>
On Thu, 27 Mar 2008, Linus Torvalds wrote:
> Totally irrelevant.
>
> The page allocation path does
>
> if (gfp_flags & __GFP_ZERO)
> prep_zero_page(page, order, gfp_flags);
>
> and that will cause a warning REGARDLESS of whether the page is a HIGHMEM
> page or not.
prep_zero_page does:
static inline void prep_zero_page(struct page *page, int order, gfp_t
gfp_flags)
{
int i;
/*
* clear_highpage() will use KM_USER0, so it's a bug to use __GFP_ZERO
* and __GFP_HIGHMEM from hard or soft interrupt context.
*/
VM_BUG_ON((gfp_flags & __GFP_HIGHMEM) && in_interrupt());
for (i = 0; i < (1 << order); i++)
clear_highpage(page + i);
}
So we forbit __GFP_HIGHMEM and in_interrupt which makes sense. The simple
forwarding of large kmallocs to the page allocator as done by SLUB / SLOB
is fine.
Then clear_highpage calls additional checking functions that have
the effect of generally forbiding zeroing in interrupt context if
CONFIG_HIGHMEM is set. This is wrong and needs to be fixed.
> And the fact is, passing in GFP_ZERO from the SLUB code is a bug
> regardless, because it unnecessarily does the dual memset().
Well that is only the fallback path of __slab_alloc which is not triggered
here and not performance sensitive. We could clear the flag there but
that is irrevelant for this issue.
next prev parent reply other threads:[~2008-03-28 18:35 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 [this message]
2008-03-28 19:25 ` Linus Torvalds
2008-03-29 20:42 ` Christoph Lameter
2008-03-29 21:29 ` Linus Torvalds
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=Pine.LNX.4.64.0803281128480.17805@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=akpm@linux-foundation.org \
--cc=bunk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=protasnb@gmail.com \
--cc=pstaszewski@artcom.pl \
--cc=rjw@sisk.pl \
--cc=torvalds@linux-foundation.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
all inboxes | Powered by JetHome®