xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xenproject.org, tim@xen.org,
	stefano.stabellini@citrix.com,
	Roger Pau Monne <roger.pau@citrix.com>
Subject: Re: [PATCH v7 2/4] xen/arm: grant: Add another entry to map MFN 1:1 in dom0 p2m
Date: Mon, 19 May 2014 15:20:12 +0100	[thread overview]
Message-ID: <537A131C.7090701@linaro.org> (raw)
In-Reply-To: <1400492734.32311.33.camel@kazak.uk.xensource.com>

On 05/19/2014 10:45 AM, Ian Campbell wrote:
> On Sat, 2014-05-17 at 19:12 +0100, Julien Grall wrote:
>>
>> On 15/05/14 15:16, Julien Grall wrote:
>>> Grant mapping can be used for DMA request. The dev_bus_addr returned by the
>>> hypercall is the MFN (not the IPA). Currently Linux is using this address (via
>>> swiotlb) to program the DMA.
>>> When the device is protected by IOMMU the request will fail. We have to
>>> add 1:1 mapping in the domain p2m to allow DMA request working.
>>>
>>> This is valid because DOM0 has its memory mapped 1:1 and therefore we know
>>> that RAM and devices cannot clash.
>>
>> I though a bit more about this patch. It doesn't handle the case where 2 
>> grant use the same MFN, which is valid.
>>
>> In this case, we should remove the 1:1 mapping only when the last grant 
>> is removed.
>>
>> I'm not sure how to handle this case.
> 
> Urk, yes indeed.
> 
> This is all hypervisor side stuff I think, right?

There is 2 issues (one in hypervisor side, the other in DOM0).

The issue I'm talking here is in the hypervisor side.

> I wonder if the grant table maptrack stuff is helpful here, i.e. could
> it contain a reference count (if it doesn't already)? Some care and
> attention would be needed to make it safe, but it might be doable.

It seems that mapcount (common/grant_table.c), do the job for us. I will
give a look on it.

The other issue (from DOM0  side) comes from the swiotlb implementation
for ARM (see arch/arm/xen/p2m.c). We are unable to handle multiple PFN
linked to a same MFN.

This case will be silently ignore and still work (???). This is
happening with Freebsd on ARM when portsnap is executed for the first
time. I'm not sure why.

Regards,

-- 
Julien Grall

  reply	other threads:[~2014-05-19 14:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 14:16 [PATCH v7 0/4] IOMMU support for ARM Julien Grall
2014-05-15 14:16 ` [PATCH v7 1/4] xen/arm: p2m: Clean cache PT when the IOMMU doesn't support coherent walk Julien Grall
2014-05-15 15:20   ` Ian Campbell
2014-05-15 15:24     ` Julien Grall
2014-05-15 15:51       ` Ian Campbell
2014-05-15 16:05     ` Jan Beulich
2014-05-15 16:04   ` Jan Beulich
2014-05-15 17:06     ` Julien Grall
2014-05-16 10:00       ` Ian Campbell
2014-05-15 14:16 ` [PATCH v7 2/4] xen/arm: grant: Add another entry to map MFN 1:1 in dom0 p2m Julien Grall
2014-05-17 18:12   ` Julien Grall
2014-05-19  9:45     ` Ian Campbell
2014-05-19 14:20       ` Julien Grall [this message]
2014-05-20  7:30         ` Roger Pau Monné
2014-05-20  8:51           ` Ian Campbell
2014-05-20 11:19             ` Julien Grall
2014-05-20 11:25               ` Ian Campbell
2014-05-20 11:53                 ` Julien Grall
2014-05-15 14:16 ` [PATCH v7 3/4] xen: iommu: Define PAGE_{SHIFT, SIZE, ALIGN, MASK)_64K Julien Grall
2014-05-15 14:16 ` [PATCH v7 4/4] drivers/passthrough: arm: Add support for SMMU drivers Julien Grall

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=537A131C.7090701@linaro.org \
    --to=julien.grall@linaro.org \
    --cc=Ian.Campbell@citrix.com \
    --cc=roger.pau@citrix.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=tim@xen.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).