public inbox for linux-arch@vger.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@SteelEye.com>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: Russell King <rmk@arm.linux.org.uk>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	William Lee Irwin III <wli@holomorphy.com>,
	Linux Arch list <linux-arch@vger.kernel.org>,
	Linus Torvalds <torvalds@osdl.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Christoph Hellwig <hch@infradead.org>,
	Andrew Morton <akpm@osdl.org>, Andrea Arcangeli <andrea@suse.de>
Subject: Re: can device drivers return non-ram via vm_ops->nopage?
Date: 22 Mar 2004 21:26:25 -0500	[thread overview]
Message-ID: <1080008788.2165.13.camel@mulgrave> (raw)
In-Reply-To: <405F7837.2010800@pobox.com>

On Mon, 2004-03-22 at 18:35, Jeff Garzik wrote:
> Agreed, but due to OSS dain bramage you can read/write as much as you 
> like, up until the mmap point, AFAICS.  It's much easier for the driver 
> to allocate one set of buffers, than to allocate a set at open(2), throw 
> away those allocs at mmap(2) and make new ones.

I didn't say throw the buffers away, merely the mapping.

I think you're looking at this the wrong way.  We only get into this
whole mess of being coherent with respect to a single address space if
we don't obey the virtual address congruence modulus rules

As Russell already pointed out, as long as we can force the virtual
addresses of the mappings (that's all mappings, in both the kernel and
in user space) to obey the congruence modulus rules then were home free.

On PA, we already force any mmapping that will be shared (MAP_SHARED) to
obey the congruence rules (we allocate them all at 0 mod 4MB, which is
our congruence modulus) by hijacking arch_get_unmapped_area.

Thus, as long as the sound card application designates its mappings as
MAP_SHARED, we're half way there.  The other wrinkle is that we'll have
to allocate the coherent memory *also* on a virtual address of 0 mod
4MB.  i.e. if we can be told *before* we hand out the coherent area that
it will be mmapped, we can make it work.  This is going to have to be an
extra flag to dma_alloc_coherent() or something.

The wrong thinking is that this is something we can fix at mapping time,
it's not, it's something we have to set up at buffer allocation time.

James

      reply	other threads:[~2004-03-23  2:27 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20040321204931.A11519@infradead.org>
     [not found] ` <1079902670.17681.324.camel@imladris.demon.co.uk>
     [not found]   ` <Pine.LNX.4.58.0403211349340.1106@ppc970.osdl.org>
     [not found]     ` <20040321222327.D26708@flint.arm.linux.org.uk>
     [not found]       ` <405E1859.5030906@pobox.com>
     [not found]         ` <20040321225117.F26708@flint.arm.linux.org.uk>
     [not found]           ` <Pine.LNX.4.58.0403211504550.1106@ppc970.osdl.org>
     [not found]             ` <20040321234515.G26708@flint.arm.linux.org.uk>
     [not found]               ` <20040322002349.GZ2045@holomorphy.com>
     [not found]                 ` <405E3387.1050505@pobox.com>
2004-03-22  3:45                   ` can device drivers return non-ram via vm_ops->nopage? William Lee Irwin III
2004-03-22  4:41                     ` James Bottomley
2004-03-22  4:46                       ` William Lee Irwin III
2004-03-22  4:56                         ` James Bottomley
2004-03-22  5:26                           ` Benjamin Herrenschmidt
2004-03-22 11:58                             ` Andrea Arcangeli
2004-03-22 12:05                               ` Russell King
2004-03-22 12:34                                 ` Andrea Arcangeli
2004-03-22  9:30                       ` Russell King
2004-03-22 15:04                         ` James Bottomley
2004-03-22 15:15                           ` Russell King
2004-03-22 15:27                             ` James Bottomley
2004-03-22 21:50                               ` Benjamin Herrenschmidt
2004-03-22 22:18                                 ` Jeff Garzik
2004-03-22 22:35                                   ` William Lee Irwin III
2004-03-22 23:57                                     ` Benjamin Herrenschmidt
2004-03-23  0:22                                       ` David Woodhouse
2004-03-23  2:07                                       ` William Lee Irwin III
2004-03-23  9:28                                         ` Russell King
2004-03-23  9:34                                           ` David Woodhouse
2004-03-23 10:04                                             ` Russell King
2004-03-23 10:05                                               ` William Lee Irwin III
2004-03-23 11:29                                               ` Benjamin Herrenschmidt
2004-03-23 11:35                                         ` Andrea Arcangeli
2004-03-23 11:44                                           ` William Lee Irwin III
2004-03-23 12:34                                             ` Andrea Arcangeli
2004-03-23 12:40                                               ` Russell King
2004-03-23 15:25                                                 ` Linus Torvalds
2004-03-23 15:36                                                   ` Andrea Arcangeli
2004-03-23 15:46                                                     ` Linus Torvalds
2004-03-23 15:50                                                     ` Russell King
2004-03-23 22:10                                                     ` Benjamin Herrenschmidt
2004-03-25 20:25                                                 ` Russell King
2004-03-28 10:17                                                   ` Russell King
2004-03-23 12:49                                               ` William Lee Irwin III
2004-03-22 23:19                                   ` Russell King
2004-03-22 23:35                                     ` Jeff Garzik
2004-03-23  2:26                                       ` James Bottomley [this message]

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=1080008788.2165.13.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=akpm@osdl.org \
    --cc=andrea@suse.de \
    --cc=benh@kernel.crashing.org \
    --cc=dwmw2@infradead.org \
    --cc=hch@infradead.org \
    --cc=jgarzik@pobox.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=rmk@arm.linux.org.uk \
    --cc=torvalds@osdl.org \
    --cc=wli@holomorphy.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