From: Uros Bizjak <ubizjak@gmail.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, Andi Kleen <andi@firstfloor.org>
Subject: [PATCH, x86]: Add selfsnoop support
Date: Fri, 26 Dec 2008 11:49:14 +0100 [thread overview]
Message-ID: <4954B6AA.1060603@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 492 bytes --]
Hello!
This patch ports the patch that implemented selfsnoop support [1] to
2.6.28-git. Unfortunately, the thread about the implementation died at
[2] without any resolution.
The patch works OK on my x86_64, but I don't think this qualifies as a
thorough test...
This is actually Andi Kleen's patch, his signed-off-by: signature is at [1].
[1] http://lkml.indiana.edu/hypermail/linux/kernel/0802.1/1331.html
[2] http://lkml.indiana.edu/hypermail/linux/kernel/0802.1/1891.html
Uros.
[-- Attachment #2: p --]
[-- Type: text/plain, Size: 1241 bytes --]
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
index cfdf8c2..bb6740b 100644
--- a/arch/x86/include/asm/cpufeature.h
+++ b/arch/x86/include/asm/cpufeature.h
@@ -229,6 +229,7 @@ extern const char * const x86_power_flags[32];
#define cpu_has_ds boot_cpu_has(X86_FEATURE_DS)
#define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS)
#define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH)
+#define cpu_has_selfsnoop boot_cpu_has(X86_FEATURE_SELFSNOOP)
#define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS)
#define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES)
#define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON)
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index e89d248..07d0518 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -150,7 +150,7 @@ static void __cpa_flush_all(void *arg)
*/
__flush_tlb_all();
- if (cache && boot_cpu_data.x86_model >= 4)
+ if (cache && boot_cpu_data.x86_model >= 4 && cpu_has_selfsnoop)
wbinvd();
}
@@ -181,7 +181,7 @@ static void cpa_flush_range(unsigned long start, int numpages, int cache)
on_each_cpu(__cpa_flush_range, NULL, 1);
- if (!cache)
+ if (!cache || cpu_has_selfsnoop)
return;
/*
next reply other threads:[~2008-12-26 10:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-26 10:49 Uros Bizjak [this message]
2008-12-26 10:55 ` [PATCH, x86]: Corr: Add selfsnoop support Uros Bizjak
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=4954B6AA.1060603@gmail.com \
--to=ubizjak@gmail.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.