delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/07/19/09:17:34

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 <sandmann AT clio DOT rice DOT edu> 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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019