Re: SCSI tape buffer allocation hitting memory allocation

Philip Blundell (philb@gnu.org)
Sat, 13 Feb 1999 12:31:05 +0000


>Okay, now that I've realized my first idea is really dumb, I'd like to
>confirm that DMA to an onboard/PCI device does actually work addressing
>physical memory > 64MB. Is this true? I changed scsi_init_malloc() to
>remove the GFP_DMA flag iff the first allocation w/GFP_DMA fails...it
>seems to now work (but obviously it will blow up for ISA cards). Is
>GFP_DMA is used anywhere else other than to tell __get_free_pages() to
>only allocate in areas < 64MB)? I'm assuming this should be safe (for the
>case of this one machine w/no ISA SCSI controllers) if not.

The ISA limit is actually at 16MB for what that's worth. PCI devices should
be able to address the entire 32-bit space.

To answer something you mentioned in an earlier message, the "virtual DMA"
that the floppy driver uses isn't really DMA at all. Instead the driver
performs the data transfer itself using inb and outb instructions to the FDC.
This is why it can get away with a buffer allocated with vmalloc; it's never
addressed by any hardware directly. Some of the low end SCSI hosts do similar
tricks.

p.

-
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/