[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid
From: |
Jason Wang |
Subject: |
Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry |
Date: |
Mon, 28 Mar 2022 10:27:01 +0800 |
On Thu, Mar 24, 2022 at 4:21 PM Tian, Kevin <kevin.tian@intel.com> wrote:
>
> > From: Jason Wang
> > Sent: Monday, March 21, 2022 1:54 PM
> >
> > We use to warn on wrong rid2pasid entry. But this error could be
> > triggered by the guest and could happens during initialization. So
> > let's don't warn in this case.
> >
> > Signed-off-by: Jason Wang <jasowang@redhat.com>
> > ---
> > hw/i386/intel_iommu.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> > index 874d01c162..90964b201c 100644
> > --- a/hw/i386/intel_iommu.c
> > +++ b/hw/i386/intel_iommu.c
> > @@ -1554,8 +1554,10 @@ static bool vtd_dev_pt_enabled(IntelIOMMUState
> > *s, VTDContextEntry *ce)
> > if (s->root_scalable) {
> > ret = vtd_ce_get_rid2pasid_entry(s, ce, &pe);
> > if (ret) {
> > - error_report_once("%s: vtd_ce_get_rid2pasid_entry error:
> > %"PRId32,
> > - __func__, ret);
> > + /*
> > + * This error is guest triggerable. We should assumt PT
> > + * not enabled for safety.
> > + */
>
> suppose a VT-d fault should be queued in this case besides returning false:
>
> SPD.1: A hardware attempt to access the scalable-mode PASID-directory
> entry referenced through the PASIDDIRPTR field in scalable-mode
> context-entry resulted in an error
>
> SPT.1: A hardware attempt to access a scalable-mode PASID-table entry
> referenced through the SMPTBLPTR field in a scalable-mode PASID-directory
> entry resulted in an error.
Probably, but this issue is not introduced in this patch. We can fix
it on top if necessary.
>
> Currently the implementation of vtd_ce_get_rid2pasid_entry() is also
> problematic. According to VT-d spec, RID2PASID field is effective only
> when ecap.rps is true otherwise PASID#0 is used for RID2PASID. I didn't
> see ecap.rps is set, neither is it checked in that function. It works possibly
> just because Linux currently programs 0 to RID2PASID...
This seems to be another issue since the introduction of scalable mode.
Thanks
>
> > return false;
> > }
> > return (VTD_PE_GET_TYPE(&pe) == VTD_SM_PASID_ENTRY_PT);
> > --
> > 2.25.1
> >
>
- [PATCH V2 0/4] PASID support for Intel IOMMU, Jason Wang, 2022/03/21
- [PATCH V2 2/4] intel-iommu: drop VTDBus, Jason Wang, 2022/03/21
- [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Jason Wang, 2022/03/21
- RE: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Tian, Kevin, 2022/03/24
- Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry,
Jason Wang <=
- Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Yi Liu, 2022/03/28
- Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Jason Wang, 2022/03/29
- RE: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Tian, Kevin, 2022/03/30
- Re: [PATCH V2 1/4] intel-iommu: don't warn guest errors when getting rid2pasid entry, Jason Wang, 2022/03/30
[PATCH V2 3/4] intel-iommu: convert VTD_PE_GET_FPD_ERR() to be a function, Jason Wang, 2022/03/21
[PATCH V2 4/4] intel-iommu: PASID support, Jason Wang, 2022/03/21