www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/08/02/19:16:20

From: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: CWSDPMI: slow IRQ wrapper
Date: Sun, 2 Aug 1998 17:43: 0
Organization: Aspen Technology, Inc.
Lines: 21
Message-ID: <35c4a524.sandmann@clio.rice.edu>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 980728112035 DOT 4133T-100000 AT is>
Reply-To: sandmann AT clio DOT rice DOT edu
NNTP-Posting-Host: dmcap2.aco.aspentech.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

> > Is there other extender avaiable with fast IRQ handling capables as 
> > PMODE by TRAN for DJGPP ?
> 
> The wrappers have nothing to do with the DPMI server.  They are library 
> helper functions which work the same with any server.  So switching a 
> server won't change much.  If you want faster response, use CWSDPR0 which 
> runs at ring 0, but doesn't support virtual memory.

Eli is completely correct about the wrappers.  But they don't add that much
overhead (and are unlikely to be the limiting step).  The biggest problems
are mode switches (a killer in any DPMI provider) and ring changes.  If
a switch to CWSDPR0 (or PMODETSR, available where you get CWSDPMI, and I
strongly recommend as the fastest ring 0 provider) solves the problem, you
should use that.

In the past, however, I have found people will call a DOS or BIOS service
to "wait" while the interrupts come in, which requires a mode switch, and
even PMODE fails at 10K interrupts/sec.  You need to keep the processor
completely in protected mode while handling high frequency interrupts (no
library calls, no disk I/O, no BIOS, etc) or install a dual mode interrupt
handler - which is completely outside the scope of a newsgroup discussion.

- Raw text -


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