Steve Kargl wrote: > On Sat, Jan 14, 2006 at 12:21:17AM -0500, Kris Kennaway wrote: > >>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. >> > > > This is probably related to my recent reports of extremely > slow probing of fxp0. I have 12 GB on a Tyan K8S Pro and > fxp0 takes on the order of 7 minutes to probe. > Yep, that's the same reason. THe issue here is that bus_dmamap_create is using contigmalloc to allocate bounce pages for the device. At the request of Soeren, I recently upped the max limit on bounce pages from 512 to 4096. Before that, drivers would quickly reach the max and then move on. Now that the max is a lot higher, I guess it points to a scalability problem in the page search algorithm of contigmalloc. ScottReceived on Sat Jan 14 2006 - 14:28:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:50 UTC