RE: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-06 Thread Yoshihiro Shimoda
Hi Christoph, > From: Christoph Hellwig, Sent: Friday, June 7, 2019 2:50 PM > > On Fri, Jun 07, 2019 at 05:41:56AM +, Yoshihiro Shimoda wrote: > > > bool blk_can_use_iommu_merging(struct request_queue *q, struct device > > > *dev) > > > { > > > if (!IOMMU_CAN_MERGE_SEGMENTS(dev)) > > >

Re: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-06 Thread Christoph Hellwig
On Fri, Jun 07, 2019 at 05:41:56AM +, Yoshihiro Shimoda wrote: > > bool blk_can_use_iommu_merging(struct request_queue *q, struct device *dev) > > { > > if (!IOMMU_CAN_MERGE_SEGMENTS(dev)) > > return false; > > As Robin mentioned, all IOMMUs can merge segments so that we don't

RE: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-06 Thread Yoshihiro Shimoda
Hi Christoph, > From: Christoph Hellwig, Sent: Thursday, June 6, 2019 4:01 PM > > On Thu, Jun 06, 2019 at 06:28:47AM +, Yoshihiro Shimoda wrote: > > > The problem is that we need a way to communicate to the block layer > > > that more than a single segment is ok IFF the DMA API instance suppo

Re: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-06 Thread Christoph Hellwig
On Thu, Jun 06, 2019 at 06:28:47AM +, Yoshihiro Shimoda wrote: > > The problem is that we need a way to communicate to the block layer > > that more than a single segment is ok IFF the DMA API instance supports > > merging. And of course the answer will depend on futher parameters > > like the

RE: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Yoshihiro Shimoda
Hi Christoph, Thank you for your comments! > From: Christoph Hellwig, Sent: Wednesday, June 5, 2019 9:38 PM > > On Wed, Jun 05, 2019 at 01:21:59PM +0100, Robin Murphy wrote: > > And if the problem is really that you're not getting merging because of > > exposing the wrong parameters to the DMA A

RE: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Yoshihiro Shimoda
Hi Robin, Thank you for your comments! > From: Robin Murphy, Sent: Wednesday, June 5, 2019 9:22 PM > > @@ -902,8 +914,18 @@ static int iommu_dma_map_sg(struct device *dev, struct > > scatterlist *sg, > > if (iommu_map_sg(domain, iova, sg, nents, prot) < iova_len) > > goto out_fr

Re: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Sergei Shtylyov
On 06/05/2019 02:11 PM, Yoshihiro Shimoda wrote: > This patch adds a new capable IOMMU_CAP_MERGING to check whether > the IOVA would be contiguous strictly if a device requires and > the IOMMU driver has the capable. s/has/is/? Or capable what? > Signed-off-by: Yoshihiro Shimoda > --- > dri

Re: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Christoph Hellwig
On Wed, Jun 05, 2019 at 01:21:59PM +0100, Robin Murphy wrote: > And if the problem is really that you're not getting merging because of > exposing the wrong parameters to the DMA API and/or the block layer, or > that you just can't quite express your requirement to the block layer in > the first

Re: [RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Robin Murphy
On 05/06/2019 12:11, Yoshihiro Shimoda wrote: This patch adds a new capable IOMMU_CAP_MERGING to check whether the IOVA would be contiguous strictly if a device requires and the IOMMU driver has the capable. Signed-off-by: Yoshihiro Shimoda --- drivers/iommu/dma-iommu.c | 26 +

[RFC PATCH v5 3/8] iommu: add a new capable IOMMU_CAP_MERGING

2019-06-05 Thread Yoshihiro Shimoda
This patch adds a new capable IOMMU_CAP_MERGING to check whether the IOVA would be contiguous strictly if a device requires and the IOMMU driver has the capable. Signed-off-by: Yoshihiro Shimoda --- drivers/iommu/dma-iommu.c | 26 -- include/linux/iommu.h | 1 + 2 fi