Extreme contigmalloc() slowness with mpt driver

Kris Kennaway kris at obsecurity.org
Fri Jan 13 21:21:19 PST 2006


I have an amd64 machine with 16GB of RAM that takes ages to boot (~40
minutes on 7.0).  This is because the mpt driver takes 20 minutes to
attach (with 2 instances).  This in turn is because the following code
from dev/mpt/mpt_pci.c:mpt_dma_mem_alloc() takes about 5 seconds to
execute, and it is run 256 times in a loop:

                error = bus_dmamap_create(mpt->buffer_dmat, 0, &req->dmap);

When I set vm.old_contigmalloc=1, the system boots without delay.

This points to a bug in contigmalloc.

Kris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20060114/a7c6c0e5/attachment.bin


More information about the freebsd-current mailing list