[RFC 2/2] cxl: Mark context requiring global TLBIs
Frederic Barrat
fbarrat at linux.vnet.ibm.com
Thu May 4 00:29:06 AEST 2017
The PSL needs to see all TLBI pertinent to the memory contexts used on
the cxl adapter. For the hash memory model, it was done by making all
TLBIs global as soon as the cxl driver is in us. For radix, we need
something similar, but we can refine and only convert to global the
invalidations for contexts actually used by the device.
So mark the contexts being attached to the cxl adapter as requiring
global TLBIs.
Signed-off-by: Frederic Barrat <fbarrat at linux.vnet.ibm.com>
---
drivers/misc/cxl/api.c | 5 ++++-
drivers/misc/cxl/file.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
index 1a138c83f877..86b2ad86fdee 100644
--- a/drivers/misc/cxl/api.c
+++ b/drivers/misc/cxl/api.c
@@ -347,7 +347,10 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed,
cxl_context_mm_count_put(ctx);
goto out;
}
-
+#ifdef CONFIG_PPC_BOOK3S_64
+ if (ctx->mm)
+ mm_context_set_global_tlbi(&ctx->mm->context);
+#endif
ctx->status = STARTED;
out:
mutex_unlock(&ctx->status_mutex);
diff --git a/drivers/misc/cxl/file.c b/drivers/misc/cxl/file.c
index 17b433f1ce23..c7ead488eee2 100644
--- a/drivers/misc/cxl/file.c
+++ b/drivers/misc/cxl/file.c
@@ -239,7 +239,10 @@ static long afu_ioctl_start_work(struct cxl_context *ctx,
cxl_context_mm_count_put(ctx);
goto out;
}
-
+#ifdef CONFIG_PPC_BOOK3S_64
+ if (ctx->mm)
+ mm_context_set_global_tlbi(&ctx->mm->context);
+#endif
ctx->status = STARTED;
rc = 0;
out:
--
2.11.0
More information about the Linuxppc-dev
mailing list