From: viresh kumar <viresh.kumar@st.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
"Koul, Vinod" <vinod.koul@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"anemo@mba.ocn.ne.jp" <anemo@mba.ocn.ne.jp>,
Shiraz HASHIM <shiraz.hashim@st.com>,
Armando VISCONTI <armando.visconti@st.com>,
Bhupesh SHARMA <bhupesh.sharma@st.com>,
linux-raid <linux-raid@vger.kernel.org>
Subject: Re: Why move all map_sg/unmap_sg for slave channel to its client?
Date: Fri, 10 Jun 2011 09:11:05 +0530 [thread overview]
Message-ID: <4DF19251.1090100@st.com> (raw)
In-Reply-To: <BANLkTikzDEx2netonGyhskYFtiAEAxq5XQ@mail.gmail.com>
On 06/09/2011 11:58 PM, Dan Williams wrote:
> On Thu, Jun 9, 2011 at 2:38 AM, Linus Walleij <linus.walleij@linaro.org> wrote:
>> On Thu, Jun 9, 2011 at 8:54 AM, viresh kumar <viresh.kumar@st.com> wrote:
>>
>>> I thought map_sg/unmap_sg for slave channels will be handled according
>>> to the flags passed in prep_slave_sg(). But then i found following patch:
>>> (...)
>>> I don't have much knowledge about that discussion, but i think this should be left
>>> configurable.
>>> If the client wants to control map/unmap then it can simply pass
>>> DMA_COMPL_SKIP_DEST_UNMAP | DMA_COMPL_SKIP_SRC_UNMAP in flags. I didn't wanted to
>>> skip this in my driver and so i don't pass them.
>>
>> What if the same driver is used on many different platforms like say
>> drivers/tty/serial/amba-pl011.c, and some of the platforms using it
>> has DMA engines that does not implement mapping/unmapping of
>> the passed sglist?
>>
>> In that case I think you have to modify all drivers in drivers/dma/*
>> to do this mapping, and then you could just make it a required behaviour
>> and skip the flags altogether.
>>
>> But apparently that approach was blocked at one point so let's see
>> what the others say.
>
> My problem with automatic unmapping support is that the dma-driver
> really does not have a chance to get it right except for the trivially
> straightforward cases. One need only look at the current bustage of
> raid5 acceleration with respect to overlapping mappings and arm v6.
> The dma-driver just knows how to perform "this" operation on "this"
> dma address. It does not know the lifetime of the mapping, or even if
> it has the actual dma handle for unmapping versus an offset
>
> For the raid case I've currently convinced myself that the raid client
> needs to get directly involved in dma mapping management, rather than
> teach all dma drivers a language of how to unmap and when. Not only
> will this fix the overlapping, but it also eliminates the need to map
> and remap because the raid client knows the lifetime of a stripe_head
> while the driver only knows the lifetime of a given stripe operation.
>
> For slave-dma maybe there is a lot of common un-mapping logic that can
> be reused, but I think that comes from a separate smart library that
> understands the dma mapping lifetimes of a given class of clients.
> Leave the dma-drivers to just be dumb operators on anonymous dma
> addresses.
>
Linus, Dan,
Got it. Thanks for your replies.
--
viresh
next prev parent reply other threads:[~2011-06-10 3:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 6:54 Why move all map_sg/unmap_sg for slave channel to its client? viresh kumar
2011-06-09 9:38 ` Linus Walleij
2011-06-09 18:28 ` Dan Williams
2011-06-10 3:41 ` viresh kumar [this message]
2011-06-10 13:19 ` Atsushi Nemoto
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=4DF19251.1090100@st.com \
--to=viresh.kumar@st.com \
--cc=anemo@mba.ocn.ne.jp \
--cc=armando.visconti@st.com \
--cc=bhupesh.sharma@st.com \
--cc=dan.j.williams@intel.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=shiraz.hashim@st.com \
--cc=vinod.koul@intel.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.