Xref: news2.mv.net comp.os.msdos.djgpp:6151 From: gunnar AT cls DOT net (Gunnar Kempke) Newsgroups: comp.os.msdos.djgpp Subject: Re: Interrupt overhead with DJGPP's extender Date: Fri, 19 Jul 1996 08:29:53 GMT Organization: commercial link systems Lines: 37 Message-ID: <4snh34$f76@freeside.cls.de> References: <31EC2DD4 DOT 7A94 AT ee DOT ubc DOT ca> <31ed4846 DOT sandmann AT clio DOT rice DOT edu> Reply-To: gunnar AT cls DOT net NNTP-Posting-Host: trantor.cls.de To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Charles Sandmann wrote: > ... >The fastest case would be using either CWSDPR0 or PMODE/DJ - both of which >are ring 0 providers which don't swap interrupt stacks - and to have all >interrupts handled in the mode which they happen (no mode swaps). In >this case there is no additional overhead vs the standard "real mode" >type interrupt handlers. We develop a commercial IP-Router using djgpp and I found PMODE/DJ to be a lot faster when it comes to handling interupts. Up to now I thought the reason for this is because CWSDPR0 passes real mode interrupts to the protected mode no matter if there is a real mode handler for the interrupt. What is the difference between these extenders regarding interrupts? What happens in our case is: IP-Packet comes in from the network A HW-Interrupt is generated by the Ethernet/ISDN/whatever Card The Interrupt is handled by a real mode packet driver The packet driver passes the packet up to the proteced mode routing sofware via a callback function The routing software processes the packet and transfers it to the appropriate real mode packet driver which then sends it out to the network. Using PMODE this is about three times as fast as with CWSDPR0 Why this? greetings, Gunnar