[RFC PATCH v6 5/5] mmc: queue: Use bigger segments if IOMMU can merge the segments
Yoshihiro Shimoda
yoshihiro.shimoda.uh at renesas.com
Mon Jun 17 06:46:33 UTC 2019
Hi Christoph,
> From: Christoph Hellwig, Sent: Friday, June 14, 2019 4:25 PM
>
> On Thu, Jun 13, 2019 at 07:20:15PM +0900, Yoshihiro Shimoda wrote:
> > +static unsigned int mmc_get_max_segments(struct mmc_host *host)
> > +{
> > + return host->can_merge ? BLK_MAX_SEGMENTS : host->max_segs;
> > +}
>
> Note that BLK_MAX_SEGMENTS is really a little misnamed, it just
> is a BLK_DEFAULT_SEGMENTS. I think you are better of picking your
> own value here (even if 128 ends up ok) than reusing this somewhat
> confusing constant.
Thank you for your comments. I got it. I'll fix this.
> > + /*
> > + * Since blk_mq_alloc_tag_set() calls .init_request() of mmc_mq_ops,
> > + * the host->can_merge should be set before to get max_segs from
> > + * mmc_get_max_segments().
> > + */
> > + if (host->max_segs < BLK_MAX_SEGMENTS &&
> > + device_iommu_mapped(mmc_dev(host)))
> > + host->can_merge = 1;
> > + else
> > + host->can_merge = 0;
> > +
>
> can_merge seems a little too generic a name to me. Maybe can_iommu_merge?
I'll fix the name. Also, only the device_iommu_mapped() condition wiil cause
a problem on iommu=pt [1]. So, I'll add another condition here.
[1]
https://marc.info/?l=linux-mmc&m=156050608709643&w=2
Best regards,
Yoshihiro Shimoda
More information about the iommu
mailing list