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/