stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <gregkh@linuxfoundation.org>
To: ralf@linux-mips.org, gregkh@linuxfoundation.org, larper@axis.com,
	lars.persson@axis.com
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "Revert "MIPS: Remove race window in page fault handling"" has been added to the 4.0-stable tree
Date: Fri, 08 May 2015 16:43:25 +0200	[thread overview]
Message-ID: <1431096205239237@kroah.com> (raw)
In-Reply-To: <dd9d42c457f61da9fc4224b06cccb584f290c17b.1431087908.git.ralf@linux-mips.org>


This is a note to let you know that I've just added the patch titled

    Revert "MIPS: Remove race window in page fault handling"

to the 4.0-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     revert-mips-remove-race-window-in-page-fault-handling.patch
and it can be found in the queue-4.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From ralf@linux-mips.org  Fri May  8 16:24:33 2015
From: Ralf Baechle <ralf@linux-mips.org>
Date: Thu, 26 Feb 2015 14:16:02 +0100
Subject: Revert "MIPS: Remove race window in page fault handling"
To: stable@vger.kernel.org
Message-ID: <dd9d42c457f61da9fc4224b06cccb584f290c17b.1431087908.git.ralf@linux-mips.org>


From: Lars Persson <lars.persson@axis.com>

Commit 5b9593f3bccb9904f260f9ad7f184e1d2921bd1e upstream.

Revert commit 2a4a8b1e5d9d ("MIPS: Remove race window in page fault
handling") because it increased the number of flushed dcache pages and
became a performance problem for some workloads.

Signed-off-by: Lars Persson <larper@axis.com>
Cc: linux-mips@linux-mips.org
Cc: paul.burton@imgtec.com
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/9345/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/mips/include/asm/pgtable.h |    9 +++++----
 arch/mips/mm/cache.c            |   27 ++++++++-------------------
 2 files changed, 13 insertions(+), 23 deletions(-)

--- a/arch/mips/include/asm/pgtable.h
+++ b/arch/mips/include/asm/pgtable.h
@@ -127,10 +127,6 @@ do {									\
 	}								\
 } while(0)
 
-
-extern void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
-	pte_t pteval);
-
 #if defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32)
 
 #define pte_none(pte)		(!(((pte).pte_low | (pte).pte_high) & ~_PAGE_GLOBAL))
@@ -154,6 +150,7 @@ static inline void set_pte(pte_t *ptep,
 		}
 	}
 }
+#define set_pte_at(mm, addr, ptep, pteval) set_pte(ptep, pteval)
 
 static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 {
@@ -192,6 +189,7 @@ static inline void set_pte(pte_t *ptep,
 	}
 #endif
 }
