Messages in this thread Patch in this message | | | From | Fenghua Yu <> | Subject | [PATCH v2 07/11] sched: Define and initialize a flag to identify valid PASID in the task | Date | Fri, 17 Dec 2021 22:01:32 +0000 |
| |
From: Peter Zijlstra <peterz@infradead.org>
Add a new single bit field to the task structure to track whether this task has initialized the IA32_PASID MSR to the mm's PASID.
Initialize the field to zero when creating a new task with fork/clone.
Signed-off-by: Peter Zijlstra <peterz@infradead.org> Co-developed-by: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Reviewed-by: Tony Luck <tony.luck@intel.com> --- v2: - Change condition to more accurate CONFIG_IOMMU_SVA (Jacob)
include/linux/sched.h | 3 +++ kernel/fork.c | 4 ++++ 2 files changed, 7 insertions(+)
diff --git a/include/linux/sched.h b/include/linux/sched.h index 78c351e35fec..41a0b5703f94 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -933,6 +933,9 @@ struct task_struct { /* Recursion prevention for eventfd_signal() */ unsigned in_eventfd_signal:1; #endif +#ifdef CONFIG_IOMMU_SVA + unsigned pasid_activated:1; +#endif unsigned long atomic_flags; /* Flags requiring atomic access. */ diff --git a/kernel/fork.c b/kernel/fork.c index 3adad225cc09..cd297926b6f2 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -967,6 +967,10 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) tsk->use_memdelay = 0; #endif +#ifdef CONFIG_IOMMU_SVA + tsk->pasid_activated = 0; +#endif + #ifdef CONFIG_MEMCG tsk->active_memcg = NULL; #endif -- 2.34.1
| |