From: Christian K. <cka...@mi...> - 2004-10-12 17:10:58
|
Dan Aloni <da...@co...>: >The cause of the latency is scheduling, not copying. This may be a better explanation. :-) Well, at least I don't really mind: by bouncing the network data forth and back between the Windows kernel and the userspace, we both get a scheduling problem and some copy operations.=20 So there are two options:=20 - Getting the scheduling problem solved. - Not passing the network data into userspace, but sending it directly to the network.=20 I think that the first solution will not really satisfy our high performance requirements.=20 >I agree, this might solve the scheduling problem. However, I'm not an=20 >expert in Windows kernel programming so connecting the TAP driver with >the coLinux driver is not something I've managed to figure out how to >do so far, nor I dedicated enough time for it. I've been thinking about a way to extend the LINUX.SYS Windows kernel driver with a linked-in module that attaches itself to a configurable network device via NDIS API calls. This way we get a opportunity to directly insert Ethernet frames into the network device and to register a callback as well, which is going to be invoked every time when a packet on the specified interface arrives.=20 This would have the advantage of the lowest possible overhead. There are two disadvantages as well: it is somewhat hard to write & debug and we need a separate IP address for the coLinux VM.=20 Any comments? Suggestions? Regards Christian --=20 Dipl.-Inf. Christian Kauhaus <>< Lehrstuhl Rechnerarchitektur und -kommunikation=20 Institut fuer Informatik =B7 Ernst-Abbe-Platz 1-2 =B7 D-07743 Jena Tel.: (+49) 3641 9 46376 =B7 Fax: (+49) 3641 9 46372 =B7 Raum 3217 |