linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Mason <jon.mason@intel.com>
To: Dan Williams <djbw@fb.com>
Cc: Vinod Koul <vinod.koul@intel.com>,
	Dave Jiang <dave.jiang@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] ioatdma: add DMA_PRIVATE capabilities flag
Date: Wed, 26 Jun 2013 16:55:21 -0700	[thread overview]
Message-ID: <20130626235521.GH3344@jonmason-lab> (raw)
In-Reply-To: <CAA9_cmeX5Daq9EZ7TGVAjzg=GcOuvpyKeyofwjXgid2c2Wf-UQ@mail.gmail.com>

On Wed, Jun 19, 2013 at 01:44:08PM -0700, Dan Williams wrote:
> On Wed, Jun 19, 2013 at 1:10 PM, Jon Mason <jon.mason@intel.com> wrote:
> > On Wed, Jun 19, 2013 at 11:56:38AM -0700, Dan Williams wrote:
> >> On Wed, Jun 19, 2013 at 10:52 AM, Jon Mason <jon.mason@intel.com> wrote:
> >> >> DMA_PRIVATE here keeps all channels private, so they couldn't be used
> >> >> elsewhere, for example raid offload.  Do you need a private allocation
> >> >> or can you get away with a dynamically assigned channel?
> >> >
> >> > I would like to have a dedicated DMA engine.  async_tx could cause the
> >> > copies to complete out of order.  Do I need to add infrastructure to
> >> > allow for private channel usage, and when unused allow the channel to
> >> > be used by async_tx?
> >>
> >> Can NTB just call dma_find_channel() once and be done?  Also, async_tx
> >> will only get things out of order if you allow it to pick a new
> >> channel for every operation, but as long as you specify a dependency
> >> chain it will keep things in order (same as remembering the result of
> >> dma_find_channel).
> >
> > Neither of these allow a device exclusive access to a channel.  Is
> > this not something that is desired by other users of DMA Engines, or
> > do I have a unique usage model?
> >
> 
> Yes, ioatdma has never been used in a mixed model.  Other platforms
> are either using devicetree bindings for specifying channels to their
> master devices or are exclusively slave channels.  Other slave usage
> models require use of a dedicated channel, since NTB is alternating
> between cpu and dma it seems it could get away with using a "public"
> channel.

Unfortunately, the dma_find_channel model does not led itself to
optimal usage of the available channels, as it seems to give out the
same channel.  Adding some randomizer (or other way to spread the
channel selection over multiple channels) would be greatly
beneficial.

Alternatively, adding an async_memcpy_mmio function (and perhaps some
minimal size to use the DMA engine) would provide a solution that
would work.

However, dma_find_channel should be sufficient to get NTB use of DMA
engines out for review.  I'll clean it up and send it out shortly.
Thanks for the insight.

Thanks,
Jon

  reply	other threads:[~2013-06-26 23:55 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-19  0:46 [PATCH 0/2] DMA Offload fixes Jon Mason
2013-06-19  0:46 ` [PATCH 1/2] dmadevices: dma_sync_wait undefined Jon Mason
2013-06-19  1:13   ` Dan Williams
2013-06-19 16:28     ` Jon Mason
2013-06-20 21:20       ` Dan Williams
2013-06-26 23:47         ` Jon Mason
2013-06-19  0:46 ` [PATCH 2/2] ioatdma: add DMA_PRIVATE capabilities flag Jon Mason
2013-06-19  0:59   ` Dan Williams
2013-06-19 17:36     ` Dave Jiang
2013-06-19 17:52     ` Jon Mason
2013-06-19 18:56       ` Dan Williams
2013-06-19 20:10         ` Jon Mason
2013-06-19 20:44           ` Dan Williams
2013-06-26 23:55             ` Jon Mason [this message]
2013-06-27  1:10               ` Dan Williams

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=20130626235521.GH3344@jonmason-lab \
    --to=jon.mason@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=djbw@fb.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 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).