From: Dave Jones <davej@redhat.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Rene Herman <rene.herman@keyaccess.nl>,
Mikael Pettersson <mikpe@it.uu.se>,
Yinghai Lu <yhlu.kernel@gmail.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [X86] Add a boot parameter to force-enable PAT
Date: Tue, 20 May 2008 18:56:17 -0400 [thread overview]
Message-ID: <20080520225617.GA19002@redhat.com> (raw)
In-Reply-To: <483353E9.7090001@zytor.com>
On Tue, May 20, 2008 at 03:42:49PM -0700, H. Peter Anvin wrote:
> > Yes, that would be nicer. As to the alias; "nopat" hasn't been in a
> > released kernel yet so should be okay to do away with? It's not like
> > it's in Documentation/kernel-parameters.txt or anything... ;-/
> >
>
> OK, just double-checked... since it's not in Linus we can still change
> it, and as so I'd suggest the pat= option.
Not boot-tested, but it compiles for me..
I also folded in the 'debugpat' option.
Signed-off-by: Dave Jones <davej@redhat.com>
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index e37f456..9f9c2c2 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1478,6 +1478,12 @@ and is between 256 and 4096 characters. It is defined in the file
the specified number of seconds. This is to be used if
your oopses keep scrolling off the screen.
+ pat= [X86] Page attribute table support.
+ off don't use page attribute tables.
+ force enable use of page attribute tables, even if the
+ CPU isn't in the kernel's whitelist.
+ debug output additional debugging information during setup.
+
pcbit= [HW,ISDN]
pcd. [PARIDE]
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index c2e1ce3..8b65f14 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -51,8 +51,15 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
}
#ifdef CONFIG_X86_PAT
+int forcepat;
+
void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
{
+ if (forcepat == 1) {
+ printk(KERN_INFO "Force enabling PAT\n");
+ return;
+ }
+
switch (c->x86_vendor) {
case X86_VENDOR_AMD:
if (c->x86 >= 0xf && c->x86 <= 0x11)
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index e83b770..7429bee 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -25,8 +25,11 @@
#include <asm/mtrr.h>
#include <asm/io.h>
+static int debug_enable;
+
#ifdef CONFIG_X86_PAT
int __read_mostly pat_wc_enabled = 1;
+extern int forcepat;
void __cpuinit pat_disable(char *reason)
{
@@ -34,23 +37,22 @@ void __cpuinit pat_disable(char *reason)
printk(KERN_INFO "%s\n", reason);
}
-static int nopat(char *str)
+static int __init patsetup(char *str)
{
- pat_disable("PAT support disabled.");
+ if (strcmp("force", str) == 0) {
+ forcepat = 1;
+ printk(KERN_INFO "Force enabling PAT\n");
+ }
+ if (strcmp("off", str) == 0)
+ pat_disable("PAT support disabled.");
+ if (strcmp("debug", str) == 0)
+ debug_enable = 1;
return 0;
}
-early_param("nopat", nopat);
+early_param("pat=", patsetup);
#endif
-static int debug_enable;
-static int __init pat_debug_setup(char *str)
-{
- debug_enable = 1;
- return 0;
-}
-__setup("debugpat", pat_debug_setup);
-
#define dprintk(fmt, arg...) \
do { if (debug_enable) printk(KERN_INFO fmt, ##arg); } while (0)
--
http://www.codemonkey.org.uk
next prev parent reply other threads:[~2008-05-21 0:58 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-20 4:09 [X86] Add a boot parameter to force-enable PAT Dave Jones
2008-05-20 5:53 ` Yinghai Lu
2008-05-20 13:23 ` Dave Jones
2008-05-20 14:41 ` Mikael Pettersson
2008-05-20 19:58 ` Dave Jones
2008-05-20 21:49 ` Rene Herman
2008-05-20 22:21 ` H. Peter Anvin
2008-05-20 22:42 ` Rene Herman
2008-05-20 22:42 ` H. Peter Anvin
2008-05-20 22:56 ` Dave Jones [this message]
2008-05-21 1:10 ` Rene Herman
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=20080520225617.GA19002@redhat.com \
--to=davej@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mikpe@it.uu.se \
--cc=mingo@elte.hu \
--cc=rene.herman@keyaccess.nl \
--cc=tglx@linutronix.de \
--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