On Thu, 2007-05-24 at 10:22 -0700, Christoph Lameter wrote: > On Thu, 24 May 2007, James Bottomley wrote: > > > The idea was basically to match an allocation to a device mask. I was > > going to do a generic implementation (which would probably kmalloc, > > check the physaddr and fall back to GFP_DMA if we were unlucky) but > > allow the architectures to override. > > Hmmmm... We could actually implement something like it in the slab > allocators. The mask parameter would lead the allocator to check if the > objects are in a satisfactory range. If not it could examine its partial > lists for slabs that satisfy the range. If that does not work then it > would eventually go to the page allocator to ask for a page in a fitting > range. > > That wont be fast though. How performance sensitive are the allocations? Most of them aren't very. They're usually things that are set at driver intialisation time (shared mailbox memory etc). If the allocation is performance sensitive and has to be done at command or ioctl submission time, we tend to feed the consistent or mapped memory into a dma pool which pre allocates and solves the performance issue. In the aacraid case, the mbox is done at ioctl time, but isn't incredibly performance sensitive. James - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html