linux-mips
[Top] [All Lists]

Re: DMA memory on IP22 unavailable ?

To: Ralf Baechle <ralf@oss.sgi.com>
Subject: Re: DMA memory on IP22 unavailable ?
From: Florian Lohoff <flo@rfc822.org>
Date: Fri, 7 Apr 2000 10:13:46 +0200
Cc: linux@cthulhu.engr.sgi.com
In-reply-to: <20000406153741.C801@uni-koblenz.de>; from Ralf Baechle on Thu, Apr 06, 2000 at 03:37:41PM -0700
Organization: rfc822 - pure communication
References: <20000406215014.E5141@paradigm.rfc822.org> <20000406153741.C801@uni-koblenz.de>
Sender: owner-linuxmips@oss.sgi.com
On Thu, Apr 06, 2000 at 03:37:41PM -0700, Ralf Baechle wrote:
> 
> This change is not acceptable for the IP22 because the Indigo2 has EISA
> slots.

OK 

> When only using the builtin SCSI hostadapter nothing should use GFP_DMA;
> on IP22 the entire memory is DMA-able.

It does request DMA pages which are not available within the zone allocator
or at least not because the kernel occupies the dma able pages
with the setup above. That causes the SCSI Partition scan to fail
as scsi_dma.c requests space for 96 dmaable sectors which are not available.

A couple of locations in the generic scsi code call scsi_resize_dma_pool
which itself tries to get DMA memory via

__get_free_pages(GFP_ATOMIC | GFP_DMA, 0);

Which trys to get pages from ZONE_DMA which itself contains
no free pages on MY indigo2 as the kernel occoupies the handful pages in
the default specified range. This causes scsi_resize_dma_pool to fail
but the locations i checked in the generic scsi code do not check
for return values.

BTW: Are the EISA slots supported ? 
     Does the "Default" MAX_DMA_ADDRESS apply to that DMA controller ?
     My above solution just declares all memory to DMA-able memory.

Solution ?

Flo
-- 
Florian Lohoff          flo@rfc822.org                  +49-subject-2-change
"Technology is a constant battle between manufacturers producing bigger and
more idiot-proof systems and nature producing bigger and better idiots."


<Prev in Thread] Current Thread [Next in Thread>