From: Will Deacon <will.deacon@arm.com>
To: Olav Haugan <ohaugan@codeaurora.org>
Cc: "joro@8bytes.org" <joro@8bytes.org>,
"robdclark@gmail.com" <robdclark@gmail.com>,
"thierry.reding@gmail.com" <thierry.reding@gmail.com>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-arm-msm@vger.kernel.org" <linux-arm-msm@vger.kernel.org>,
"mitchelh@codeaurora.org" <mitchelh@codeaurora.org>
Subject: Re: [PATCH v3 1/1] iommu-api: Add map_sg/unmap_sg functions
Date: Wed, 30 Jul 2014 10:45:57 +0100 [thread overview]
Message-ID: <20140730094557.GD12239@arm.com> (raw)
In-Reply-To: <53D7D82C.2080201@codeaurora.org>
On Tue, Jul 29, 2014 at 06:21:48PM +0100, Olav Haugan wrote:
> On 7/29/2014 2:25 AM, Will Deacon wrote:
> > I agree that we can't handle IOMMUs that have a minimum page size larger
> > than the CPU page size, but we should be able to handle the case where the
> > maximum supported page size on the IOMMU is smaller than the CPU page size
> > (e.g. 4k IOMMU with 64k pages on the CPU). I think that could trip a BUG_ON
> > with your patch, although the alignment would be ok in iommu_map because
> > page sizes are always a power-of-2. You also end up rounding the size to
> > 64k, which could lead to mapping more than you really need to.
>
> Which BUG_ON would I trip? If the supported IOMMU page size is less than
> the CPU supported page size then iommu_map will nicely take care of
> splitting up the mapping calls into sizes supported by the IOMMU (taken
> care of by iommu_pgsize()). However, I see you point regarding the
> PAGE_ALIGN of the offset+length that can cause overmapping which you
> don't really want. What is the alternative here? Just leave it and do
> not align at all? That is how iommu_map() currently works. It will
> return error if the iova|phys|size is not aligned to the minimum pgsize
> supported by the IOMMU. So I would not change the behavior if I just
> left it without trying to align.
Yeah, I think losing the align is probably the best bet for now.
> I will remove the BUG_ON for (iova & (~PAGE_MASK)).
Great, that's the BUG_ON I was referring to above.
> >> (The code in __map_sg_chunk in arch/arm/mm/dma-mapping.c does the same
> >> thing btw.)
> >
> > I have the same objection to that code :)
>
> I am hoping we can remove/simplify some of that code when we have the
> iommmu_map_sg API available....
Looking forward to it!
Will
WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 1/1] iommu-api: Add map_sg/unmap_sg functions
Date: Wed, 30 Jul 2014 10:45:57 +0100 [thread overview]
Message-ID: <20140730094557.GD12239@arm.com> (raw)
In-Reply-To: <53D7D82C.2080201@codeaurora.org>
On Tue, Jul 29, 2014 at 06:21:48PM +0100, Olav Haugan wrote:
> On 7/29/2014 2:25 AM, Will Deacon wrote:
> > I agree that we can't handle IOMMUs that have a minimum page size larger
> > than the CPU page size, but we should be able to handle the case where the
> > maximum supported page size on the IOMMU is smaller than the CPU page size
> > (e.g. 4k IOMMU with 64k pages on the CPU). I think that could trip a BUG_ON
> > with your patch, although the alignment would be ok in iommu_map because
> > page sizes are always a power-of-2. You also end up rounding the size to
> > 64k, which could lead to mapping more than you really need to.
>
> Which BUG_ON would I trip? If the supported IOMMU page size is less than
> the CPU supported page size then iommu_map will nicely take care of
> splitting up the mapping calls into sizes supported by the IOMMU (taken
> care of by iommu_pgsize()). However, I see you point regarding the
> PAGE_ALIGN of the offset+length that can cause overmapping which you
> don't really want. What is the alternative here? Just leave it and do
> not align at all? That is how iommu_map() currently works. It will
> return error if the iova|phys|size is not aligned to the minimum pgsize
> supported by the IOMMU. So I would not change the behavior if I just
> left it without trying to align.
Yeah, I think losing the align is probably the best bet for now.
> I will remove the BUG_ON for (iova & (~PAGE_MASK)).
Great, that's the BUG_ON I was referring to above.
> >> (The code in __map_sg_chunk in arch/arm/mm/dma-mapping.c does the same
> >> thing btw.)
> >
> > I have the same objection to that code :)
>
> I am hoping we can remove/simplify some of that code when we have the
> iommmu_map_sg API available....
Looking forward to it!
Will
next prev parent reply other threads:[~2014-07-30 9:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 18:38 [PATCH v3 0/1] Add iommu map_sg/unmap_sg calls Olav Haugan
2014-07-28 18:38 ` Olav Haugan
2014-07-28 18:38 ` [PATCH v3 1/1] iommu-api: Add map_sg/unmap_sg functions Olav Haugan
2014-07-28 18:38 ` Olav Haugan
[not found] ` <1406572731-6216-2-git-send-email-ohaugan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2014-07-28 19:11 ` Will Deacon
2014-07-28 19:11 ` Will Deacon
[not found] ` <20140728191111.GW15536-5wv7dgnIgG8@public.gmane.org>
2014-07-29 0:50 ` Olav Haugan
2014-07-29 0:50 ` Olav Haugan
[not found] ` <53D6EFC0.1060308-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2014-07-29 9:25 ` Will Deacon
2014-07-29 9:25 ` Will Deacon
[not found] ` <20140729092547.GB9245-5wv7dgnIgG8@public.gmane.org>
2014-07-29 17:21 ` Olav Haugan
2014-07-29 17:21 ` Olav Haugan
2014-07-30 9:45 ` Will Deacon [this message]
2014-07-30 9:45 ` Will Deacon
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=20140730094557.GD12239@arm.com \
--to=will.deacon@arm.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=mitchelh@codeaurora.org \
--cc=ohaugan@codeaurora.org \
--cc=robdclark@gmail.com \
--cc=thierry.reding@gmail.com \
/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.