+#define set_pte_at(mm, addr, ptep, pteval) set_pte(ptep, pteval)
 
 static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 {
@@ -407,12 +405,15 @@ static inline pte_t pte_modify(pte_t pte
 
 extern void __update_tlb(struct vm_area_struct *vma, unsigned long address,
 	pte_t pte);
+extern void __update_cache(struct vm_area_struct *vma, unsigned long address,
+	pte_t pte);
 
 static inline void update_mmu_cache(struct vm_area_struct *vma,
 	unsigned long address, pte_t *ptep)
 {
 	pte_t pte = *ptep;
 	__update_tlb(vma, address, pte);
+	__update_cache(vma, address, pte);
 }
 
 static inline void update_mmu_cache_pmd(struct vm_area_struct *vma,
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -119,36 +119,25 @@ void __flush_anon_page(struct page *page
 
 EXPORT_SYMBOL(__flush_anon_page);
 
-static void mips_flush_dcache_from_pte(pte_t pteval, unsigned long address)
+void __update_cache(struct vm_area_struct *vma, unsigned long address,
+	pte_t pte)
 {
 	struct page *page;
-	unsigned long pfn = pte_pfn(pteval);
+	unsigned long pfn, addr;
+	int exec = (vma->vm_flags & VM_EXEC) && !cpu_has_ic_fills_f_dc;
 
+	pfn = pte_pfn(pte);
 	if (unlikely(!pfn_valid(pfn)))
 		return;
-
 	page = pfn_to_page(pfn);
 	if (page_mapping(page) && Page_dcache_dirty(page)) {
-		unsigned long page_addr = (unsigned long) page_address(page);
-
-		if (!cpu_has_ic_fills_f_dc ||
-		    pages_do_alias(page_addr, address & PAGE_MASK))
-			flush_data_cache_page(page_addr);
+		addr = (unsigned long) page_address(page);
+		if (exec || pages_do_alias(addr, address & PAGE_MASK))
+			flush_data_cache_page(addr);
 		ClearPageDcacheDirty(page);
 	}
 }
 
-void set_pte_at(struct mm_struct *mm, unsigned long addr,
-        pte_t *ptep, pte_t pteval)
-{
-        if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) {
-                if (pte_present(pteval))
-                        mips_flush_dcache_from_pte(pteval, addr);
-        }
-
-        set_pte(ptep, pteval);
-}
-
 unsigned long _page_cachable_default;
 EXPORT_SYMBOL(_page_cachable_default);
 


Patches currently in stable-queue which might be from ralf@linux-mips.org are

queue-4.0/mips-octeon-remove-udelay-causing-huge-irq-latency.patch
queue-4.0/mips-makefile-fix-mips-ase-detection-code.patch
queue-4.0/mips-r4kcache-use-correct-base-register-for-mips-r6-cache-flushes.patch
queue-4.0/mips-fix-cpu_has_mips_r2_exec_hazard.patch
queue-4.0/mips-ralink-fix-bad-config-symbol-in-pci-makefile.patch
queue-4.0/revert-mips-remove-race-window-in-page-fault-handling.patch
queue-4.0/mips-fix-race-condition-in-lazy-cache-flushing.patch
queue-4.0/mips-bcm63xx-move-bcm63xx_gpio_init-to-bcm63xx_register_devices.patch
queue-4.0/mips-octeon-delete-override-of-cpu_has_mips_r2_exec_hazard.patch
queue-4.0/mips-asm-spinlock-fix-addiu-instruction-for-r10000_llsc_war-case.patch
queue-4.0/mips-kconfig-disable-smp-cps-for-64-bit.patch
queue-4.0/mips-bcm47xx-fix-detecting-microsoft-mn-700-asus-wl500g.patch
queue-4.0/mips-octeon-use-correct-csr-to-soft-reset.patch
queue-4.0/revert-mips-avoid-pipeline-stalls-on-some-mips32r2-cores.patch
queue-4.0/mips-octeon-dma-octeon-fix-ohci-usb-config-check.patch
queue-4.0/mips-octeon-fix-pci-interrupt-mapping-for-d-link-dsr-1000n.patch
queue-4.0/mips-kconfig-fix-typo-for-the-r2-to-r6-emulator-kernel-parameter.patch
queue-4.0/ssb-fix-kconfig-dependencies.patch
queue-4.0/mips-kernel-entry.s-set-correct-isa-level-for-mips_ihb.patch
queue-4.0/mips-netlogic-fix-for-sata-phy-init.patch
queue-4.0/mips-ralink-add-missing-symbol-for-ralink_ill_acc.patch
queue-4.0/mips-asm-elf-set-o32-default-fpu-flags.patch
queue-4.0/mips-smp-cps-cpu_set-fpu-mask-if-fpu-present.patch

  reply	other threads:[~2015-05-08 14:44 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-08 12:25 [PATCH v2 00/23] MIPS and SSB fixes for 4.0-stable Ralf Baechle
2014-11-25  9:15 ` [PATCH v2 20/23] MIPS: Kconfig: Disable SMP/CPS for 64-bit Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Kconfig: Disable SMP/CPS for 64-bit" has been added to the 4.0-stable tree gregkh
2015-01-07 11:28 ` [PATCH v2 08/23] MIPS: Netlogic: Fix for SATA PHY init Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Netlogic: Fix for SATA PHY init" has been added to the 4.0-stable tree gregkh
2015-01-15 15:41 ` [PATCH v2 19/23] MIPS: smp-cps: cpu_set FPU mask if FPU present Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: smp-cps: cpu_set FPU mask if FPU present" has been added to the 4.0-stable tree gregkh
2015-02-23  5:17 ` [PATCH v2 17/23] MIPS: ralink: Fix bad config symbol in PCI makefile Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: ralink: Fix bad config symbol in PCI makefile." has been added to the 4.0-stable tree gregkh
2015-02-23  5:17 ` [PATCH v2 18/23] MIPS: ralink: add missing symbol for RALINK_ILL_ACC Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: ralink: add missing symbol for RALINK_ILL_ACC" has been added to the 4.0-stable tree gregkh
2015-02-26 11:11 ` [PATCH v2 22/23] MIPS: asm: elf: Set O32 default FPU flags Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: asm: elf: Set O32 default FPU flags" has been added to the 4.0-stable tree gregkh
2015-02-26 13:16 ` [PATCH v2 04/23] Revert "MIPS: Remove race window in page fault handling" Ralf Baechle
2015-05-08 14:43   ` gregkh [this message]
2015-02-26 13:16 ` [PATCH v2 05/23] MIPS: Fix race condition in lazy cache flushing Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Fix race condition in lazy cache flushing." has been added to the 4.0-stable tree gregkh
2015-08-01 21:16   ` [PATCH v2 05/23] MIPS: Fix race condition in lazy cache flushing Ben Hutchings
2015-03-03 18:48 ` [PATCH v2 10/23] MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes" has been added to the 4.0-stable tree gregkh
2015-03-03 18:48 ` [PATCH v2 11/23] MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case" has been added to the 4.0-stable tree gregkh
2015-03-03 18:48 ` [PATCH v2 12/23] MIPS: kernel: entry.S: Set correct ISA level for mips_ihb Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: kernel: entry.S: Set correct ISA level for mips_ihb" has been added to the 4.0-stable tree gregkh
2015-03-04 21:08 ` [PATCH v2 02/23] MIPS: OCTEON: dma-octeon: fix OHCI USB config check Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: OCTEON: dma-octeon: fix OHCI USB config check" has been added to the 4.0-stable tree gregkh
2015-03-06 11:02 ` [PATCH v2 03/23] MIPS: OCTEON: Use correct CSR to soft reset Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: OCTEON: Use correct CSR to soft reset" has been added to the 4.0-stable tree gregkh
2015-03-10 12:30 ` [PATCH v2 09/23] MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter" has been added to the 4.0-stable tree gregkh
2015-03-12 16:00 ` [PATCH v2 01/23] MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices() Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices()." has been added to the 4.0-stable tree gregkh
2015-03-18 13:05 ` [PATCH v2 06/23] MIPS: Octeon: Remove udelay() causing huge IRQ latency Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Octeon: Remove udelay() causing huge IRQ latency" has been added to the 4.0-stable tree gregkh
2015-08-01 21:17   ` [PATCH v2 06/23] MIPS: Octeon: Remove udelay() causing huge IRQ latency Ben Hutchings
2015-03-22 15:55 ` [PATCH v2 07/23] MIPS: OCTEON: fix PCI interrupt mapping for D-Link DSR-1000N Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: OCTEON: fix PCI interrupt mapping for D-Link DSR-1000N" has been added to the 4.0-stable tree gregkh
2015-03-25 12:14 ` [PATCH v2 13/23] MIPS: Fix cpu_has_mips_r2_exec_hazard Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Fix cpu_has_mips_r2_exec_hazard." has been added to the 4.0-stable tree gregkh
2015-08-01 21:17   ` [PATCH v2 13/23] MIPS: Fix cpu_has_mips_r2_exec_hazard Ben Hutchings
2015-03-25 12:18 ` [PATCH v2 15/23] Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores." Ralf Baechle
2015-05-08 14:43   ` Patch "Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores."" has been added to the 4.0-stable tree gregkh
2015-03-25 12:21 ` [PATCH v2 14/23] MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard." has been added to the 4.0-stable tree gregkh
2015-08-01 21:18   ` [PATCH v2 14/23] MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard Ben Hutchings
2015-03-25 15:31 ` [PATCH v2 16/23] SSB: fix Kconfig dependencies Ralf Baechle
2015-05-08 14:43   ` Patch "SSB: fix Kconfig dependencies" has been added to the 4.0-stable tree gregkh
2015-04-01 14:01 ` [PATCH v2 21/23] MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G" has been added to the 4.0-stable tree gregkh
2015-04-02 13:42 ` [PATCH v2 23/23] MIPS: Makefile: Fix MIPS ASE detection code Ralf Baechle
2015-05-08 14:43   ` Patch "MIPS: Makefile: Fix MIPS ASE detection code" has been added to the 4.0-stable tree gregkh

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=1431096205239237@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=larper@axis.com \
    --cc=lars.persson@axis.com \
    --cc=ralf@linux-mips.org \
    --cc=stable-commits@vger.kernel.org \
    --cc=stable@vger.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;
as well as URLs for NNTP newsgroup(s).