From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au
Cc: linuxppc-dev@lists.ozlabs.org,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: [PATCH v3 3/3] powerpc/mm/cxl: Add the fault handling cpu to mm cpumask
Date: Thu, 27 Jul 2017 11:54:55 +0530 [thread overview]
Message-ID: <20170727062455.15404-3-aneesh.kumar@linux.vnet.ibm.com> (raw)
In-Reply-To: <20170727062455.15404-1-aneesh.kumar@linux.vnet.ibm.com>
We use mm cpumask for serializing against lockless page table walk. Anybody
who is doing a lockless page table walk is expected to disable irq and only
cpus in mm cpumask is expected do the lockless walk. This ensure that
a THP split can send IPI to only cpus in the mm cpumask, to make sure there
are no parallel lockless page table walk.
Add the CAPI fault handling cpu to the mm cpumask so that we can do the lockless
page table walk while inserting hash page table entries.
Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
arch/powerpc/mm/pgtable-book3s64.c | 10 +---------
drivers/misc/cxl/fault.c | 6 ++++++
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/mm/pgtable-book3s64.c b/arch/powerpc/mm/pgtable-book3s64.c
index 57b947cde2bf..3b65917785a5 100644
--- a/arch/powerpc/mm/pgtable-book3s64.c
+++ b/arch/powerpc/mm/pgtable-book3s64.c
@@ -83,15 +83,7 @@ static void do_nothing(void *unused)
void serialize_against_pte_lookup(struct mm_struct *mm)
{
smp_mb();
- /*
- * Cxl fault handling requires us to do a lockless page table
- * walk while inserting hash page table entry with mm tracked
- * in cxl context. Hence we need to do a global flush.
- */
- if (cxl_ctx_in_use())
- smp_call_function(do_nothing, NULL, 1);
- else
- smp_call_function_many(mm_cpumask(mm), do_nothing, NULL, 1);
+ smp_call_function_many(mm_cpumask(mm), do_nothing, NULL, 1);
}
/*
diff --git a/drivers/misc/cxl/fault.c b/drivers/misc/cxl/fault.c
index 6eed7d03e2b5..ab507e4ed69b 100644
--- a/drivers/misc/cxl/fault.c
+++ b/drivers/misc/cxl/fault.c
@@ -138,6 +138,12 @@ int cxl_handle_mm_fault(struct mm_struct *mm, u64 dsisr, u64 dar)
int result;
unsigned long access, flags, inv_flags = 0;
+ /*
+ * Add the fault handling cpu to task mm cpumask so that we
+ * can do a safe lockless page table walk when inserting the
+ * hash page table entry.
+ */
+ cpumask_set_cpu(smp_processor_id(), mm_cpumask(mm));
if ((result = copro_handle_mm_fault(mm, dar, dsisr, &flt))) {
pr_devel("copro_handle_mm_fault failed: %#x\n", result);
return result;
--
2.13.3
next prev parent reply other threads:[~2017-07-27 6:25 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-27 6:24 [PATCH v3 1/3] powerpc/mm: Rename find_linux_pte_or_hugepte Aneesh Kumar K.V
2017-07-27 6:24 ` [PATCH v3 2/3] powerpc/mm: Don't send IPI to all cpus on THP updates Aneesh Kumar K.V
2017-08-21 13:39 ` [v3,2/3] " Michael Ellerman
2017-07-27 6:24 ` Aneesh Kumar K.V [this message]
2017-08-21 13:39 ` [v3, 3/3] powerpc/mm/cxl: Add the fault handling cpu to mm cpumask Michael Ellerman
2017-08-21 16:49 ` [v3,3/3] " Benjamin Herrenschmidt
2017-08-21 13:39 ` [v3,1/3] powerpc/mm: Rename find_linux_pte_or_hugepte Michael Ellerman
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=20170727062455.15404-3-aneesh.kumar@linux.vnet.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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).