Windows driver affinity
Setting Windows driver affinity
On a multiprocessor system, the operating system routes an I/O request through as efficient a path as its programming permits. Often this path is not the optimal performance path, primarily due to system architecture. A user who is aware of the particular hardware layout of a system can maximize driver performance by specifying the routing of its I/O. The HP IO Accelerator Windows® driver provides a mechanism to specify an affinity of its I/O to a particular processor or set of processors. This helps the operating system route the requests through a more efficient path.
Many multiprocessor systems employ a uniform method of routing request threads. These threads receive a relatively equal amount of processor time from any processor assigned by the operating system. More recently, some systems have been developed with the NUMA architecture which couples a subset of total physical memory with a node containing one or more processors. One advantage to the NUMA architecture is the improvement in throughput of operations that can be handled using a particular processor and its locally associated memory. The disadvantage to NUMA becomes apparent when the operation must take place between a particular processor and memory that is physically associated with a processor on a different node.
To overcome this disadvantage, the operating system permits applications to programatically specify the affinity of an operation, interrupt, or a thread with a particular processor or set of processors. For the Windows Server® 2008 operating system, the IO Accelerator driver has been updated to accept
To implement one of these values:
1.Open the Windows® Registry editor.
2.In the Windows® Registry, locate the following key:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/fiodrive/Parameters
/
3.Create a Windows® Registry tag of type REG_DWORD, and then name it SetWorkerAffinity?
The ? is replaced by a decimal value equal to the bus number of the IO Accelerator card for which the affinity is being set. This bus number is the same decimal value that appears in the fct? display after an IO Accelerator utility such as
To make the tag effective in the driver, reboot the system or enable the driver, assuming defaults for other fiodrive tags.
Example
For example, if your system employs a NUMA architecture with four modular nodes, then each of which contains 2 GB of local memory and a
•Buses 2 and 11 : Node 0 (processors 0 and 1)
Windows driver affinity 29