2001-12-05 18:59:26

by Heinz-Ado Arnolds

[permalink] [raw]
Subject: 2.4.16: running *really* short on DMA buffers

Hi all,

I get the message "kernel: Warning - running *really* short on DMA
buffers" frequently with medium to heavy disk i/o (running several
tar and/or moving huge directories).

Can anybody give me some hints what the reason for this might be
and how to avoid this condition.

Do you need more information (I'm using only SCSI disks attached
to a Symbios controller: <875> rev 0x26 on pci bus 0 device 11 func
tion 0 irq 15)? I even can't find this error string in the kernel
sources.

Thanks for your help.

Ado

--
------------------------------------------------------------------------
Heinz-Ado Arnolds [email protected]
Websystems GmbH +49 2234 1840-0 (voice)
Max-Planck-Strasse 2, 50858 Koeln, Germany +49 2234 1840-40 (fax)


2001-12-05 20:35:06

by Gérard Roudier

[permalink] [raw]
Subject: Re: 2.4.16: running *really* short on DMA buffers



On Wed, 5 Dec 2001, Heinz-Ado Arnolds wrote:

> Hi all,
>
> I get the message "kernel: Warning - running *really* short on DMA
> buffers" frequently with medium to heavy disk i/o (running several
> tar and/or moving huge directories).
>
> Can anybody give me some hints what the reason for this might be
> and how to avoid this condition.

The reason is certainly not driver allocations (either sym53c8xx version 1
or 2), since it performs all allocations of its internal data structures
directly from the page pool. OTOH, the Symbios PCI devices are quite able
to DMA the whole 32 bit physical address range.

So, they are the allocations internal to the scsi layer that may well
exhaust the ISA DMA pool. This pool is divided into 512 bytes chunks.
Under heavy reordering of IOs, it can get very fragmented and much memory
being wasted as a result.

An immediate solution might be to hack the scsi code for it to allocate
more memory.

> Do you need more information (I'm using only SCSI disks attached
> to a Symbios controller: <875> rev 0x26 on pci bus 0 device 11 func
> tion 0 irq 15)? I even can't find this error string in the kernel
> sources.

The error string in well known since years, so you shouldn't have missed
it from sources. :-)

G?rard.

2001-12-06 09:45:45

by Heinz-Ado Arnolds

[permalink] [raw]
Subject: Re: 2.4.16: running *really* short on DMA buffers

G?rard Roudier wrote:
>
> On Wed, 5 Dec 2001, Heinz-Ado Arnolds wrote:
>
> > Hi all,
> >
> > I get the message "kernel: Warning - running *really* short on DMA
> > buffers" frequently with medium to heavy disk i/o (running several
> > tar and/or moving huge directories).
...
> So, they are the allocations internal to the scsi layer that may well
> exhaust the ISA DMA pool. This pool is divided into 512 bytes chunks.
> Under heavy reordering of IOs, it can get very fragmented and much memory
> being wasted as a result.
>
> An immediate solution might be to hack the scsi code for it to allocate
> more memory.

I'm not an experienced kernel hacker. Please help me: would it be right
to increase the constant 2 in

new_dma_sectors = 2 * SECTORS_PER_PAGE;
^
in drivers/scsi/scsi_dma.c, scsi_resize_dma_pool() to 3 or 4 as a first
solution. Or is there an other place I should start?

> The error string in well known since years, so you shouldn't have missed
> it from sources. :-)
Sorry, my stupid fault. For sure, it's in drivers/scsi/scsi_merge.c.

Thanks for your attention

Ado

--
------------------------------------------------------------------------
Heinz-Ado Arnolds [email protected]
Websystems GmbH +49 2234 1840-0 (voice)
Max-Planck-Strasse 2, 50858 Koeln, Germany +49 2234 1840-40 (fax)