Thread (28 messages) flat view 28 messages, 5 authors, 2002-06-15

Re: [PATCH] pci_alloc_consistent in an interrupt context

From: Tom Rini <hidden>
Date: 2002-06-14 14:59:30

On Fri, Jun 14, 2002 at 03:14:50PM +1000, David Gibson wrote:
On Thu, Jun 13, 2002 at 05:51:56PM -0700, Tom Rini wrote:
quoted
On Fri, Jun 14, 2002 at 10:45:39AM +1000, David Gibson wrote:
quoted
On Thu, Jun 13, 2002 at 05:38:07PM -0700, Tom Rini wrote:
[snip]
quoted
quoted
Er, the problem of setting dma_handle twice?
Well, it fixes that and as a bonus gets rid of the ifdefs in
pci_{alloc,free}_consistent() and means that if we ever port a driver
using consistent_{alloc,free}() to a processor that *is* cache
coherent it will Just Work.
In theory at that point OCP would either have its API fully flushed out
or be applied nicely on top of the generic driver work in 2.5 and it
would just work anyhow :)
Well at the moment OCP drivers call consistent_alloc() directly which
would always fail on cache-coherent processors.
Yes.  And at the moment OCP is still a work in progress too.  As I said
before, by the time that pops up, OCP will either have it's API finished
(and look alot like PCI so drivers shouldn't be calling
consistent_alloc() themselves) or be worked in nicely with the generic
driver work in 2.5, which again will be copying pci_alloc_consistent()
to driver_alloc_consistent().
quoted
quoted
quoted
My only concern is that are things still consistent on non consistent
procs?
Absolutely - no change to the code path at all on non cache coherent
processors.
So kmalloc/kfree are equivilent to __get_free_pages/free_pages ?
Read that again: on *non* cache coherent processors the code path is
the same.  kmalloc() vs. __get_free_pages() is a problem for
processors which *are* cache coherent.
Yes.  And there's 2 things here which I'm wondering about:
(a) Why do we call __get_fre_pages/free_pages now on coherent procs?
Can we really just call something else and have it work?
(b) Is it really a good idea to have a function called
'consistent_alloc()' which doesn't actually do that, for the sake of
removing 2 ifdefs?

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help