From: Borislav Petkov <bp@alien8.de> To: Ingo Molnar <mingo@kernel.org> Cc: X86-ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org> Subject: [PATCH 07/18] x86/mm: Enhance MTRR checks in kernel mapping helpers Date: Tue, 26 May 2015 10:28:10 +0200 Message-ID: <1432628901-18044-8-git-send-email-bp@alien8.de> (raw) In-Reply-To: <1432628901-18044-1-git-send-email-bp@alien8.de> From: Toshi Kani <toshi.kani@hp.com> This patch adds the argument 'uniform' to mtrr_type_lookup(), which gets set to 1 when a given range is covered uniformly by MTRRs, i.e. the range is fully covered by a single MTRR entry or the default type. Change pud_set_huge() and pmd_set_huge() to honor the 'uniform' flag to see if it is safe to create a huge page mapping in the range. This allows them to create a huge page mapping in a range covered by a single MTRR entry of any memory type. It also detects a non-optimal request properly. They continue to check with the WB type since it does not effectively change the uniform mapping even if a request spans multiple MTRR entries. pmd_set_huge() logs a warning message to a non-optimal request so that driver writers will be aware of such a case. Drivers should make a mapping request aligned to a single MTRR entry when the range is covered by MTRRs. Signed-off-by: Toshi Kani <toshi.kani@hp.com> Cc: dave.hansen@intel.com Cc: Elliott@hp.com Cc: pebolle@tiscali.nl Cc: Luis R. Rodriguez <mcgrof@suse.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Cc: linux-mm <linux-mm@kvack.org> Cc: x86-ml <x86@kernel.org> Cc: lkml <linux-kernel@vger.kernel.org> Link: http://lkml.kernel.org/r/1431714237-880-7-git-send-email-toshi.kani@hp.com [ Realign, flesh out comments, improve warning message. ] Signed-off-by: Borislav Petkov <bp@suse.de> --- arch/x86/include/asm/mtrr.h | 4 ++-- arch/x86/kernel/cpu/mtrr/generic.c | 40 ++++++++++++++++++++++++++++---------- arch/x86/mm/pat.c | 4 ++-- arch/x86/mm/pgtable.c | 38 +++++++++++++++++++++++------------- 4 files changed, 58 insertions(+), 28 deletions(-) diff --git a/arch/x86/include/asm/mtrr.h b/arch/x86/include/asm/mtrr.h index bb03a547c1ab..a31759e1edd9 100644 --- a/arch/x86/include/asm/mtrr.h +++ b/arch/x86/include/asm/mtrr.h @@ -31,7 +31,7 @@ * arch_phys_wc_add and arch_phys_wc_del. */ # ifdef CONFIG_MTRR -extern u8 mtrr_type_lookup(u64 addr, u64 end); +extern u8 mtrr_type_lookup(u64 addr, u64 end, u8 *uniform); extern void mtrr_save_fixed_ranges(void *); extern void mtrr_save_state(void); extern int mtrr_add(unsigned long base, unsigned long size, @@ -50,7 +50,7 @@ extern int mtrr_trim_uncached_memory(unsigned long end_pfn); extern int amd_special_default_mtrr(void); extern int phys_wc_to_mtrr_index(int handle); # else -static inline u8 mtrr_type_lookup(u64 addr, u64 end) +static inline u8 mtrr_type_lookup(u64 addr, u64 end, u8 *uniform) { /* * Return no-MTRRs: diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c index e51100c49eea..f782d9b62cb3 100644 --- a/arch/x86/kernel/cpu/mtrr/generic.c +++ b/arch/x86/kernel/cpu/mtrr/generic.c @@ -147,19 +147,24 @@ static u8 mtrr_type_lookup_fixed(u64 start, u64 end) * Return Value: * MTRR_TYPE_(type) - Matched memory type or default memory type (unmatched) * - * Output Argument: + * Output Arguments: * repeat - Set to 1 when [start:end] spanned across MTRR range and type * returned corresponds only to [start:*partial_end]. Caller has * to lookup again for [*partial_end:end]. + * + * uniform - Set to 1 when an MTRR covers the region uniformly, i.e. the + * region is fully covered by a single MTRR entry or the default + * type. */ static u8 mtrr_type_lookup_variable(u64 start, u64 end, u64 *partial_end, - int *repeat) + int *repeat, u8 *uniform) { int i; u64 base, mask; u8 prev_match, curr_match; *repeat = 0; + *uniform = 1; /* Make end inclusive instead of exclusive */ end--; @@ -214,6 +219,7 @@ static u8 mtrr_type_lookup_variable(u64 start, u64 end, u64 *partial_end, end = *partial_end - 1; /* end is inclusive */ *repeat = 1; + *uniform = 0; } if ((start & mask) != (base & mask)) @@ -225,6 +231,7 @@ static u8 mtrr_type_lookup_variable(u64 start, u64 end, u64 *partial_end, continue; } + *uniform = 0; if (check_type_overlap(&prev_match, &curr_match)) return curr_match; } @@ -241,10 +248,15 @@ static u8 mtrr_type_lookup_variable(u64 start, u64 end, u64 *partial_end, * Return Values: * MTRR_TYPE_(type) - The effective MTRR type for the region * MTRR_TYPE_INVALID - MTRR is disabled + * + * Output Argument: + * uniform - Set to 1 when an MTRR covers the region uniformly, i.e. the + * region is fully covered by a single MTRR entry or the default + * type. */ -u8 mtrr_type_lookup(u64 start, u64 end) +u8 mtrr_type_lookup(u64 start, u64 end, u8 *uniform) { - u8 type, prev_type; + u8 type, prev_type, is_uniform = 1, dummy; int repeat; u64 partial_end; @@ -260,14 +272,18 @@ u8 mtrr_type_lookup(u64 start, u64 end) */ if ((start < 0x100000) && (mtrr_state.have_fixed) && - (mtrr_state.enabled & MTRR_STATE_MTRR_FIXED_ENABLED)) - return mtrr_type_lookup_fixed(start, end); + (mtrr_state.enabled & MTRR_STATE_MTRR_FIXED_ENABLED)) { + is_uniform = 0; + type = mtrr_type_lookup_fixed(start, end); + goto out; + } /* * Look up the variable ranges. Look of multiple ranges matching * this address and pick type as per MTRR precedence. */ - type = mtrr_type_lookup_variable(start, end, &partial_end, &repeat); + type = mtrr_type_lookup_variable(start, end, &partial_end, + &repeat, &is_uniform); /* * Common path is with repeat = 0. @@ -278,15 +294,19 @@ u8 mtrr_type_lookup(u64 start, u64 end) while (repeat) { prev_type = type; start = partial_end; - type = mtrr_type_lookup_variable(start, end, &partial_end, &repeat); + is_uniform = 0; + type = mtrr_type_lookup_variable(start, end, &partial_end, + &repeat, &dummy); if (check_type_overlap(&prev_type, &type)) - return type; + goto out; } if (mtrr_tom2 && (start >= (1ULL<<32)) && (end < mtrr_tom2)) - return MTRR_TYPE_WRBACK; + type = MTRR_TYPE_WRBACK; +out: + *uniform = is_uniform; return type; } diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 35af6771a95a..372ad422c2c3 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -267,9 +267,9 @@ static unsigned long pat_x_mtrr_type(u64 start, u64 end, * request is for WB. */ if (req_type == _PAGE_CACHE_MODE_WB) { - u8 mtrr_type; + u8 mtrr_type, uniform; - mtrr_type = mtrr_type_lookup(start, end); + mtrr_type = mtrr_type_lookup(start, end, &uniform); if (mtrr_type != MTRR_TYPE_WRBACK) return _PAGE_CACHE_MODE_UC_MINUS; diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index c30f9819786b..fb0a9dd1d6e4 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -566,19 +566,28 @@ void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys, /** * pud_set_huge - setup kernel PUD mapping * - * MTRR can override PAT memory types with 4KiB granularity. Therefore, - * this function does not set up a huge page when the range is covered - * by a non-WB type of MTRR. MTRR_TYPE_INVALID indicates that MTRR are - * disabled. + * MTRRs can override PAT memory types with 4KiB granularity. Therefore, this + * function sets up a huge page only if any of the following conditions are met: + * + * - MTRRs are disabled, or + * + * - MTRRs are enabled and the range is completely covered by a single MTRR, or + * + * - MTRRs are enabled and the corresponding MTRR memory type is WB, which + * has no effect on the requested PAT memory type. + * + * Callers should try to decrease page size (1GB -> 2MB -> 4K) if the bigger + * page mapping attempt fails. * * Returns 1 on success and 0 on failure. */ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot) { - u8 mtrr; + u8 mtrr, uniform; - mtrr = mtrr_type_lookup(addr, addr + PUD_SIZE); - if ((mtrr != MTRR_TYPE_WRBACK) && (mtrr != MTRR_TYPE_INVALID)) + mtrr = mtrr_type_lookup(addr, addr + PUD_SIZE, &uniform); + if ((mtrr != MTRR_TYPE_INVALID) && (!uniform) && + (mtrr != MTRR_TYPE_WRBACK)) return 0; prot = pgprot_4k_2_large(prot); @@ -593,20 +602,21 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot) /** * pmd_set_huge - setup kernel PMD mapping * - * MTRR can override PAT memory types with 4KiB granularity. Therefore, - * this function does not set up a huge page when the range is covered - * by a non-WB type of MTRR. MTRR_TYPE_INVALID indicates that MTRR are - * disabled. + * See text over pud_set_huge() above. * * Returns 1 on success and 0 on failure. */ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) { - u8 mtrr; + u8 mtrr, uniform; - mtrr = mtrr_type_lookup(addr, addr + PMD_SIZE); - if ((mtrr != MTRR_TYPE_WRBACK) && (mtrr != MTRR_TYPE_INVALID)) + mtrr = mtrr_type_lookup(addr, addr + PMD_SIZE, &uniform); + if ((mtrr != MTRR_TYPE_INVALID) && (!uniform) && + (mtrr != MTRR_TYPE_WRBACK)) { + pr_warn_once("%s: Cannot satisfy [mem %#010llx-%#010llx] with a huge-page mapping due to MTRR override.\n", + __func__, addr, addr + PMD_SIZE); return 0; + } prot = pgprot_4k_2_large(prot); -- 1.9.0.258.g00eda23
next prev parent reply index Thread overview: 400+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-05-26 8:28 [PATCH 00/18] tip queue 2015-05-26 Borislav Petkov 2015-05-26 8:28 ` [PATCH 01/18] x86/kconfig: Simplify conditions for HAVE_ARCH_HUGE_VMAP Borislav Petkov 2015-05-27 14:17 ` [tip:x86/mm] x86/mm/kconfig: " tip-bot for Toshi Kani 2015-05-26 8:28 ` [PATCH 02/18] x86/mtrr: Fix MTRR lookup to handle an inclusive entry Borislav Petkov 2015-05-27 14:18 ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani 2015-05-26 8:28 ` [PATCH 03/18] x86/mtrr: Fix MTRR state checks in mtrr_type_lookup() Borislav Petkov 2015-05-27 14:18 ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani 2015-05-26 8:28 ` [PATCH 04/18] x86/mtrr: Use symbolic define as a retval for disabled MTRRs Borislav Petkov 2015-05-27 14:18 ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani 2015-05-26 8:28 ` [PATCH 05/18] x86/mtrr: Clean up mtrr_type_lookup() Borislav Petkov 2015-05-27 14:19 ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Toshi Kani 2015-07-31 13:18 ` Peter Zijlstra 2015-07-31 14:44 ` Borislav Petkov 2015-07-31 15:08 ` Peter Zijlstra 2015-07-31 15:27 ` Borislav Petkov 2015-08-01 14:28 ` Luis R. Rodriguez 2015-08-01 16:33 ` Borislav Petkov 2015-08-01 16:39 ` Linus Torvalds 2015-08-01 16:49 ` Borislav Petkov 2015-08-01 17:03 ` Linus Torvalds 2015-05-26 8:28 ` [PATCH 06/18] x86/process: Drop repeated word from comment Borislav Petkov 2015-05-27 14:16 ` [tip:sched/core] sched/x86: Drop repeated word from mwait_idle() comment tip-bot for Huang Rui 2015-05-26 8:28 ` Borislav Petkov [this message] 2015-05-27 14:19 ` [tip:x86/mm] x86/mm/mtrr: Enhance MTRR checks in kernel mapping helpers tip-bot for Toshi Kani 2015-05-26 8:28 ` [PATCH 08/18] x86/mm/pat: Convert to pr_* usage Borislav Petkov 2015-05-27 14:19 ` [tip:x86/mm] x86/mm/pat: Convert to pr_*() usage tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 09/18] x86: Document Write Combining MTRR type effects on PAT / non-PAT pages Borislav Petkov 2015-05-27 14:19 ` [tip:x86/mm] x86/mm/mtrr, pat: " tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 10/18] x86/mtrr: Avoid ifdeffery with phys_wc_to_mtrr_index() Borislav Petkov 2015-05-27 14:20 ` [tip:x86/mm] x86/mm/mtrr: Avoid #ifdeffery " tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 11/18] x86/mtrr: Generalize runtime disabling of MTRRs Borislav Petkov 2015-05-27 14:20 ` [tip:x86/mm] x86/mm/mtrr: " tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 12/18] x86/mm/pat: Wrap pat_enabled Borislav Petkov 2015-05-27 14:20 ` [tip:x86/mm] x86/mm/pat: Wrap pat_enabled into a function API tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 13/18] x86/mm/pat: Export pat_enabled() Borislav Petkov 2015-05-27 14:21 ` [tip:x86/mm] " tip-bot for Luis R. Rodriguez 2015-05-26 8:28 ` [PATCH 14/18] x86/cpu: Strip any /proc/cpuinfo model name field whitespace Borislav Petkov 2015-05-27 14:16 ` [tip:x86/cpu] x86/cpu: Strip any /proc/ cpuinfo " tip-bot for Prarit Bhargava 2015-05-27 17:07 ` Joe Perches 2015-05-27 19:06 ` Borislav Petkov 2015-05-27 19:16 ` Joe Perches 2015-05-28 11:27 ` Prarit Bhargava 2015-05-28 11:32 ` Borislav Petkov 2015-05-28 12:58 ` Borislav Petkov 2015-05-28 16:57 ` H. Peter Anvin 2015-05-28 18:33 ` Borislav Petkov 2015-05-28 20:39 ` H. Peter Anvin 2015-05-26 8:28 ` [PATCH 15/18] x86/documentation: Move kernel-stacks doc one level up Borislav Petkov 2015-05-27 14:17 ` [tip:x86/debug] x86/Documentation: " tip-bot for Borislav Petkov 2015-05-26 8:28 ` [PATCH 16/18] x86/documentation: Remove STACKFAULT_STACK bulletpoint Borislav Petkov 2015-05-27 14:17 ` [tip:x86/debug] x86/Documentation: " tip-bot for Borislav Petkov 2015-05-26 8:28 ` [PATCH 17/18] x86/documentation: Adapt Ingo's explanation on printing backtraces Borislav Petkov 2015-05-26 8:28 ` [PATCH 18/18] x86/mce: Fix monarch timeout setting through the mce= cmdline option Borislav Petkov 2015-06-07 17:39 ` [tip:x86/core] " tip-bot for Xie XiuQi -- strict thread matches above, loose matches on Subject: below -- 2015-05-20 11:22 [PATCH] mce: fix fail to set 'monarchtimeout' via boot option Xie XiuQi 2015-05-20 17:43 ` Borislav Petkov 2015-05-21 1:00 ` Xie XiuQi 2015-05-19 15:43 [PATCH] x86, cpuinfo x86_model_id whitespace cleanup Prarit Bhargava 2015-05-19 16:56 ` Borislav Petkov 2015-05-19 17:25 ` Brian Gerst 2015-05-19 18:13 ` Borislav Petkov 2015-05-19 18:44 ` Andy Lutomirski 2015-05-19 19:22 ` Borislav Petkov 2015-05-19 20:16 ` Andy Lutomirski 2015-05-19 20:26 ` Joe Perches 2015-05-19 20:28 ` Joe Perches 2015-05-19 20:31 ` Borislav Petkov 2015-05-19 22:17 ` Prarit Bhargava 2015-05-27 17:18 ` H. Peter Anvin 2015-05-20 6:34 ` Ingo Molnar 2015-05-20 10:15 ` Prarit Bhargava 2015-06-02 8:42 ` [tip:x86/cpu] x86/cpu: Trim model ID whitespace tip-bot for Borislav Petkov 2015-05-19 8:01 [RFC PATCH 0/4] x86, mwaitt: introduce AMD mwaitt support Huang Rui 2015-05-19 8:01 ` [RFC PATCH 1/4] x86, mwaitt: add monitorx and mwaitx instruction Huang Rui 2015-05-19 11:29 ` Borislav Petkov 2015-05-21 8:54 ` Huang Rui 2015-05-21 9:35 ` Borislav Petkov 2015-05-19 8:01 ` [RFC PATCH 2/4] x86, mwaitt: introduce mwaitx idle with a configurable timer Huang Rui 2015-05-19 11:31 ` Borislav Petkov 2015-05-20 8:55 ` Ingo Molnar 2015-05-20 9:12 ` Borislav Petkov 2015-05-20 10:22 ` Ingo Molnar 2015-05-20 10:50 ` Borislav Petkov 2015-05-20 11:11 ` Ingo Molnar 2015-05-20 11:21 ` Borislav Petkov 2015-05-20 11:41 ` Ingo Molnar 2015-05-20 13:20 ` Thomas Gleixner 2015-05-20 14:51 ` Ingo Molnar 2015-05-20 15:55 ` One Thousand Gnomes 2015-05-20 16:07 ` Borislav Petkov 2015-05-20 19:12 ` Thomas Gleixner 2015-05-20 20:15 ` Borislav Petkov 2015-05-21 14:56 ` Huang Rui 2015-05-21 16:02 ` Borislav Petkov 2015-05-21 16:45 ` Andy Lutomirski 2015-05-21 17:08 ` Borislav Petkov 2015-05-21 17:12 ` Andy Lutomirski 2015-05-21 19:30 ` Thomas Gleixner 2015-05-21 14:32 ` Huang Rui 2015-05-25 2:42 ` Huang Rui 2015-05-25 10:43 ` Ingo Molnar 2015-05-21 14:15 ` Huang Rui 2015-05-21 13:26 ` Huang Rui 2015-05-21 1:34 ` Andy Lutomirski 2015-05-21 5:48 ` Andy Lutomirski 2015-05-27 1:01 ` Andy Lutomirski 2015-05-27 11:30 ` Borislav Petkov 2015-05-21 9:41 ` Thomas Gleixner 2015-05-19 8:01 ` [RFC PATCH 3/4] x86, mwaitt: add document to describe mwaitx Huang Rui 2015-05-19 8:01 ` [RFC PATCH 4/4] x86, mwait: fix redundant comment Huang Rui 2015-05-19 9:40 ` Borislav Petkov 2015-05-19 8:57 ` [RFC PATCH 0/4] x86, mwaitt: introduce AMD mwaitt support Borislav Petkov 2015-05-19 9:44 ` Huang Rui 2015-05-18 16:34 [PATCH v4 0/3] Compile-time stack frame pointer validation Josh Poimboeuf 2015-05-18 16:34 ` [PATCH v4 1/3] x86, stackvalidate: " Josh Poimboeuf 2015-05-18 16:34 ` [PATCH v4 2/3] x86: Make push/pop CFI macros arch-independent Josh Poimboeuf 2015-05-18 16:34 ` [PATCH v4 3/3] x86, stackvalidate: Add asm frame pointer setup macros Josh Poimboeuf 2015-05-20 10:33 ` [PATCH v4 0/3] Compile-time stack frame pointer validation Ingo Molnar 2015-05-20 14:13 ` Josh Poimboeuf 2015-05-20 14:48 ` Ingo Molnar 2015-05-20 15:51 ` Josh Poimboeuf 2015-05-20 16:09 ` Josh Poimboeuf 2015-05-20 16:03 ` Andy Lutomirski 2015-05-20 16:25 ` Josh Poimboeuf 2015-05-20 16:39 ` Andy Lutomirski 2015-05-20 16:52 ` Borislav Petkov 2015-05-21 10:16 ` Ingo Molnar 2015-05-21 10:47 ` Borislav Petkov 2015-05-21 11:11 ` Ingo Molnar 2015-05-21 15:49 ` [PATCH 1/3] x86/documentation: Move kernel-stacks doc one level up Borislav Petkov 2015-05-21 15:49 ` [PATCH 2/3] x86/documentation: Remove STACKFAULT_STACK bulletpoint Borislav Petkov 2015-05-21 15:49 ` [PATCH 3/3] x86/documentation: Adapt Ingo's explanation on printing backtraces Borislav Petkov 2015-05-27 14:17 ` [tip:x86/debug] x86/Documentation: Adapt Ingo' s " tip-bot for Borislav Petkov 2015-05-20 16:59 ` [PATCH v4 0/3] Compile-time stack frame pointer validation Linus Torvalds 2015-05-20 17:20 ` Josh Poimboeuf 2015-05-21 10:27 ` Ingo Molnar 2015-05-21 7:52 ` Ingo Molnar 2015-05-21 12:12 ` Ingo Molnar 2015-05-26 23:06 ` Andi Kleen 2015-05-20 17:27 ` Peter Zijlstra 2015-05-20 19:10 ` Jiri Kosina 2015-05-21 20:54 ` Josh Poimboeuf 2015-05-21 21:53 ` Andy Lutomirski 2015-05-22 14:53 ` Josh Poimboeuf 2015-05-21 22:01 ` Borislav Petkov 2015-05-22 14:32 ` Josh Poimboeuf 2015-05-22 21:18 ` Jiri Kosina 2015-05-22 22:22 ` Josh Poimboeuf 2015-05-23 8:37 ` Borislav Petkov 2015-05-15 18:23 [PATCH v5 0/6] mtrr, mm, x86: Enhance MTRR checks for huge I/O mapping Toshi Kani 2015-05-15 18:23 ` [PATCH v5 1/6] mm, x86: Simplify conditions of HAVE_ARCH_HUGE_VMAP Toshi Kani 2015-05-17 8:30 ` Borislav Petkov 2015-05-15 18:23 ` [PATCH v5 2/6] mtrr, x86: Fix MTRR lookup to handle inclusive entry Toshi Kani 2015-05-15 18:23 ` [PATCH v5 3/6] mtrr, x86: Fix MTRR state checks in mtrr_type_lookup() Toshi Kani 2015-05-15 18:23 ` [PATCH v5 4/6] mtrr, x86: Define MTRR_TYPE_INVALID for mtrr_type_lookup() Toshi Kani 2015-05-15 18:23 ` [PATCH v5 5/6] mtrr, x86: Clean up mtrr_type_lookup() Toshi Kani 2015-05-15 18:23 ` [PATCH v5 6/6] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping Toshi Kani 2015-05-18 13:33 ` Borislav Petkov 2015-05-18 17:22 ` Toshi Kani 2015-05-18 19:01 ` Borislav Petkov 2015-05-18 19:31 ` Toshi Kani 2015-05-18 20:01 ` Borislav Petkov 2015-05-18 20:21 ` Toshi Kani 2015-05-18 20:51 ` Borislav Petkov 2015-05-18 21:53 ` Toshi Kani 2015-05-19 11:44 ` Borislav Petkov 2015-05-19 13:23 ` Borislav Petkov 2015-05-19 13:47 ` Toshi Kani 2015-05-20 11:55 ` Ingo Molnar 2015-05-20 14:34 ` Toshi Kani 2015-05-20 15:01 ` Ingo Molnar 2015-05-20 15:02 ` Toshi Kani 2015-05-20 16:04 ` Borislav Petkov 2015-05-20 15:46 ` Toshi Kani 2015-05-11 8:15 [0/8] tip queue 2015-05-11 Borislav Petkov 2015-05-11 8:15 ` [PATCH] x86/alternatives: Switch AMD F15h and later to the P6 NOPs Borislav Petkov 2015-05-11 12:44 ` [tip:x86/asm] " tip-bot for Borislav Petkov 2015-05-11 8:15 ` [PATCH] x86/cpu/microcode: Zap changelog Borislav Petkov 2015-05-11 12:45 ` [tip:x86/microcode] " tip-bot for Borislav Petkov 2015-05-11 8:15 ` [PATCH] x86/kaslr: Fix typo in KASLR_FLAG documentation Borislav Petkov 2015-05-11 12:45 ` [tip:x86/boot] x86/kaslr: Fix typo in the " tip-bot for Miroslav Benes 2015-05-11 8:15 ` [PATCH 1/5] x86/mm: Do not flush last cacheline twice in clflush_cache_range() Borislav Petkov 2015-05-11 12:45 ` [tip:x86/mm] " tip-bot for Ross Zwisler 2015-05-11 8:15 ` [PATCH] x86/vdso: Add arch/x86/include/uapi include path to HOST_EXTRACFLAGS Borislav Petkov 2015-05-11 8:15 ` [PATCH 2/5] x86/mm: Add kerneldoc comments for pcommit_sfence() Borislav Petkov 2015-05-11 12:45 ` [tip:x86/mm] " tip-bot for Ross Zwisler 2015-05-11 8:15 ` [PATCH 3/5] x86/MTRR: Remove wrong address check in __mtrr_type_lookup() Borislav Petkov 2015-05-11 12:46 ` [tip:x86/mm] x86/mm/mtrr: Remove incorrect " tip-bot for Toshi Kani 2015-05-11 8:15 ` [PATCH 4/5] x86/mm: Add ioremap_uc() helper to map memory uncacheable (not UC-) Borislav Petkov 2015-05-11 12:46 ` [tip:x86/mm] " tip-bot for Luis R. Rodriguez 2015-05-06 16:54 tools: Consolidate types.h Oleg Nesterov 2015-05-06 17:17 ` Borislav Petkov 2015-05-06 17:30 ` Oleg Nesterov 2015-05-06 17:37 ` Borislav Petkov 2015-05-07 2:53 ` Andy Lutomirski 2015-05-07 16:58 ` [PATCH 0/1] x86/vdso: add -Iarch/x86/include/uapi into HOST_EXTRACFLAGS Oleg Nesterov 2015-05-07 16:58 ` [PATCH 1/1] " Oleg Nesterov 2015-05-07 19:46 ` Andy Lutomirski 2015-05-07 21:55 ` Borislav Petkov 2015-05-11 12:44 ` [tip:x86/urgent] x86/vdso: Fix 'make bzImage' on older distros tip-bot for Oleg Nesterov 2015-04-30 20:25 [PATCH v5 0/6] x86: address drivers that do not work with PAT Luis R. Rodriguez 2015-04-30 20:25 ` [PATCH v5 1/6] x86/mm/pat: use pr_info() and friends Luis R. Rodriguez 2015-05-04 14:58 ` Borislav Petkov 2015-05-07 3:36 ` Elliott, Robert (Server Storage) 2015-05-14 15:55 ` Luis R. Rodriguez 2015-04-30 20:25 ` [PATCH v5 2/6] x86/mm/pat: redefine pat_enabled Luis R. Rodriguez 2015-05-04 15:22 ` Borislav Petkov 2015-05-05 0:42 ` Luis R. Rodriguez 2015-04-30 20:25 ` [PATCH v5 3/6] arch/x86/mm/pat: export pat_enabled() Luis R. Rodriguez 2015-05-04 15:29 ` Borislav Petkov 2015-04-30 20:25 ` [PATCH v5 4/6] ivtv: use arch_phys_wc_add() and require PAT disabled Luis R. Rodriguez 2015-04-30 20:25 ` [PATCH v5 5/6] IB/ipath: add counting for MTRR Luis R. Rodriguez 2015-04-30 20:25 ` [PATCH v5 6/6] IB/ipath: use arch_phys_wc_add() and require PAT disabled Luis R. Rodriguez 2015-04-29 21:44 [PATCH v4 0/6] x86: document and address MTRR corner cases Luis R. Rodriguez 2015-04-29 21:44 ` [PATCH v4 1/6] x86: add ioremap_uc() - force strong UC, PCD=1, PWT=1 Luis R. Rodriguez 2015-04-30 10:18 ` Borislav Petkov 2015-04-29 21:44 ` [PATCH v4 2/6] x86: document WC MTRR effects on PAT / non-PAT pages Luis R. Rodriguez 2015-04-30 22:01 ` Randy Dunlap 2015-05-05 0:45 ` Luis R. Rodriguez 2015-05-05 7:22 ` Borislav Petkov 2015-05-05 7:46 ` Luis R. Rodriguez 2015-05-05 7:53 ` Borislav Petkov 2015-05-05 7:31 ` Luis R. Rodriguez 2015-05-04 12:23 ` Borislav Petkov 2015-05-05 7:35 ` Luis R. Rodriguez 2015-04-29 21:44 ` [PATCH v4 3/6] video: fbdev: atyfb: move framebuffer length fudging to helper Luis R. Rodriguez 2015-04-29 21:44 ` [PATCH v4 4/6] video: fbdev: atyfb: clarify ioremap() base and length used Luis R. Rodriguez 2015-04-29 21:44 ` [PATCH v4 5/6] video: fbdev: atyfb: replace MTRR UC hole with strong UC Luis R. Rodriguez 2015-04-29 21:44 ` [PATCH v4 6/6] video: fbdev: atyfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-05-20 19:53 ` Luis R. Rodriguez 2015-05-20 20:57 ` Luis R. Rodriguez 2015-06-03 23:50 ` [PATCH v4 0/6] x86: document and address MTRR corner cases Luis R. Rodriguez 2015-06-08 23:43 ` Luis R. Rodriguez 2015-06-16 19:31 ` Luis R. Rodriguez 2015-06-19 22:22 ` Luis R. Rodriguez 2015-06-25 1:24 ` Luis R. Rodriguez 2015-06-25 6:59 ` Ingo Molnar 2015-06-25 16:41 ` Luis R. Rodriguez 2015-04-28 22:46 [PATCH v2] x86: Add kerneldoc for pcommit_sfence() Ross Zwisler 2015-04-29 14:23 ` Borislav Petkov 2015-04-28 22:13 [PATCH] x86: improve algorithm in clflush_cache_range Ross Zwisler 2015-04-29 10:28 ` Borislav Petkov 2015-04-22 17:12 [PATCH v4] mtrr: avoid ifdef'ery with phys_wc_to_mtrr_index() Luis R. Rodriguez 2015-04-14 11:35 [PATCH] x86/kaslr: Fix typo in documentation Miroslav Benes 2015-04-14 11:37 ` Borislav Petkov 2015-03-24 22:08 [PATCH v4 0/7] mtrr, mm, x86: Enhance MTRR checks for huge I/O mapping Toshi Kani 2015-03-24 22:08 ` [PATCH v4 1/7] mm, x86: Document return values of mapping funcs Toshi Kani 2015-05-05 11:19 ` Borislav Petkov 2015-05-05 13:46 ` Toshi Kani 2015-05-05 14:19 ` Borislav Petkov 2015-05-05 14:14 ` Toshi Kani 2015-03-24 22:08 ` [PATCH v4 2/7] mtrr, x86: Fix MTRR lookup to handle inclusive entry Toshi Kani 2015-05-05 17:11 ` Borislav Petkov 2015-05-05 17:32 ` Toshi Kani 2015-05-05 18:39 ` Borislav Petkov 2015-05-05 19:31 ` Toshi Kani 2015-05-05 20:09 ` Borislav Petkov 2015-05-05 20:06 ` Toshi Kani 2015-03-24 22:08 ` [PATCH v4 3/7] mtrr, x86: Remove a wrong address check in __mtrr_type_lookup() Toshi Kani 2015-05-06 10:46 ` Borislav Petkov 2015-03-24 22:08 ` [PATCH v4 4/7] mtrr, x86: Fix MTRR state checks in mtrr_type_lookup() Toshi Kani 2015-05-06 11:47 ` Borislav Petkov 2015-05-06 15:23 ` Toshi Kani 2015-05-06 22:39 ` Borislav Petkov 2015-05-06 23:08 ` Toshi Kani 2015-03-24 22:08 ` [PATCH v4 5/7] mtrr, x86: Define MTRR_TYPE_INVALID for mtrr_type_lookup() Toshi Kani 2015-03-24 22:08 ` [PATCH v4 6/7] mtrr, x86: Clean up mtrr_type_lookup() Toshi Kani 2015-05-06 13:41 ` Borislav Petkov 2015-05-06 16:00 ` Toshi Kani 2015-05-06 22:49 ` Borislav Petkov 2015-05-06 23:42 ` Toshi Kani 2015-05-07 7:52 ` Borislav Petkov 2015-05-07 13:45 ` Toshi Kani 2015-03-24 22:08 ` [PATCH v4 7/7] mtrr, mm, x86: Enhance MTRR checks for KVA huge page mapping Toshi Kani 2015-05-09 9:08 ` Borislav Petkov 2015-05-11 19:25 ` Toshi Kani 2015-05-11 20:18 ` Borislav Petkov 2015-05-11 20:38 ` Toshi Kani 2015-05-11 21:42 ` Borislav Petkov 2015-05-11 22:09 ` Toshi Kani 2015-05-12 7:28 ` Borislav Petkov 2015-05-12 14:30 ` Toshi Kani 2015-05-12 16:31 ` Borislav Petkov 2015-05-12 16:57 ` Toshi Kani 2015-03-24 22:43 ` [PATCH v4 0/7] mtrr, mm, x86: Enhance MTRR checks for huge I/O mapping Andrew Morton 2015-04-03 6:33 ` Ingo Molnar 2015-04-03 15:22 ` Toshi Kani 2015-04-27 14:31 ` Toshi Kani 2015-03-20 23:17 [PATCH v1 00/47] mtrr/x86/drivers: bury MTRR Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 01/47] x86: mtrr: annotate mtrr_type_lookup() is only implemented on generic_mtrr_ops Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 02/47] x86: mtrr: generalize run time disabling of MTRR Luis R. Rodriguez 2015-03-25 19:59 ` Konrad Rzeszutek Wilk 2015-03-26 4:38 ` Juergen Gross 2015-03-26 23:35 ` Luis R. Rodriguez 2015-04-02 20:13 ` Bjorn Helgaas 2015-04-02 20:20 ` Luis R. Rodriguez 2015-04-02 20:28 ` Bjorn Helgaas 2015-04-02 21:02 ` Luis R. Rodriguez 2015-04-02 22:09 ` Bjorn Helgaas 2015-04-02 22:12 ` [Xen-devel] " Luis R. Rodriguez 2015-03-27 20:40 ` Toshi Kani 2015-03-27 23:56 ` Luis R. Rodriguez 2015-04-02 21:49 ` Luis R. Rodriguez 2015-04-02 23:52 ` Toshi Kani 2015-04-03 1:08 ` Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 03/47] devres: add devm_ioremap_wc() Luis R. Rodriguez 2015-03-20 23:49 ` Andy Lutomirski 2015-03-25 19:50 ` Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 04/47] pci: add pci_ioremap_wc_bar() Luis R. Rodriguez 2015-03-20 23:50 ` Andy Lutomirski 2015-03-25 20:06 ` Luis R. Rodriguez 2015-03-25 20:03 ` [Xen-devel] " Konrad Rzeszutek Wilk 2015-03-25 20:39 ` Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 05/47] pci: add pci_iomap_wc() variants Luis R. Rodriguez 2015-03-23 17:20 ` Bjorn Helgaas 2015-03-26 3:00 ` Luis R. Rodriguez 2015-04-21 17:52 ` Luis R. Rodriguez 2015-04-21 18:46 ` Michael S. Tsirkin 2015-03-27 19:18 ` Toshi Kani 2015-04-21 19:25 ` Michael S. Tsirkin 2015-04-21 19:27 ` Luis R. Rodriguez 2015-03-25 20:07 ` Konrad Rzeszutek Wilk 2015-03-27 18:40 ` Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 06/47] mtrr: add __arch_phys_wc_add() Luis R. Rodriguez 2015-03-20 23:48 ` Andy Lutomirski 2015-03-27 19:53 ` Luis R. Rodriguez 2015-03-27 19:58 ` Andy Lutomirski 2015-03-27 20:30 ` Luis R. Rodriguez 2015-03-27 21:23 ` Andy Lutomirski 2015-03-27 23:04 ` Luis R. Rodriguez 2015-03-27 23:10 ` Andy Lutomirski 2015-03-27 23:33 ` Luis R. Rodriguez 2015-04-02 20:21 ` Bjorn Helgaas 2015-04-02 20:55 ` Luis R. Rodriguez 2015-04-02 22:35 ` Bjorn Helgaas 2015-04-02 22:54 ` Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 07/47] video: fbdev: atyfb: move framebuffer length fudging to helper Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 08/47] video: fbdev: atyfb: clarify ioremap() base and length used Luis R. Rodriguez 2015-03-20 23:17 ` [PATCH v1 09/47] vidoe: fbdev: atyfb: remove and fix MTRR MMIO "hole" work around Luis R. Rodriguez 2015-03-20 23:52 ` Andy Lutomirski 2015-03-27 20:12 ` Luis R. Rodriguez 2015-03-27 21:21 ` Andy Lutomirski 2015-03-27 23:31 ` Luis R. Rodriguez 2015-03-21 9:15 ` Ville Syrjälä 2015-03-27 8:37 ` Ville Syrjälä 2015-03-27 19:38 ` Luis R. Rodriguez 2015-03-27 19:38 ` Luis R. Rodriguez 2015-03-27 19:43 ` Andy Lutomirski 2015-03-27 19:57 ` Luis R. Rodriguez 2015-03-27 21:56 ` Ville Syrjälä 2015-03-27 22:02 ` Andy Lutomirski 2015-03-28 0:28 ` Luis R. Rodriguez 2015-03-28 12:23 ` Ville Syrjälä 2015-04-01 23:52 ` Luis R. Rodriguez 2015-04-02 0:04 ` Andy Lutomirski 2015-04-02 19:45 ` Luis R. Rodriguez 2015-04-02 19:50 ` Andy Lutomirski 2015-03-28 0:21 ` Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 10/47] video: fbdev: atyfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 11/47] IB/qib: add acounting for MTRR Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 12/47] IB/qib: use arch_phys_wc_add() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 13/47] IB/ipath: add counting for MTRR Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 14/47] IB/ipath: use __arch_phys_wc_add() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 15/47] [media] media: ivtv: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 16/47] fusion: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 17/47] video: fbdev: vesafb: only support MTRR_TYPE_WRCOMB Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 18/47] vidoe: fbdev: vesafb: add missing mtrr_del() for added MTRR Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 19/47] video: fbdev: vesafb: use arch_phys_wc_add() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 20/47] mtrr: avoid ifdef'ery with phys_wc_to_mtrr_index() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 21/47] ethernet: myri10ge: use arch_phys_wc_add() Luis R. Rodriguez 2015-03-21 7:08 ` Hyong-Youb Kim 2015-03-27 20:36 ` Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 22/47] staging: sm750fb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 23/47] staging: xgifb: " Luis R. Rodriguez 2015-04-30 17:40 ` Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 24/47] video: fbdev: arkfb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 25/47] video: fbdev: radeonfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 26/47] video: fbdev: gbefb: add missing mtrr_del() calls Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 27/47] video: fbdev: gbefb: use arch_phys_wc_add() and devm_ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 28/47] video: fbdev: intelfb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 29/47] video: fbdev: matrox: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 30/47] video: fbdev: neofb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 31/47] video: fbdev: s3fb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 32/47] video: fbdev: nvidia: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 33/47] video: fbdev: savagefb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 34/47] video: fbdev: sisfb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 35/47] video: fbdev: aty: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 36/47] video: fbdev: i810: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 37/47] video: fbdev: i740fb: use arch_phys_wc_add() and pci_ioremap_wc_bar() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 38/47] video: fbdev: kyrofb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 39/47] video: fbdev: pm2fb: use arch_phys_wc_add() and ioremap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 40/47] video: fbdev: pm3fb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 41/47] video: fbdev: rivafb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 42/47] video: fbdev: tdfxfb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 43/47] video: fbdev: vt8623fb: use arch_phys_wc_add() and pci_iomap_wc() Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 44/47] video: fbdev: atmel_lcdfb: use ioremap_wc() for framebuffer Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 45/47] video: fbdev: geode gxfb: " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 46/47] video: fbdev: gxt4500: use pci_ioremap_wc_bar() " Luis R. Rodriguez 2015-03-20 23:18 ` [PATCH v1 47/47] mtrr: bury MTRR - unexport mtrr_add() and mtrr_del() Luis R. Rodriguez 2015-03-21 1:08 ` [PATCH v1 00/47] mtrr/x86/drivers: bury MTRR Andy Lutomirski
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=1432628901-18044-8-git-send-email-bp@alien8.de \ --to=bp@alien8.de \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@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
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git