From: Haavard Skinnemoen <hskinnemoen@atmel.com>
To: "Dan Williams" <dan.j.williams@intel.com>
Cc: "Shannon Nelson" <shannon.nelson@intel.com>,
linux-kernel@vger.kernel.org,
"David Brownell" <david-b@pacbell.net>,
kernel@avr32linux.org, linux-arm-kernel@lists.arm.linux.org.uk
Subject: Re: [PATCH] DMA: Correct invalid assumptions in the Kconfig text
Date: Wed, 24 Oct 2007 20:16:16 +0200 [thread overview]
Message-ID: <20071024201616.02f87b20@siona> (raw)
In-Reply-To: <e9c3a7c20710240855j7bf1f0a6qa1d11af3a12910e5@mail.gmail.com>
On Wed, 24 Oct 2007 08:55:58 -0700
"Dan Williams" <dan.j.williams@intel.com> wrote:
> > Don't get me wrong; I think Intel deserves lots of respect for
> > creating this framework. But this is also why I got a bit
> > disappointed when I discovered that it seems to be less generic
> > than I initially hoped.
> >
>
> Patches welcome :-)
Sure, that's the plan, and this patch is a start, isn't it? I just
wanted to make sure that the generic-sounding DMA Engine API would
allow more "traditional" DMA controller functionality in addition to
all the high-end RAID and networking stuff.
> Part of the problem of supporting slave/device DMA along side generic
> memcpy/xor/memset acceleration is that it adds a number of caveats and
> restrictions to the interface. One idea is to create another client
> layer, similar to async_tx, that can handle the architecture specific
> address, bus, and device pairing restrictions. In other words make
> device-dma a superset of the generic offload capabilities and move it
> to its own channel management layer.
Yes, I've been thinking along those lines, and
Documentation/crypto/async-tx-api.txt seems to suggest something like
that for platform-specific extensions. More specifically, I'm thinking
about adding a few new structs which wrap around some of the existing
ones, like struct dma_async_tx_descriptor, adding new ops and data
members. So it will be sort of a generic, optional extension of the API.
If that works out well, we may also consider moving some of the
async_tx-specific fields into an extended struct of its own. But that
will be more of an optimization or cleanup. I don't want to hurt any
existing users.
Then we're going to need some new hooks for creating those extended
descriptors. This can be done either by adding more hooks in struct
dma_device or by creating another "subclass".
Yes, I'm mostly handwaving at this point, but I intend to follow up
with actual code soon. Unless someone else beats me to it, of course.
> > I'm not going to suggest any changes to the actual framework for
> > 2.6.24, but I think the _intention_ of the framework needs to be
> > clarified.
> >
>
> Should this patch wait until the framework has been extended?
IMO, no. The first step I'm planning to do is to get the driver working
within the existing framework, i.e. as a pure memcpy offload
engine, and verify that it can indeed improve networking performance.
This would imply that the framework itself isn't Intel-specific even
though all the existing drivers are for Intel hardware. And I don't
think the proposed text makes any new promises that weren't there
before.
And I think it's important to clarify that what is meant to live under
drivers/dma isn't just RAID and networking acceleration engines -- it
is realy meant to be a generic DMA engine framework. If this isn't
true, I might as well stop writing the driver based on this framework
and instead focus on creating a new one.
But I'm pretty optimistic about being able to extend the API in a way
that will not hurt existing functionality and still provide what we
need to support embedded DMA controllers. In fact, it looks a lot
easier to do with the current incarnation of the API than it did
earlier.
> Otherwise, Acked-by: Dan Williams <dan.j.williams@intel.com>
Thanks. Are one of you going to pick it up as well?
Håvard
next prev parent reply other threads:[~2007-10-24 18:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-24 9:38 [PATCH] DMA: Correct invalid assumptions in the Kconfig text Haavard Skinnemoen
2007-10-24 15:11 ` Nelson, Shannon
2007-10-24 15:55 ` Dan Williams
2007-10-24 18:16 ` Haavard Skinnemoen [this message]
2007-10-25 9:32 ` Haavard Skinnemoen
2007-10-26 17:02 ` Dan Williams
2007-10-27 13:58 ` Haavard Skinnemoen
2007-10-27 18:10 ` Dan Williams
2007-10-26 16:44 ` Dan Williams
2007-10-27 16:07 ` Haavard Skinnemoen
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=20071024201616.02f87b20@siona \
--to=hskinnemoen@atmel.com \
--cc=dan.j.williams@intel.com \
--cc=david-b@pacbell.net \
--cc=kernel@avr32linux.org \
--cc=linux-arm-kernel@lists.arm.linux.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=shannon.nelson@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox