[patch[ twa, bus_dma.h, busdma_machdep.c (amd64)

Sean Bryant bryants at gmail.com
Sat Apr 29 18:57:15 UTC 2006


I loaded up 6.1-Stable on a Dual Dual Core Opteron, with a 3ware
9550sx-4lp raid card in it and noticed a horrid boot time.
Well after investigating the issue it turns out the twa driver had
problems creating the bus_dmamaps. It was creating 255 request buffers
and giving each of them a dma map.
Yippie! This leaves me with about a 7 - 10 minute boot time.

To correct this problem I created a bus_dmamap_create_v (should probably
be called bus_dmamap_create_many as mux suggested) and this creates a
large amount of dma maps all at once.
Obviously to test I modified the twa driver to use the new function.
I've seen no problems so far. let me know if you see any glaring errors.
As there are probably some. Disk performance remained the same just
speed up boot time considerably. This is only tested with amd64 code.
The code *should* work with i386, but I wasn't able to test it. Please
test and let me know of any problems.

And I apologize ahead of time if this is useless I don't know much about
the topic but was in need of a quick fix.
--
Sean Bryant
-------------- next part --------------
A non-text attachment was scrubbed...
Name: busdma_machdep.c.patch
Type: application/octet-stream
Size: 2573 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060429/422b4d30/busdma_machdep.c.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bus_dma.h.patch
Type: application/octet-stream
Size: 437 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060429/422b4d30/bus_dma.h.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tw_osl_freebsd.c.patch
Type: application/octet-stream
Size: 4152 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060429/422b4d30/tw_osl_freebsd.c.obj


More information about the freebsd-stable mailing list