Messages in this thread | | | From | Jakub Jelinek <> | Subject | Re: kmalloc | Date | Mon, 25 Jan 1999 23:41:21 +0100 (CET) |
| |
> > Date: Mon, 25 Jan 1999 22:49:58 +0200 (EET) > From: Matti Aarnio <matti.aarnio@sonera.fi> > > I think we will be needing GFP_DMA32 soon. > (And it will cause *massive* amounts of changes as practically all > drivers will need touching...) > > DaveM can tell us how the large SPARC64 systems do it with their heaps > of busses and address spaces. > > "Massive"? It's very simple to make it work: > > 1) Set include/asm/scatterlist.h:ISA_DMA_THRESHOLD and > include/asm/dma.h:MAX_DMA_ADDRESS appropriately for your > architecture. > > 2) For all SCSI drivers just have them set host->unchecked_isa_dma to 1 > > 3) For all networking drivers, have them use GFP_DMA when allocating > receive buffers and in the transmit code do something like:
It is really that easy to get things working, although the fastest solution may be different. We plan to play IO page table tricks in 2.3 to see if dynamic DMA allocation (already done on sun4c and sun4d) could be a win there. Then the drivers just have to use some yet-to-be designed arch independent interface to grab a DMA area and to release it later (sparc drivers already use something like that, but it would be good to introduce it as a generic interface which would just give the dma handle and a nop on release when no grabbing/releasing is necessary (ie. in sparc64 case the address is either below 4GB-delta PA)). We'll have to rethink the readl/... etc. interface in 2.3 anyway IMHO, so such thing could be part of the new MMIO interface. (matroxfb is a good example what problems are with current Linux arch independent interface (if there actually is any)).
Cheers, Jakub ___________________________________________________________________ Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz Administrator of SunSITE Czech Republic, MFF, Charles University ___________________________________________________________________ UltraLinux | http://ultra.linux.cz/ | http://ultra.penguin.cz/ Linux version 2.2.0-final on a sparc64 machine (3958.37 BogoMips) ___________________________________________________________________
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |