Jack Vogel writes:
> We are making our development driver for the I/OAT engine available for
> download, experimentation, and comment available at:
> This includes a core driver for the dma hardware and a set of stack changes
> to allow use of the engine on the receive side of the stack.
> There are certainly rough edges and limitations in this code, but we have run
> it internally and seen some great results.
> I would like to see this get into CURRENT, so anything Prafulla and I can do
> to help or answer questions, send us email.
Excellent! Can you share some of these results? I would love to try
it, but I don't have FreeBSD on any machine with I/OAT hardware.
I've taken a very quick look at it. Maybe I'm just being dense,
but I don't like the name "dma_" being in the global namespace.
Maybe things (like dma_*_list should be called at least
There are some style(9) defects which I'm sure others who are more
proficient at style(9) than I am will point out (// comments, function
names not starting in column 0, etc).
How deep would you expect so->dma_wait_queue to get? Would it make
sense to keep a pointer to the last item so that insertion is O(1),
rather than O(N)?
Would it be possible to have a sysctl tunable threshold, below which
the system does a normal uiomove? A normal copyout() will certainly
be faster at some point..
Thanks for the great work!