[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH 15/17] IOMMU: page table dumping adjustments


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Date: Thu, 16 Sep 2021 07:33:57 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OJGXHW0s1Fyiyy7krPVWeIvnojJmgYgs09w5r3j8a8A=; b=JuaN8+iwyilosb1wbV9yI8dEPdvWlv0wbmacWHd+Lda+a+usIDAH9L707DQPBR3b+8BXEnbYHHN7yTWXOt3KEmVp3gefMVrv0ULQ5w2GRb3OrdD9rbUC1T8jZNvlR5Ejv+MqYGWSL/7uEphXFf3ShIuSRvlmyawVSIBzznDt9VCUHMi6GjJIDgsGAlqtBnWiKhpoMDa5HY3Z0xEmx1IsFeuNSx7SMlAslHVeYtwKoYLpBCNQhYqxJqJz703U+8VdUfYbGHdBr7FsnU4+QJ/YYkL9OixX13piEe61YaWjnKWCPT+NWMSPbV/4d4TeZPgMjuY2Jgd83OZ7pI/DCvKUhA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f+GR2XNOBi99kb5iXTS97gmA2V4/v35N+M6cSG35mDze6o6Cwgt4A6MIO80Z6D4RiBmS8NyiSv8stsmUTS+GR0lyxZ36H8X2BlAeyV1xS4PEH3H0Hit4K1WyzNanEoRDkUaCSllUDJGYPZ4vyobZWDUnQ2ga2XJLA+EsFiLyTy958ZXdTrbEtPiUU/ja7Ht8VQEZ6+mKlDqhrQO40ej1bOKug4J6vwAAbQrBhrXz3L18rBFkD77TrDvjpf4azlKsVWbGc+tJxY1WfFEdM2GWCH1pcltBDMCPbt0746h5pK/lT6szymosui0GQUl/KtitHrhHF3p/jadcrhwbU42MDQ==
  • Authentication-results: suse.com; dkim=none (message not signed) header.d=none;suse.com; dmarc=none action=none header.from=intel.com;
  • Cc: "Cooper, Andrew" <andrew.cooper3@xxxxxxxxxx>, Paul Durrant <paul@xxxxxxx>
  • Delivery-date: Thu, 16 Sep 2021 07:34:11 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHXmPQtySERcVTCKU+CLBLd1PeNTKuCttiAgCOxiVA=
  • Thread-topic: [PATCH 15/17] IOMMU: page table dumping adjustments

> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: Tuesday, August 24, 2021 10:29 PM
> 
> On 24.08.2021 16:26, Jan Beulich wrote:
> > For one none of the three IOMMU implementations on Arm specify a
> dumping
> > hook. Generalize VT-d's "don't dump shared page tables" to cover for
> > this.
> >
> > Further in the past I was told that on Arm in principle there could be
> > multiple different IOMMUs, and hence different domains' platform_ops
> > pointers could differ. Use each domain's ops for calling the dump hook.
> > (In the long run all uses of iommu_get_ops() would likely need to
> > disappear for this reason.)
> >
> > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> Should have Cc-ed Kevin on this one as well; now added.
> 
> Jan

Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>

> 
> > --- a/xen/drivers/passthrough/iommu.c
> > +++ b/xen/drivers/passthrough/iommu.c
> > @@ -640,12 +640,9 @@ bool_t iommu_has_feature(struct domain *
> >  static void iommu_dump_page_tables(unsigned char key)
> >  {
> >      struct domain *d;
> > -    const struct iommu_ops *ops;
> >
> >      ASSERT(iommu_enabled);
> >
> > -    ops = iommu_get_ops();
> > -
> >      rcu_read_lock(&domlist_read_lock);
> >
> >      for_each_domain(d)
> > @@ -653,7 +650,13 @@ static void iommu_dump_page_tables(unsig
> >          if ( is_hardware_domain(d) || !is_iommu_enabled(d) )
> >              continue;
> >
> > -        ops->dump_page_tables(d);
> > +        if ( iommu_use_hap_pt(d) )
> > +        {
> > +            printk("%pd sharing page tables\n", d);
> > +            continue;
> > +        }
> > +
> > +        dom_iommu(d)->platform_ops->dump_page_tables(d);
> >      }
> >
> >      rcu_read_unlock(&domlist_read_lock);
> > --- a/xen/drivers/passthrough/vtd/iommu.c
> > +++ b/xen/drivers/passthrough/vtd/iommu.c
> > @@ -2835,12 +2835,6 @@ static void vtd_dump_page_tables(struct
> >  {
> >      const struct domain_iommu *hd = dom_iommu(d);
> >
> > -    if ( iommu_use_hap_pt(d) )
> > -    {
> > -        printk(VTDPREFIX " %pd sharing EPT table\n", d);
> > -        return;
> > -    }
> > -
> >      printk(VTDPREFIX" %pd table has %d levels\n", d,
> >             agaw_to_level(hd->arch.vtd.agaw));
> >      vtd_dump_page_table_level(hd->arch.vtd.pgd_maddr,
> >
> >


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.