LKML Archive on lore.kernel.org
 help / color / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Ingo Molnar <mingo@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH 4/5] x86/mm: Add ioremap_uc() helper to map memory uncacheable (not UC-)
Date: Mon, 11 May 2015 10:15:53 +0200
Message-ID: <1431332153-18566-9-git-send-email-bp@alien8.de> (raw)
In-Reply-To: <1431332153-18566-1-git-send-email-bp@alien8.de>

From: "Luis R. Rodriguez" <mcgrof@suse.com>

ioremap_nocache() currently uses UC- by default. Our goal is to
eventually make UC the default. Linux maps UC- to PCD=1, PWT=0 page
attributes on non-PAT systems. Linux maps UC to PCD=1, PWT=1 page
attributes on non-PAT systems. On non-PAT and PAT systems a WC MTRR has
different effects on pages with either of these attributes. In order
to help with a smooth transition its best to enable use of UC (PCD,1,
PWT=1) on a region as that ensures a WC MTRR will have no effect on a
region, this however requires us to have an way to declare a region as
UC and we currently do not have a way to do this.

WC MTRR on non-PAT system with PCD=1, PWT=0 (UC-) yields WC.
WC MTRR on non-PAT system with PCD=1, PWT=1 (UC)  yields UC.

WC MTRR on PAT system with PCD=1, PWT=0 (UC-) yields WC.
WC MTRR on PAT system with PCD=1, PWT=1 (UC)  yields UC.

A flip of the default ioremap_nocache() behaviour from UC- to UC can
therefore regress a memory region from effective memory type WC to UC
if MTRRs are used. Use of MTRRs should be phased out and in the best
case only arch_phys_wc_add() use will remain, even if this happens
arch_phys_wc_add() will have an effect on non-PAT systems and changes to
default ioremap_nocache() behaviour could regress drivers.

Now, ideally we'd use ioremap_nocache() on the regions in which we'd
need uncachable memory types and avoid any MTRRs on those regions. There
are however some restrictions on MTRRs use, such as the requirement
of having the base and size of variable sized MTRRs to be powers of
two, which could mean having to use a WC MTRR over a large area which
includes a region in which write-combining effects are undesirable.

Add ioremap_uc() to help with the both phasing out of MTRR use and also
provide a way to blacklist small WC undesirable regions in devices with
mixed regions which are size-implicated to use large WC MTRRs. Use of
ioremap_uc() helps phase out MTRR use by avoiding regressions with an
eventual flip of default behaviour or ioremap_nocache() from UC- to UC.

Drivers working with WC MTRRs can use the below table to review and
consider the use of ioremap*() and similar helpers to ensure appropriate
behaviour long term even if default ioremap_nocache() behaviour changes
from UC- to UC.

Although ioremap_uc() is being added we leave set_memory_uc() to use UC-
as only initial memory type setup is required to be able to accommodate
existing device drivers and phase out MTRR use. It should also be
clarified that set_memory_uc() cannot be used with IO memory, even
though its use will not return any errors, it really has no effect.

----------------------------------------------------------------------
MTRR Non-PAT   PAT    Linux ioremap value        Effective memory type
----------------------------------------------------------------------
                                                  Non-PAT |  PAT
     PAT
     |PCD
     ||PWT
     |||
WC   000      WB      _PAGE_CACHE_MODE_WB            WC   |   WC
WC   001      WC      _PAGE_CACHE_MODE_WC            WC*  |   WC
WC   010      UC-     _PAGE_CACHE_MODE_UC_MINUS      WC*  |   WC
WC   011      UC      _PAGE_CACHE_MODE_UC            UC   |   UC
----------------------------------------------------------------------

[ hpa: this requires communication with driver writers ]

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Toshi Kani <toshi.kani@hp.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Suresh Siddha <sbsiddha@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Juergen Gross <jgross@suse.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Antonino Daplas <adaplas@gmail.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Ville Syrjälä <syrjala@sci.fi>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Mike Travis <travis@sgi.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Borislav Petkov <bp@suse.de>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: x86@kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1430343851-967-2-git-send-email-mcgrof@do-not-panic.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/include/asm/io.h |  1 +
 arch/x86/mm/ioremap.c     | 36 +++++++++++++++++++++++++++++++++++-
 arch/x86/mm/pageattr.c    |  3 +++
 include/asm-generic/io.h  |  8 ++++++++
 4 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 34a5b93704d3..4afc05ffa566 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -177,6 +177,7 @@ static inline unsigned int isa_virt_to_bus(volatile void *address)
  * look at pci_iomap().
  */
 extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
