From: Jason Gunthorpe <jgg@ziepe.ca>
To: Stephen Warren <swarren@wwwdotorg.org>, Christoph Hellwig <hch@lst.de>
Cc: Tariq Toukan <tariqt@mellanox.com>,
xavier.huwei@huawei.com,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
Doug Ledford <dledford@redhat.com>
Subject: Re: [RFC PATCH] net/mlx4: Get rid of page operation after dma_alloc_coherent
Date: Tue, 18 Dec 2018 11:43:08 -0700 [thread overview]
Message-ID: <20181218184308.GD21992@ziepe.ca> (raw)
In-Reply-To: <66cea824-19f4-1ca2-b6be-550ba1c0636b@wwwdotorg.org>
On Tue, Dec 18, 2018 at 10:45:21AM -0700, Stephen Warren wrote:
> There are two allocation paths; one using dma_alloc_coherent and one using
> alloc_pages. (The hns driver only has the dma_alloc_coherent path.) These
> both store allocations into an sg list which is stored in a table, and that
> table is searched by a single function mlx4_table_find() irrespective of
> which allocation path was used, so if one of the allocation paths is updated
> to store the CPU virtual address differently, then both paths need to be
> updated so they match, so that the single table search path can continue to
> have a single implementation.
So the problem here is that on some arches
sg_set_buf(sg, dma_coherent_buf, size)
p = sg_virt(sg);
assert(p == dma_coherent_buf);
Doesn't work or crashes? Is this how sgl should work?
But if you accept this and don't do the sg_set_buf then the
scatterlist is substantially broken, many of the APIs related to it
will not work as expected at all.
So, I don't think drivers should create such a broken scatterlist or
arches should not have this problem (ie the mathematical
transformation to struct page * and back to virtual address should
work in the coherent space even if there are no backing struct pages
allocated)?
What do you think CH?
Jason
next prev parent reply other threads:[~2018-12-18 18:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-14 23:32 [RFC PATCH] net/mlx4: Get rid of page operation after dma_alloc_coherent Stephen Warren
2018-12-18 13:40 ` Tariq Toukan
2018-12-18 16:32 ` Jason Gunthorpe
2018-12-18 17:08 ` Stephen Warren
2018-12-18 17:12 ` Jason Gunthorpe
2018-12-18 17:45 ` Stephen Warren
2018-12-18 18:43 ` Jason Gunthorpe [this message]
2018-12-18 18:50 ` Christoph Hellwig
2018-12-18 18:51 ` David Miller
2018-12-18 19:04 ` Jason Gunthorpe
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=20181218184308.GD21992@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=dledford@redhat.com \
--cc=hch@lst.de \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=swarren@wwwdotorg.org \
--cc=tariqt@mellanox.com \
--cc=xavier.huwei@huawei.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 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).