> On Jun 15, 2020, at 1:17 PM, Fenghua Yu <fenghua.yu@xxxxxxxxx> wrote: > > Hi, Peter, > >> On Mon, Jun 15, 2020 at 09:09:28PM +0200, Peter Zijlstra wrote: >>> On Mon, Jun 15, 2020 at 11:55:29AM -0700, Fenghua Yu wrote: >>> >>> Or do you suggest to add a random new flag in struct thread_info instead >>> of a TIF flag? >> >> Why thread_info? What's wrong with something simple like the below. It >> takes a bit from the 'strictly current' flags word. >> >> >> diff --git a/include/linux/sched.h b/include/linux/sched.h >> index b62e6aaf28f0..fca830b97055 100644 >> --- a/include/linux/sched.h >> +++ b/include/linux/sched.h >> @@ -801,6 +801,9 @@ struct task_struct { >> /* Stalled due to lack of memory */ >> unsigned in_memstall:1; >> #endif >> +#ifdef CONFIG_PCI_PASID >> + unsigned has_valid_pasid:1; >> +#endif >> >> unsigned long atomic_flags; /* Flags requiring atomic access. */ >> >> diff --git a/kernel/fork.c b/kernel/fork.c >> index 142b23645d82..10b3891be99e 100644 >> --- a/kernel/fork.c >> +++ b/kernel/fork.c >> @@ -955,6 +955,10 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) >> tsk->use_memdelay = 0; >> #endif >> >> +#ifdef CONFIG_PCI_PASID >> + tsk->has_valid_pasid = 0; >> +#endif >> + >> #ifdef CONFIG_MEMCG >> tsk->active_memcg = NULL; >> #endif > > The PASID MSR is x86 specific although PASID is PCIe concept and per-mm. > Checking if the MSR has valid PASID (bit31=1) is an x86 specifc work. > The flag should be cleared in cloned()/forked() and is only set and > read in fixup() in x86 #GP for heuristic. It's not used anywhere outside > of x86. > > That's why we think the flag should be in x86 struct thread_info instead > of in generice struct task_struct. > Are we planning to keep PASID live once a task has used it once or are we going to swap it lazily? If the latter, a percpu variable might be better. > Please advice. > > Thanks. > > -Fenghua _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx