Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Fenghua Yu
Hi, Dave, On Fri, Jun 26, 2020 at 11:23:12AM -0700, Dave Hansen wrote: > On 6/26/20 11:10 AM, Luck, Tony wrote: > > On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > >> On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > >> > >>> +static bool fixup_pasid_exception(void) >

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Dave Hansen
On 6/26/20 11:10 AM, Luck, Tony wrote: > On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: >> On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: >> >>> +static bool fixup_pasid_exception(void) >>> +{ >>> + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) >>> + return fals

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Fenghua Yu
Hi, Peter, On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > > > +static bool fixup_pasid_exception(void) > > +{ > > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > > + return false; > > + if (!static_cpu_has

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Borislav Petkov
On Fri, Jun 26, 2020 at 11:10:00AM -0700, Luck, Tony wrote: > Do we have a standard way of coding for a feature that depends on multiple > other features? For this case the system needs to both suport the ENQCMD > instruction, and also have kernel code that programs the IOMMU. Yes, you need both.

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Luck, Tony
On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > > > +static bool fixup_pasid_exception(void) > > +{ > > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > > + return false; > > + if (!static_cpu_has(X86_FEATURE

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Peter Zijlstra
On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > +static bool fixup_pasid_exception(void) > +{ > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > + return false; > + if (!static_cpu_has(X86_FEATURE_ENQCMD)) > + return false; elsewhere you had another varia

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-25 Thread Lu Baolu
Hi Fenghua, On 2020/6/26 4:17, Fenghua Yu wrote: A #GP fault is generated when ENQCMD instruction is executed without a valid PASID value programmed in the current thread's PASID MSR. The #GP fault handler will initialize the MSR if a PASID has been allocated for this process. Decoding the user