From: Jesse Barnes <jesse.barnes@intel.com>
To: "Yinghai Lu" <yhlu.kernel@gmail.com>
Cc: "Andi Kleen" <andi@firstfloor.org>,
linux-kernel@vger.kernel.org,
"Justin Piszcz" <jpiszcz@lucidpixels.com>,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [PATCH] trim memory not covered by WB MTRRs
Date: Thu, 21 Jun 2007 12:56:12 -0700 [thread overview]
Message-ID: <200706211256.12551.jesse.barnes@intel.com> (raw)
In-Reply-To: <86802c440706211240s27d58679k43cee4488ce8a70e@mail.gmail.com>
On Thursday, June 21, 2007 12:40:58 Yinghai Lu wrote:
> On 6/7/07, Jesse Barnes <jesse.barnes@intel.com> wrote:
> > On some machines, buggy BIOSes don't properly setup WB MTRRs to
> > cover all available RAM, meaning the last few megs (or even gigs)
> > of memory will be marked uncached. Since Linux tends to allocate
> > from high memory addresses first, this causes the machine to be
> > unusably slow as soon as the kernel starts really using memory
> > (i.e. right around init time).
> >
> > This patch works around the problem by scanning the MTRRs at
> > boot and figuring out whether the current end_pfn value (setup
> > by early e820 code) goes beyond the highest WB MTRR range, and
> > if so, trimming it to match. A fairly obnoxious KERN_WARNING
> > is printed too, letting the user know that not all of their
> > memory is available due to a likely BIOS bug.
> >
> > Something similar could be done on i386 if needed, but the boot
> > ordering would be slightly different, since the MTRR code on i386
> > depends on the boot_cpu_data structure being setup.
> >
> > This patch incorporates the feedback from Eric and Andi:
> > - use MAX_VAR_RANGES instead of NUM_VAR_RANGES
> > - move array declaration to header file as an extern
> > - add command line disable option "disable_mtrr_trim"
> > - don't run the trim code if the MTRR default type is cacheable
> > - don't run the trim code on non-Intel machines
> >
> > Justin, feel free to test again if you have time and add your
> > "Tested-by" signoff.
> >
> > Andi, as for large pages, do you think this is ok as is, or should
> > I trim a larger granularity? If so, what granularity?
> >
> > Signed-off-by: Jesse Barnes <jesse.barnes@intel.com>
> >
> > Thanks,
> > Jesse
>
> NAK.
>
> for AMD Rev F Opteron later CPU, BIOS will not set WB in MTRR for 4G
> above mem.
>
> This patch will get rid of those RAM.
Yeah, Eric already mentioned that. I'll rework it to only run on Intel
CPUs per Eric's last mail.
Thanks,
Jesse
next prev parent reply other threads:[~2007-06-21 19:57 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-07 22:30 [PATCH] trim memory not covered by WB MTRRs Jesse Barnes
2007-06-07 22:50 ` Justin Piszcz
2007-06-07 22:53 ` Justin Piszcz
2007-06-07 23:00 ` Justin Piszcz
2007-06-08 8:20 ` Justin Piszcz
2007-06-12 14:50 ` Pavel Machek
2007-06-12 15:29 ` Jesse Barnes
2007-06-12 15:48 ` Andi Kleen
2007-06-12 21:30 ` Pavel Machek
2007-06-12 21:31 ` Justin Piszcz
2007-06-12 21:38 ` Ray Lee
2007-06-12 21:55 ` Pavel Machek
2007-06-13 0:25 ` Ray Lee
2007-06-13 8:22 ` Pavel Machek
2007-06-14 19:38 ` Pim Zandbergen
2007-06-14 20:26 ` Justin Piszcz
2007-06-14 21:18 ` Jesse Barnes
2007-06-14 21:21 ` Justin Piszcz
2007-06-14 21:26 ` Jesse Barnes
2007-06-15 10:21 ` Pim Zandbergen
2007-06-15 16:20 ` Jesse Barnes
2007-06-21 14:24 ` Pim Zandbergen
2007-06-21 14:28 ` Justin Piszcz
2007-06-25 16:31 ` Pim Zandbergen
2007-06-25 16:34 ` Justin Piszcz
2007-06-15 10:17 ` Pim Zandbergen
2007-06-15 10:34 ` Justin Piszcz
2007-06-15 17:28 ` Jesse Barnes
2007-06-20 13:55 ` Pim Zandbergen
2007-06-21 19:40 ` Yinghai Lu
2007-06-21 19:56 ` Jesse Barnes [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-06-25 21:34 Jesse Barnes
2007-06-25 21:45 ` Justin Piszcz
2007-06-25 22:01 ` Andrew Morton
2007-06-25 22:05 ` Jesse Barnes
2007-06-25 22:29 ` Justin Piszcz
2007-06-25 23:34 ` Andi Kleen
2007-06-25 23:36 ` Jesse Barnes
2007-06-26 0:54 ` Eric W. Biederman
2007-06-26 3:29 ` Jesse Barnes
2007-06-26 3:30 ` Jesse Barnes
2007-06-26 15:03 ` Andi Kleen
2007-06-26 15:07 ` Jesse Barnes
2007-06-26 15:18 ` Jesse Barnes
2007-06-26 15:39 ` Andi Kleen
2007-06-26 15:54 ` Yinghai Lu
2007-06-26 16:06 ` Eric W. Biederman
2007-06-26 17:38 ` Andi Kleen
2007-06-26 18:55 ` Yinghai Lu
2007-06-26 15:02 ` Andi Kleen
2007-06-26 15:38 ` Jesse Barnes
2007-06-27 10:44 ` Pim Zandbergen
2007-06-27 11:22 ` Andi Kleen
2007-06-27 11:40 ` Pim Zandbergen
2007-06-27 11:44 ` Justin Piszcz
2007-06-27 14:22 ` Mauro Giachero
2007-06-27 15:04 ` Jesse Barnes
2007-06-27 16:00 ` Pim Zandbergen
2007-06-27 16:07 ` Jesse Barnes
2007-06-27 16:22 ` Jesse Barnes
2007-06-27 17:02 ` Pim Zandbergen
2007-06-27 17:06 ` Jesse Barnes
2007-06-27 17:17 ` Pim Zandbergen
2007-07-05 12:12 ` Pavel Machek
2007-07-05 12:16 ` Justin Piszcz
[not found] <8tyOc-8f0-17@gated-at.bofh.it>
2007-06-13 6:52 ` Bodo Eggert
2007-06-13 16:19 ` Dave Jones
[not found] <fa.i7vJP3lxWAlyOLjcsqOWPKlixD8@ifi.uio.no>
[not found] ` <fa.3ijVoClbWNHWrMhDABWjNPxp+wo@ifi.uio.no>
[not found] ` <fa.ZqgSvRGj/scOmd0AwnU6e21Gcwc@ifi.uio.no>
[not found] ` <fa.oNsjw768fkDpx3oef91fjAQs1Iw@ifi.uio.no>
[not found] ` <fa.x8ZCt4n0yXI1llhRq4wfjNfqK4w@ifi.uio.no>
2007-06-08 1:57 ` Robert Hancock
2007-06-06 19:29 Jesse Barnes
2007-06-06 20:26 ` Justin Piszcz
2007-06-06 20:28 ` Jesse Barnes
2007-06-06 20:31 ` Jesse Barnes
2007-06-06 20:37 ` Justin Piszcz
2007-06-06 20:50 ` Jesse Barnes
2007-06-06 21:26 ` Justin Piszcz
2007-06-06 21:53 ` Justin Piszcz
2007-06-06 22:03 ` Justin Piszcz
2007-06-06 22:05 ` Jesse Barnes
2007-06-06 22:07 ` Justin Piszcz
2007-06-06 22:13 ` Justin Piszcz
2007-06-06 22:24 ` Jesse Barnes
2007-06-06 22:26 ` Justin Piszcz
2007-06-06 22:28 ` Jesse Barnes
2007-06-06 22:31 ` Justin Piszcz
2007-06-06 22:35 ` Justin Piszcz
2007-06-06 22:37 ` Randy Dunlap
2007-06-06 22:46 ` Justin Piszcz
2007-06-06 22:54 ` Justin Piszcz
2007-06-06 23:11 ` Randy Dunlap
2007-06-06 23:15 ` Justin Piszcz
2007-06-06 23:34 ` Jesse Barnes
2007-06-07 8:10 ` Justin Piszcz
2007-06-06 22:39 ` Justin Piszcz
2007-06-06 22:57 ` Justin Piszcz
2007-06-06 23:20 ` Jesse Barnes
2007-06-06 23:24 ` Justin Piszcz
2007-06-06 23:27 ` Jesse Barnes
2007-06-07 8:51 ` Andi Kleen
2007-06-07 8:53 ` Justin Piszcz
2007-06-07 9:55 ` Satyam Sharma
2007-06-07 17:33 ` Jesse Barnes
2007-06-07 7:45 ` Eric W. Biederman
2007-06-07 17:30 ` Jesse Barnes
2007-06-08 23:13 ` Eric W. Biederman
2007-06-12 15:39 ` Jesse Barnes
2007-06-07 8:16 ` Andi Kleen
2007-06-07 17:35 ` Jesse Barnes
2007-06-07 17:40 ` Justin Piszcz
2007-06-07 14:41 ` Pavel Machek
2007-06-08 0:20 ` Andrew Morton
2007-06-08 1:33 ` Jesse Barnes
2007-06-08 21:15 ` Andrew Morton
2007-06-08 21:28 ` Jesse Barnes
2007-06-13 1:11 ` Eric W. Biederman
2007-06-13 2:29 ` Jesse Barnes
2007-06-13 22:19 ` Eric W. Biederman
2007-06-20 11:22 ` Helge Hafting
2007-06-20 14:37 ` Andi Kleen
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=200706211256.12551.jesse.barnes@intel.com \
--to=jesse.barnes@intel.com \
--cc=andi@firstfloor.org \
--cc=ebiederm@xmission.com \
--cc=jpiszcz@lucidpixels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=yhlu.kernel@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).