All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'George Dunlap' <dunlapg@umich.edu>
Cc: Kevin Tian <kevin.tian@intel.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
	Julien Grall <julien.grall@arm.com>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v2 02/13] iommu: introduce the concept of BFN...
Date: Tue, 10 Jul 2018 14:08:43 +0000	[thread overview]
Message-ID: <99b72db7596340e0a285e1311b1ecf71@AMSPEX02CL03.citrite.net> (raw)
In-Reply-To: <CAFLBxZY1kvNd2RX1zpOvDnn9PDEqQP1Tzyi=bD+zo0-EDW9A8Q@mail.gmail.com>

> -----Original Message-----
> From: dunlapg@gmail.com [mailto:dunlapg@gmail.com] On Behalf Of
> George Dunlap
> Sent: 10 July 2018 14:47
> To: Paul Durrant <Paul.Durrant@citrix.com>
> Cc: xen-devel <xen-devel@lists.xenproject.org>; Kevin Tian
> <kevin.tian@intel.com>; Stefano Stabellini <sstabellini@kernel.org>;
> Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>; Julien Grall
> <julien.grall@arm.com>; Jan Beulich <jbeulich@suse.com>
> Subject: Re: [Xen-devel] [PATCH v2 02/13] iommu: introduce the concept of
> BFN...
> 
> On Sat, Jul 7, 2018 at 12:05 PM, Paul Durrant <paul.durrant@citrix.com>
> wrote:
> 
> > @@ -651,34 +651,34 @@ int amd_iommu_map_page(struct domain *d,
> unsigned long gfn, unsigned long mfn,
> >      if ( rc )
> >      {
> >          spin_unlock(&hd->arch.mapping_lock);
> > -        AMD_IOMMU_DEBUG("Root table alloc failed, gfn = %lx\n", gfn);
> > +        AMD_IOMMU_DEBUG("Root table alloc failed, bfn = %lx\n", bfn);
> >          domain_crash(d);
> >          return rc;
> >      }
> >
> >      /* Since HVM domain is initialized with 2 level IO page table,
> > -     * we might need a deeper page table for lager gfn now */
> > +     * we might need a deeper page table for wider bfn now */
> 
> Oh, come on, no lager gfns? ;-)
> 
> > @@ -2737,10 +2737,12 @@ static void
> arm_smmu_iommu_domain_teardown(struct domain *d)
> >         xfree(xen_domain);
> >  }
> >
> > -static int __must_check arm_smmu_map_page(struct domain *d,
> unsigned long gfn,
> > +static int __must_check arm_smmu_map_page(struct domain *d,
> unsigned long bfn,
> >                         unsigned long mfn, unsigned int flags)
> >  {
> >         p2m_type_t t;
> > +       unsigned long frame = bfn;
> > +       unsigned long gfn;
> 
> I don't understand what the poind of these temporary variables are.
> They don't seem to really add any information at this point.

I added these at Jan's request. I can defer introducing them to the later patch introducing typesafe bfns and gfns if that's preferable. The eventual code will be the same.

  Paul

> 
> >
> >         /*
> >          * Grant mappings can be used for DMA requests. The dev_bus_addr
> > @@ -2748,10 +2750,11 @@ static int __must_check
> arm_smmu_map_page(struct domain *d, unsigned long gfn,
> >          * protected by an IOMMU, Xen needs to add a 1:1 mapping in the
> domain
> >          * p2m to allow DMA request to work.
> >          * This is only valid when the domain is directed mapped. Hence this
> > -        * function should only be used by gnttab code with gfn == mfn.
> > +        * function should only be used by gnttab code with gfn == mfn ==
> bfn.
> >          */
> >         BUG_ON(!is_domain_direct_mapped(d));
> > -       BUG_ON(mfn != gfn);
> > +       BUG_ON(mfn != frame);
> > +       gfn = frame;
> >
> >         /* We only support readable and writable flags */
> >         if (!(flags & (IOMMUF_readable | IOMMUF_writable)))
> > @@ -2766,8 +2769,12 @@ static int __must_check
> arm_smmu_map_page(struct domain *d, unsigned long gfn,
> >         return guest_physmap_add_entry(d, _gfn(gfn), _mfn(mfn), 0, t);
> >  }
> >
> > -static int __must_check arm_smmu_unmap_page(struct domain *d,
> unsigned long gfn)
> > +static int __must_check arm_smmu_unmap_page(struct domain *d,
> unsigned long bfn)
> >  {
> > +       unsigned long frame = bfn;
> > +       unsigned long gfn = frame;
> > +       unsigned long mfn = frame;
> 
> Same here.
> 
> > diff --git a/xen/drivers/passthrough/iommu.c
> b/xen/drivers/passthrough/iommu.c
> > index 2c44fabf99..9a3bb6a43e 100644
> > --- a/xen/drivers/passthrough/iommu.c
> > +++ b/xen/drivers/passthrough/iommu.c
> > @@ -185,7 +185,8 @@ void __hwdom_init iommu_hwdom_init(struct
> domain *d)
> >          page_list_for_each ( page, &d->page_list )
> >          {
> >              unsigned long mfn = mfn_x(page_to_mfn(page));
> > -            unsigned long gfn = mfn_to_gmfn(d, mfn);
> > +            unsigned long frame = mfn_to_gmfn(d, mfn);
> > +            unsigned long bfn = frame;
> 
> And here.
> 
> Everything else looks good.
> 
>  -George
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-07-10 14:11 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-07 11:05 [PATCH v2 00/13] paravirtual IOMMU interface Paul Durrant
2018-07-07 11:05 ` [PATCH v2 01/13] grant_table: use term 'mfn' for machine frame numbers Paul Durrant
2018-07-10 13:19   ` George Dunlap
2018-07-11  8:31     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 02/13] iommu: introduce the concept of BFN Paul Durrant
2018-07-10 13:47   ` George Dunlap
2018-07-10 14:08     ` Paul Durrant [this message]
2018-07-10 14:18       ` Jan Beulich
2018-07-07 11:05 ` [PATCH v2 03/13] iommu: make use of type-safe BFN and MFN in exported functions Paul Durrant
2018-07-10 14:00   ` George Dunlap
2018-07-10 14:10     ` Paul Durrant
2018-07-10 14:28       ` Jan Beulich
2018-07-10 14:37         ` Paul Durrant
2018-07-10 16:13   ` George Dunlap
2018-07-10 16:18     ` Paul Durrant
2018-07-10 16:19       ` George Dunlap
2018-07-11  7:57       ` Jan Beulich
2018-07-11  7:59         ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 04/13] iommu: push use of type-safe BFN and MFN into iommu_ops Paul Durrant
2018-07-10 16:38   ` George Dunlap
2018-07-07 11:05 ` [PATCH v2 05/13] iommu: don't domain_crash() inside iommu_map/unmap_page() Paul Durrant
2018-07-10 16:49   ` George Dunlap
2018-07-16 14:09   ` Wei Liu
2018-07-07 11:05 ` [PATCH v2 06/13] public / x86: introduce __HYPERCALL_iommu_op Paul Durrant
2018-07-11  9:09   ` George Dunlap
2018-07-16 10:00     ` Paul Durrant
2018-07-16 14:14   ` Wei Liu
2018-07-16 14:17     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 07/13] iommu: track reserved ranges using a rangeset Paul Durrant
2018-07-11  9:16   ` George Dunlap
2018-07-16 10:21     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 08/13] x86: add iommu_op to query reserved ranges Paul Durrant
2018-07-11 10:34   ` George Dunlap
2018-07-11 12:21     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 09/13] vtd: add lookup_page method to iommu_ops Paul Durrant
2018-07-11 10:51   ` George Dunlap
2018-07-11 12:25     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 10/13] x86: add iommu_op to enable modification of IOMMU mappings Paul Durrant
2018-07-07 11:05 ` [PATCH v2 11/13] memory: add get_paged_gfn() as a wrapper Paul Durrant
2018-07-11 11:24   ` George Dunlap
2018-07-11 12:31     ` Paul Durrant
2018-07-11 13:04       ` George Dunlap
2018-07-11 13:09         ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 12/13] x86: add iommu_ops to modify and flush IOMMU mappings Paul Durrant
2018-07-11 11:46   ` George Dunlap
2018-07-11 12:36     ` Paul Durrant
2018-07-07 11:05 ` [PATCH v2 13/13] x86: extend the map and unmap iommu_ops to support grant references Paul Durrant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=99b72db7596340e0a285e1311b1ecf71@AMSPEX02CL03.citrite.net \
    --to=paul.durrant@citrix.com \
    --cc=dunlapg@umich.edu \
    --cc=jbeulich@suse.com \
    --cc=julien.grall@arm.com \
    --cc=kevin.tian@intel.com \
    --cc=sstabellini@kernel.org \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.