Message-ID: From: "Sisco, Michael" To: "'sandmann AT clio DOT rice DOT edu'" Cc: djgpp AT delorie DOT com Subject: RE: Int 0x22??? Date: Thu, 10 Oct 2002 16:54:37 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2656.59) Content-Type: text/plain; charset="iso-8859-1" Reply-To: djgpp AT delorie DOT com > (_go32_dpmi_chain_protected_mode_interrupt_vector). > > These aren't reentrant. And they have some overhead. And > chaining takes > a lot of overhead (needs to call back to real mode). It's > much better if > you just hook the interrupt and do cleanup yourselves. Even > better if you > do it from your own wrapper ... > We can have multiple identical PCI boards plugged into our system, and they may have to share interrupts with other hardware (or each other), so chaining seems to be the easiest solution. We can work around this if need be, but I think we have worked out most of our problems (read on). > > > Do you keep interrupts disabled? > > I'm not sure I understand. The first line of our interrupt > handler is > > disable(); and the last line is enable(); if that's what you mean. > > Ouch. Try removing the enable (and the disable). The enable > would let a > second interrupt hit the wrapper before the first one was clear. Bingo! This appears to be the biggest source of our problems. We removed these lines from the handler, and things improved dramatically, although I'm not completely sure I understand why. Doesn't the interrupt controller prevent "simultaneous" interrupts anyway? > > > What version of cwsdpmi? > > CWSDPMI V0.90+ > > r5? Image size? Yes, r5. Image size is 19,335 bytes. Thanks once more, Michael