[nvmewin] NVMe OFA patch for CPU Learning mode

Foster, Carolyn D carolyn.d.foster at intel.com
Tue Apr 15 16:07:29 PDT 2014


The password is intel1234

Problem statement:
The current OFA driver assumes a one to one mapping of MSI vectors, queues and CPU cores.  If there is not a one to one mapping then the driver does not go through learning mode and we see a performance drop.  Learning mode is how we maintain our source core interrupt steering, where we map MSI vectors to CPU cores.  This mapping allows the driver to issue and complete commands on the same CPU core.

Proposed changes:
Instead of giving up on learn mapping if there are differences between MSI vectors and CPU cores, we will proceed as normal with learning mode.  We allocate the Core table for the max number of cores, and if at the end of learning mode, any CPU cores have not been mapped, we will map them to Submission queues in a round robin fashion.  We also take into account if the MSI vectors are not mapped contiguously, or if the number of submission and completion queues are different from each other and the number of cores.  These changes still won't have 100% functionality of the source core interrupt steering, but performance is better than if we don't try at all.  Most of the changes are in the initialization path, there was no change to the IO path.

Also in this patch is the removal of the #defines for the CHATHAM prototype hardware.

Unit Tests:
Tested the following on Windows 7 and Windows 8 based systems.
Booted from a system with more CPU cores than MSI vectors.
IO stress on a setup with fewer IO queues than CPU cores and MSI vectors
Ran SCSI compliance tests
Ran SDStress
Ran IOmeter
Hibernate
Format (quick and slow) of MBR and GPT
Install/Uninstall, Enable/Disable


Thanks!
Carolyn

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20140415/2ad71eca/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CPULearnMappingFixes.zip
Type: application/x-zip-compressed
Size: 169430 bytes
Desc: CPULearnMappingFixes.zip
URL: <http://lists.openfabrics.org/pipermail/nvmewin/attachments/20140415/2ad71eca/attachment.bin>


More information about the nvmewin mailing list