mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Moore <dcm@MIT.EDU>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Bill Davidsen <davidsen@tmr.com>,
	theSeinfeld@users.sourceforge.net,
	linux1394-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org,
	libdc1394-devel@lists.sourceforge.net
Subject: Re: allocation failed: out of vmalloc space error treating and   VIDEO1394 IOC LISTEN CHANNEL ioctl failed problem
Date: Mon, 15 Jan 2007 14:54:40 -0500	[thread overview]
Message-ID: <1168890881.10136.29.camel@pisces.mit.edu> (raw)
In-Reply-To: <1168885223.3122.304.camel@laptopd505.fenrus.org>

On Mon, 2007-01-15 at 10:20 -0800, Arjan van de Ven wrote:
> if you need that much you probably should redesign your algorithms to
> not need vmalloc in the first place....

I think you've convinced me that vmalloc is not a good choice when a
driver needs a large buffer (many megabytes) for DMA.

In this case, we need a large ring buffer for reception of isochronous
packets from a firewire device.  If I understand you correctly, you are
suggesting that this buffer be obtained as followed:

1. Application performs malloc() in user-space and mmap()s it.
2. Driver uses vmalloc_to_page() on every page of the malloc'ed memory
and constructs a scatter-gather list.
3. Map the sg list with pci_map_sg().
4. Commence DMA.

Is that correct?  In particular, does it do the right thing in terms of
pinning the memory and dealing with high memory?

I notice that the block I/O API has some convenience functions for this,
but this is not a block device.  Are there some other convenience
functions that can be used?

Forgive me if these are obvious questions -- I'm not the developer of
video1394, but I'd still like get it right for the new firewire stack
that's being developed.

Thanks,

David


  reply	other threads:[~2007-01-15 20:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.59.1168027378.1221.libdc1394-devel@lists.sourceforge.net>
     [not found] ` <200701100023.39964.theSeinfeld@users.sf.net>
2007-01-14 19:19   ` Stefan Richter
2007-01-14 19:28     ` Arjan van de Ven
2007-01-14 20:31       ` Stefan Richter
2007-01-14 20:48         ` Arjan van de Ven
2007-01-15  4:14         ` Peter Antoniac
2007-01-15  6:01           ` Peter Antoniac
2007-01-15 18:02       ` Bill Davidsen
2007-01-15 18:20         ` Arjan van de Ven
2007-01-15 19:54           ` David Moore [this message]
2007-01-15 21:06             ` Kristian Høgsberg
2007-01-15 21:24               ` Arjan van de Ven
2007-01-15 21:43                 ` Kristian Høgsberg
2007-01-16  2:40                   ` Peter Antoniac
2007-01-16  5:21                   ` David Moore
2007-01-16 17:58                     ` Arjan van de Ven
2007-01-16  8:16             ` Gerd Hoffmann

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=1168890881.10136.29.camel@pisces.mit.edu \
    --to=dcm@mit.edu \
    --cc=arjan@infradead.org \
    --cc=davidsen@tmr.com \
    --cc=libdc1394-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    --cc=theSeinfeld@users.sourceforge.net \
    /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

all inboxes | Powered by JetHome®