WinDriver - No Performance Limitations

Improve Driver Performance Checklist

The following "Checklist" will help you determine how to improve the performance of your driver:

  1. Create your driver in the User Mode as explained in the previous chapters of this manual.
  2. Compile and debug your driver in the User Mode.
  3. When working in the User Mode, performance may take a hit. Check if you have performance problems. If you do not have any performance problems, you have finished your driver development.

If you do have performance problems:

  1. Identify which part of the code the performance problem is at. Classify and solve the problem according to the table below:
  Problem Solution

#1

ISA Card - Accessing an IO mapped range on the card.
  • Try to convert multiple calls to WD_Transfer() to one call to WD_MultiTransfer()
  • If this does not solve the problem, handle the IO at Kernel Mode, by writing a Kernel PlugIn.

#2

PCI Card - Accessing an IO mapped range on the card.
  • First, try to change the card from IO mapped to memory mapped by changing bit 0 of the address space PCI configuration register to 0, and then try the solutions for problem #3. You will probably need to re-program the EEPROM to initialize BAR0/1/2/3/4/5 registers with different values.
  • If this is not possible, try the solutions suggested for problem #1.
  • If this does not solve the problem, handle the IO at Kernel Mode, by writing a Kernel PlugIn.

#3

Accessing a memory mapped range on the card.
  • Try to access memory without using WD_Transfer(), by using direct access to memory mapped regions
  • If this does not solve the problem, then there is a hardware design problem. You will not be able to increase performance by using any software design method, or by writing a Kernel PlugIn, or by writing a full kernel driver.

#4

Interrupt latency. (Missing interrupts, Receiving interrupts too late)
  • You need to handle the interrupts at Kernel Mode, by writing a Kernel PlugIn.


Technical Reference

WinDriver products are accompanied with highly detailed technical references that are designed to assist you in various stages of the development process.

If you have just started evaluating or using WinDriver, you may find our Quick Start Guides helpful.

Should you require more in-depth information, or would like to know more about the technical aspects of WinDriver, please refer to our Online Manual.

For other technical resources, such as FAQs and technical documents — see WinDriver's Support Page.