+extern void __iomem *ioremap_uc(resource_size_t offset, unsigned long size);
 extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
 extern void __iomem *ioremap_prot(resource_size_t offset, unsigned long size,
 				unsigned long prot_val);
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 5ead4d6cf3a7..fc08431a387b 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -237,7 +237,8 @@ void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size)
 	 *	pat_enabled ? _PAGE_CACHE_MODE_UC : _PAGE_CACHE_MODE_UC_MINUS;
 	 *
 	 * Till we fix all X drivers to use ioremap_wc(), we will use
-	 * UC MINUS.
+	 * UC MINUS. Drivers that are certain they need or can already
+	 * be converted over to strong UC can use ioremap_uc().
 	 */
 	enum page_cache_mode pcm = _PAGE_CACHE_MODE_UC_MINUS;
 
@@ -247,6 +248,39 @@ void __iomem *ioremap_nocache(resource_size_t phys_addr, unsigned long size)
 EXPORT_SYMBOL(ioremap_nocache);
 
 /**
+ * ioremap_uc     -   map bus memory into CPU space as strongly uncachable
+ * @phys_addr:    bus address of the memory
+ * @size:      size of the resource to map
+ *
+ * ioremap_uc performs a platform specific sequence of operations to
+ * make bus memory CPU accessible via the readb/readw/readl/writeb/
+ * writew/writel functions and the other mmio helpers. The returned
+ * address is not guaranteed to be usable directly as a virtual
+ * address.
+ *
+ * This version of ioremap ensures that the memory is marked with a strong
+ * preference as completely uncachable on the CPU when possible. For non-PAT
+ * systems this ends up setting page-attribute flags PCD=1, PWT=1. For PAT
+ * systems this will set the PAT entry for the pages as strong UC.  This call
+ * will honor existing caching rules from things like the PCI bus. Note that
+ * there are other caches and buffers on many busses. In particular driver
+ * authors should read up on PCI writes.
+ *
+ * It's useful if some control registers are in such an area and
+ * write combining or read caching is not desirable:
+ *
+ * Must be freed with iounmap.
+ */
+void __iomem *ioremap_uc(resource_size_t phys_addr, unsigned long size)
+{
+	enum page_cache_mode pcm = _PAGE_CACHE_MODE_UC;
+
+	return __ioremap_caller(phys_addr, size, pcm,
+				__builtin_return_address(0));
+}
+EXPORT_SYMBOL_GPL(ioremap_uc);
+
+/**
  * ioremap_wc	-	map memory into CPU space write combined
  * @phys_addr:	bus address of the memory
  * @size:	size of the resource to map
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 338e507f95b8..d35148acdc05 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -1467,6 +1467,9 @@ int _set_memory_uc(unsigned long addr, int numpages)
 {
 	/*
 	 * for now UC MINUS. see comments in ioremap_nocache()
+	 * If you really need strong UC use ioremap_uc(), but note
+	 * that you cannot override IO areas with set_memory_*() as
+	 * these helpers cannot work with IO memory.
 	 */
 	return change_page_attr_set(&addr, numpages,
 				    cachemode2pgprot(_PAGE_CACHE_MODE_UC_MINUS),
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
index 9db042304df3..90ccba7f9f9a 100644
--- a/include/asm-generic/io.h
+++ b/include/asm-generic/io.h
@@ -769,6 +769,14 @@ static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
 }
 #endif
 
+#ifndef ioremap_uc
+#define ioremap_uc ioremap_uc
+static inline void __iomem *ioremap_uc(phys_addr_t offset, size_t size)
+{
+	return ioremap_nocache(offset, size);
+}
+#endif
+
 #ifndef ioremap_wc
 #define ioremap_wc ioremap_wc
 static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
-- 
2.3.5


  parent reply index

Thread overview: 400+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` Borislav Petkov [this message]
2015-05-11 12:46   ` [tip:x86/mm] x86/mm: Add ioremap_uc() helper to map memory uncacheable (not UC-) tip-bot for Luis R. Rodriguez
  -- strict thread matches above, loose matches on Subject: below --
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 ` [PATCH 07/18] x86/mm: Enhance MTRR checks in kernel mapping helpers Borislav Petkov
2015-05-27 14:19   ` [tip:x86/mm] x86/mm/mtrr: " 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
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-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=1431332153-18566-9-git-send-email-bp@alien8.de \
    --to=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@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

	# 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