|
From: Deven T. C. <de...@ti...> - 2003-07-10 18:41:12
|
On Thu, 10 Jul 2003, Robert Lipe wrote:
> Deven T. Corzine wrote:
>
> > zero-copy network stacks (for example) should be possible with UDI,
> > yet it's far from obvious exactly how that would work.
>
> It seldom is.
Perhaps clarifying the connection would help alleviate fears people have of
poor performance if they adopt UDI...
> > equally high performance as a native driver interface? How could a
> > zero-copy design be implemented with UDI, exactly? (Would zero-copy
>
> Because the buf path is passed all the way up and down the I/O path, the
> VM system can provide an optimal mapping that satisfies the alignment
> concerns of the hardware ("I can't DMA to anything other than even
> numbered pages") the upper layers ("the IP address must have alignment
> of X") and everything in the middle.
My impression is the way to avoid making copies is to twiddle the VM system
in such a way as to pass "ownership" between different contexts, or maybe
just provide access to the memory for the duration of the operation. (And,
of course, address alignment issues as you describe.)
Would this be difficult to do if starting from scratch? Suppose I write a
new OS. I'm thinking the right approach would be to start with a very
solid message-passing mechanism in the kernel, and design it to move
messages between contexts without requiring the data to ever be copied,
with lots of cooperation from the VM architecture.
It seems like this would be a solid foundation to build UDI support upon,
and otherwise make for an efficient, high-performance system.
Does this make sense, or am I on crack? :-)
Deven
_______________________________________________
UDI-Tech mailing list
UDI...@pr...
http://lists.projectudi.org/mailman/listinfo/udi-tech
|