From: Zhenzhong Duan <zhenzhong.duan@oracle.com>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "x86@kernel.org" <x86@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] x86: mtrr: Constrain WB MTRR to max phys mem prior to cleanup
Date: Sat, 29 Sep 2012 10:41:47 +0800 [thread overview]
Message-ID: <50665FEB.6060309@oracle.com> (raw)
In-Reply-To: <1348853876.2229.22.camel@thor>
On 2012-09-29 01:37, Peter Hurley wrote:
> On Sun, 2012-09-09 at 23:54 -0400, zhenzhong.duan wrote:
>> On 2012-09-08 02:40, H. Peter Anvin wrote:
>>> On 09/07/2012 10:44 AM, Peter Hurley wrote:
>>>
>>>> diff --git a/arch/x86/kernel/cpu/mtrr/cleanup.c
>>>> b/arch/x86/kernel/cpu/mtrr/cleanup.c
>>> I really don't like it as it introduces yet another user of max_pfn,
>>> which should be going away. Furthermore, the better question is what
>>> remaining needs there are for MTRR cleanup; historically the reason
>>> was that it prevented the display from being mapped WC via MTRR due to
>>> the MTRR conflict resolution rules favoring UC.
>> For a large memory system, mtrr_cleanup offten fail in most case. Even
>> if it succeed, it often occupy all of MTRR entrys.
>> How was display mapped as WC in above case?
> Without this patch, mtrr_cleanup could not optimize. The original MTRR
> setup from BIOS remained, which left the display as UC (and a lot of log
> spew).
Hi,
I am confused here.
Does HPA means mtrr_cleanup's purpose is to occupy all mtrr entrys and
prevent display setting a WC entry in it?
As page level will do that in current code? If it is, then mtrr_cleanup
could be removed now.
>
>> Why did bios give a lot of space then real mem, for hotplug?
> I assume the reason was for hotplug.
>
> An interesting side note: more recent revisions of this BIOS (rev. A11)
> report one less variable MTRR (so, IA32_MTRRCAP is writable?)
From manual, it's readonly, writing it will lead to #GP.
>
>>> However, the right way to fix that is to use the PAT interfaces, which
>>> doesn't have this drawback -- then MTRR cleanup becomes entirely
>>> superfluous and the problem goes away.
>> Do you mean disable MTRR totally here?
> Well, since PAT entries marked WC override all MTRR settings, whatever
> the BIOS set the variable MTRRs to becomes irrelevant, so not disabled
> but rather ignored.
Oh, I see, WC in page level take precedence. Is the fix already in upstream?
thanks
zduan
next prev parent reply other threads:[~2012-09-29 2:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-07 17:44 Peter Hurley
2012-09-07 18:40 ` H. Peter Anvin
2012-09-10 3:54 ` zhenzhong.duan
2012-09-28 17:37 ` Peter Hurley
2012-09-29 2:41 ` Zhenzhong Duan [this message]
2012-09-29 3:16 ` H. Peter Anvin
2012-09-29 10:46 ` Henrique de Moraes Holschuh
2012-09-29 15:05 ` H. Peter Anvin
2012-09-29 20:11 ` Henrique de Moraes Holschuh
2012-09-29 20:16 ` H. Peter Anvin
2012-09-29 20:17 ` H. Peter Anvin
2012-09-29 21:25 ` Henrique de Moraes Holschuh
-- strict thread matches above, loose matches on Subject: below --
2012-07-24 20:51 Peter Hurley
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=50665FEB.6060309@oracle.com \
--to=zhenzhong.duan@oracle.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peter@hurleysoftware.com \
--cc=tglx@linutronix.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome