> From: Duan, Zhenzhong <zhenzhong.d...@intel.com>
> Sent: Monday, May 20, 2024 11:41 AM
> 
> 
> 
> >-----Original Message-----
> >From: Jason Wang <jasow...@redhat.com>
> >Sent: Monday, May 20, 2024 8:44 AM
> >To: Duan, Zhenzhong <zhenzhong.d...@intel.com>
> >Cc: qemu-devel@nongnu.org; Liu, Yi L <yi.l....@intel.com>; Peng, Chao P
> ><chao.p.p...@intel.com>; Yu Zhang <yu.c.zh...@linux.intel.com>; Michael
> >S. Tsirkin <m...@redhat.com>; Paolo Bonzini <pbonz...@redhat.com>;
> >Richard Henderson <richard.hender...@linaro.org>; Eduardo Habkost
> ><edua...@habkost.net>; Marcel Apfelbaum <marcel.apfelb...@gmail.com>
> >Subject: Re: [PATCH] intel_iommu: Use the latest fault reasons defined by
> >spec
> >
> >On Fri, May 17, 2024 at 6:26 PM Zhenzhong Duan
> ><zhenzhong.d...@intel.com> wrote:
> >>
> >> From: Yu Zhang <yu.c.zh...@linux.intel.com>
> >>
> >> Currently we use only VTD_FR_PASID_TABLE_INV as fault reason.
> >> Update with more detailed fault reasons listed in VT-d spec 7.2.3.
> >>
> >> Signed-off-by: Yu Zhang <yu.c.zh...@linux.intel.com>
> >> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com>
> >> ---
> >
> >I wonder if this could be noticed by the guest or not. If yes should
> >we consider starting to add thing like version to vtd emulation code?
>
> Kernel only dumps the reason like below:
> 
> DMAR: [DMA Write NO_PASID] Request device [20:00.0] fault addr 0x1234600000
> [fault reason 0x71] SM: Present bit in first-level paging entry is clear

Yes, guest kernel would notice it as the fault would be injected to vm. 

> Maybe bump 1.0 -> 1.1?
> My understanding version number is only informational and is far from
> accurate to mark if a feature supported. Driver should check cap/ecap
> bits instead.

Should the version ID here be aligned with VT-d spec? If yes, it should
be 3.0 as the scalable mode was introduced in spec 3.0. And the fault
code was redefined together with the introduction of this translation
mode. Below is the a snippet from the change log of VT-d spec.

June 2018 3.0
• Removed all text related to Extended-Mode.
• Added support for scalable-mode translation for DMA Remapping, that enables 
PASIDgranular first-level, second-level, nested and pass-through translation 
functions.
• Widen invalidation queue descriptors and page request queue descriptors from 
128 bits
to 256 bits and redefined page-request and page-response descriptors.
• Listed all fault conditions in a unified table and described DMA Remapping 
hardware
behavior under each condition. Assigned new code for each fault condition in 
scalablemode operation.
• Added support for Accessed/Dirty (A/D) bits in second-level translation.
• Added support for submitting commands and receiving response from virtual DMA
Remapping hardware.
• Added a table on snooping behavior and memory type of hardware access to 
various
remapping structures as appendix.
• Move Page Request Overflow (PRO) fault reporting from Fault Status register
(FSTS_REG) to Page Request Status register (PRS_REG).

Regards.
Yi Liu

Reply via email to