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
next prev parent 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).