Getting/Forcing Greater than 4KB Buffer Allocations
Scott Long
scottl at samsco.org
Sun Jul 22 02:14:50 UTC 2007
John-Mark Gurney wrote:
> Scott Long wrote this message on Thu, Jul 19, 2007 at 00:56 -0400:
>
>>1Gb and 10Gb adapters. The question I have is whether this new back-end
>>should be accessible directly through yet another bus_dmamap_load_foo
>>variant that the drivers need to know specifically about, or indirectly
>>and automatically via the existing bus_dmamap_load_foo variants. The
>>tradeoff is further API pollution vs the opportunity for even more
>>efficiency through no indirect function calls and no cache misses from
>>accessing the busdma tag. I don't like API pollution since it makes it
>>harder to maintain code, but the opportunity for the best performance
>>possible is also appealing.
>
>
> My vote would be to keep the existing api, and add a flag to the tag
> to select which backend to use...
>
The potential is to avoid cache line misses by disregarding the tag
entirely. Drew has a prototype that shows a very good improvement from
this. The alternative approach requires tag accesses, but can easily
select an appropriate back-end automatically. The tag fields can
probably be rearranged so that only a single cache line is needed. If
it were possible to give a prefetching hint, it would be a moot point,
but I don't think that it is in this case.
Scott
More information about the freebsd-current
mailing list