57XX_57712_578XXS Software User Manual

Software User Manual
NX1_NX2_RSS
NetXtreme/NetXtreme II RSS Indirection Table
Configuration Guide on Microsoft® Windows Server
2012
NX1_NX2_RSS-SWUM101-R
5300 California Avenue • Irvine, CA 92617 • Phone: 949-926-5000 • Fax: 949-926-5203
May 1, 2013
Revision History
Revision
Date
Change Description
NX1_NX2_RSS-SWUM101-R
05/01/13
NX1_NX2_RSS-SWUM100-R
04/10/13
Update:
• Removing references to Windows Server 2008 R2.
Initial release
Broadcom Corporation
5300 California Avenue
Irvine, CA 92617
© 2013 by Broadcom Corporation
All rights reserved
Printed in the U.S.A.
Broadcom®, the pulse logo, Connecting everything®, and the Connecting everything logo are among the
trademarks of Broadcom Corporation and/or its affiliates in the United States, certain other countries and/
or the EU. Any other trademarks or trade names mentioned are the property of their respective owners.
NX1_NX2_RSS Software User Manual
Table of Contents
Table of Contents
About This Document.....................................................................................................................................5
Purpose and Audience .............................................................................................................................5
Acronyms and Abbreviations...................................................................................................................5
Document Conventions ...........................................................................................................................5
Technical Support ...........................................................................................................................................5
Requirements .................................................................................................................................................6
Configuring the RSS Indirection Table ...........................................................................................................7
Summary.......................................................................................................................................................14
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 3
NX1_NX2_RSS Software User Manual
List of Figures
List of Figures
Figure 1: Get-NetAdapterRss Output .................................................................................................................8
Figure 2: Get NetAdapterRss Command ............................................................................................................9
Figure 3: Device Manager’s Driver Key Values .................................................................................................12
Figure 4: RssBaseProcNumber and RssMaxProcNumber.................................................................................13
Figure 5: CPU Core and Processor Numbers ....................................................................................................14
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 4
NX1_NX2_RSS Software User Manual
About This Document
About This Document
Purpose and Audience
This document provides instructions on how to configure Ethernet Networking Receive Side Scaling (RSS) Base
and Maximum CPU Core assignment in the RSS Indirection table of the Broadcom® NetXtreme® (NX1) 5719/20
and NetXtreme II® (NX2) 1G 5709/5716 and NX2 10G 57712/578xxS device family.
This document is written for the network administrator who wishes to hand-tune the Broadcom network
controller RSS Indirection table on Microsoft® Windows Server® 2012 multi-CPU core systems.
Acronyms and Abbreviations
In most cases, acronyms and abbreviations are defined on first use.
For a comprehensive list of acronyms and other terms used in Broadcom documents, go to:
http://www.broadcom.com/press/glossary.php.
Document Conventions
The following conventions may be used in this document:
Convention
Description
Bold
User input and actions: for example, type exit, click OK, press Alt+C
Code: #include <iostream>
HTML: <td rowspan = 3>
Command line commands and parameters: wl [-l] <command>
Placeholders for required elements: enter your <username> or wl <command>
Indicates optional command-line parameters: wl [-l]
Indicates bit and byte ranges (inclusive): [0:3] or [7:0]
Monospace
<>
[]
Technical Support
Broadcom provides customer access to a wide range of information, including technical documentation,
schematic diagrams, product bill of materials, PCB layout information, and software updates through its
customer support portal (https://support.broadcom.com). For a CSP account, contact your Sales or Engineering
support representative.
In addition, Broadcom provides other product support through its Downloads and Support site
(http://www.broadcom.com/support/).
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 5
NX1_NX2_RSS Software User Manual
Requirements
To configure RSS-capable networking device’s RSS Indirection tables on a Windows Server system, the following
must be true:
• The server system must have multiple CPU cores.
• The server system must have Windows Server 2012 installed.
• The NX1 5719/20 and NX2 5709/16/57712/578xxS must have the latest release firmware and drivers
installed from the OEM’s web site.
• RSS must be enabled on the desired network adapter ports/partitions.
• Hyper Threading or Logical Processors should be disabled in the system BIOS.
Note: VMQ and RSS are incompatible with each other. Do not enable VMQs when RSS is enabled.
The system in these examples uses:
• Eight quad-core CPUs (total of 32 cores)
• Two dual 10GbE ported 57810 NICs
• One in normal Single Function (SF) mode (networking connections one and two)
• One in Switch Independent NIC Partitioning (NPAR) mode (networking connections three through ten).
The SF mode 57810 can use a maximum of 16 RSS queues per port. The NPAR mode 57810 can use a maximum
of four RSS queues per partition (four partitions per port).
Windows PowerShell (version 3.0) is used to real-time configure (no rebooting) and monitor each individual
network adapter ports/partitions RSS Indirection tables. The two commands primarily used are
Get-NetAdapterRss and Set-NetAdapterRss.
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 6
NX1_NX2_RSS Software User Manual
Configuring the RSS Indirection Table
The simplest way to configure a specific NX1/NX2 adapter port or 57712/578xx NPAR partition RSS Indirection
table is to use the PowerShell Set-NetAdapterRss command’s BaseProcessorNumber and MaxProcessorNumber
parameters.
In the following example, there are 32 cores available. The first 57810 (in SF mode) will have each of its two
ports (one and two) given their own four distinct RSS cores. The second 57810 (in NPAR mode) will have each
of its eight NPAR partitions (four partitions per port, ports three through ten) given their own two distinct RSS
cores. The first eight cores will not be assigned to an adapter so they can be used by the host OS for other
computing processes.
In PowerShell (before making any changes) use the Get-NetAdapterRss command to see the range of each
adapter’s RSS Indirection table; they should initially be set from core 0 to core 31. The actual selected RSS cores
assigned to each adapter will vary with each host, but they will overlap if the total number of receive queues
(NumberOfReceiveQueues) values for all RSS adapters is greater than the number of CPU cores in the host system,
which is the case in this example as it has 2 x 16 (first two 57810 SF mode ports) plus 8 x 4 (second two 57810
NPARed ports) for a total of 64 which is greater than the 32 available.
The –ifdesc parameter allows you to select which adapter to view by filtering on the string in the
InterfaceDescription” field. If no parameters are provided, then all RSS adapters are outputted. The registry
MaxProcessors value (in this output) is not the *MaxRssProcessors value from the device driver INF and registry
entry, instead it is the lower of the two NumberOfReceiveQueues values (from the driver INF or registry
*NumRssQueues) and the difference between BaseProcessor Number (from the registry *RssBaseProcNumber if
present, if not present it defaults to 0) and MaxProcessor Number (from the registry *RssMaxProcNumber if
present; if not present, it defaults to the highest CPU core number). The following displays the sixteen CPU
cores assigned to this specific port's RSS indirection table (0-1, 4, 6, 10-12, 15-17, and 22-27). These CPU cores
are the ones that are used for all RSS/TSS of traffic streams on this port.
Get-NetAdapterRss –ifdesc *#1*
Name:Ethernet 1
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD
Enabled: True
NumberOfReceiveQueues: 16
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:0
MaxProcessor: [Group:Number]: 0:31
MaxProcessors: 16
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0 0:1/0 0:2/0
0 0:7/0 0:8/0 0:9/0 0:10/0 0:11/0 0:12/0 0:13/0 0:14/0 0:15/0
0:19/0 0:20/0 0:21/0 0:22/0 0:23/0 0:24/0 0:25/0 0:26/0 0:27/0
0:31/0
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
Client) #1
0:3/0 0:4/0 0:5/0 0:6/
0:16/0 0:17/0 0:18/0
0:28/0 0:29/0 0:30/0
®
Page 7
NX1_NX2_RSS Software User Manual
IndirectionTable: [Group:Number]:
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:0
0:10
0:16
0:24
0:1
0:4
0:12
0:22
0:26
0:6
0:11
0:15
0:11
0:15
0:11
0:15
0:11
0:15
0:11
0:15
0:11
0:15
0:11
0:15
0:11
0:15
0:17
0:23
0:17
0:23
0:17
0:23
0:17
0:23
0:17
0:23
0:17
0:23
0:17
0:23
0:17
0:23
0:25
0:27
0:25
0:27
0:25
0:27
0:25
0:27
0:25
0:27
0:25
0:27
0:25
0:27
0:25
0:27
Figure 1: Get-NetAdapterRss Output
The Set-NetAdapterRss -ifDesc *?* –NumberOfReceiveQueues X command can be used to directly change the
value of NumberOfReceiveQueues parameter for each adapter connection. If this value is lower than the range
set, then the values used in the RSS Indirection table will be a subset of the range designated, and not all cores
in the designated range will be used by that adapter connection.
Now use the Set-NetAdapterRss command to manually configure the first adapter’s RSS Indirection table to
what you desire.
Set-NetAdapterRss -ifDesc *#1* –BaseProcessorNumber 8 –MaxProcessorNumber 11
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 8
NX1_NX2_RSS Software User Manual
Use the Get-NetAdapterRss –ifdesc *#1* command to check that the changes you just made were correctly
implemented. This port will now use only CPU cores 8-11 for all RSS/TSS traffic handling. Notice that the
NumberOfReceivedQueues is still set to 16, but the MaxProcessors value reads back as 4.
Figure 2: Get NetAdapterRss Command
If the values are as desired, use the Set-NetAdapterRss command to manually configure the remaining
adapter’s RSS indirection tables to what you need. In this example we used the following:
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
Set-NetAdapterRss
–ifDesc
–ifDesc
–ifDesc
–ifDesc
–ifDesc
–ifDesc
–ifDesc
–ifDesc
–ifDesc
*#2* –BaseProcessorNumber 12 –MaxProcessorNumber 15
*#3* –BaseProcessorNumber 16 –MaxProcessorNumber 17
*#4* –BaseProcessorNumber 18 –MaxProcessorNumber 19
*#5* –BaseProcessorNumber 20 –MaxProcessorNumber 19
*#6* –BaseProcessorNumber 22 –MaxProcessorNumber 23
*#7* –BaseProcessorNumber 24 –MaxProcessorNumber 25
*#8* –BaseProcessorNumber 26 –MaxProcessorNumber 27
*#9* –BaseProcessorNumber 28 –MaxProcessorNumber 29
*#10* –BaseProcessorNumber 30 –MaxProcessorNumber 31
Now if you do a Get-NetAdapterRss command (with no parameters), you will see the adapter connections of
the two SF ports of the first 57810 and the eight NPAR partitions of the second 57810 assigned to use the
needed cores for RSS-ing. Note, the number of receive queues value does not have to be changed (but it should
be greater than or equal to the new processor range). You only need to change the base and max processor
numbers for the associated adapter connection’s RSS Indirection table to be correctly changed.
In the following listing, the indirection table output has been truncated to show only the relevant values.
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 9
NX1_NX2_RSS Software User Manual
Get-NetAdapterRss
Name: Ethernet 1
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #1
Enabled: True
NumberOfReceiveQueues: 16
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:8
MaxProcessor: [Group:Number]: 0:11
MaxProcessors: 4
RssProcessorArray: [Group:Number/NUMA Distance]: 0:8/0 0:9/0 0:10/0 0:11/0
IndirectionTable: [Group:Number]: 0:80:90:100:11
Name: Ethernet 2
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #2
Enabled: True
NumberOfReceiveQueues: 16
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:12
MaxProcessor: [Group:Number]: 0:15
MaxProcessors: 4
RssProcessorArray: [Group:Number/NUMA Distance]: 0:12/0 0:13/0 0:14/0 0:15/0
IndirectionTable: [Group:Number]: 0:120:130:140:15
Name: Ethernet 3
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #3
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:16
MaxProcessor: [Group:Number]: 0:17
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:16/0 0:17/0
IndirectionTable: [Group:Number]: 0:160:17
Name: Ethernet 4
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #4
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:18
MaxProcessor: [Group:Number]: 0:19
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:18/0 0:19/0
IndirectionTable: [Group:Number]: 0:180:19
Name: Ethernet 5
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #5
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:20
MaxProcessor: [Group:Number]: 0:21
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:20/0 0:21/0
IndirectionTable: [Group:Number]: 0:200:21
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 10
NX1_NX2_RSS Software User Manual
Name: Ethernet 6
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #6
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:22
MaxProcessor: [Group:Number]: 0:23
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:22/0 0:23/0
IndirectionTable: [Group:Number]: 0:220:23
Name: Ethernet 7
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #7
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:24
MaxProcessor: [Group:Number]: 0:25
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:24/0 0:25/0
IndirectionTable: [Group:Number]: 0:240:25
Name: Ethernet 8
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #8
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:26
MaxProcessor: [Group:Number]: 0:27
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:26/0 0:27/0
IndirectionTable: [Group:Number]: 0:260:27
Name: Ethernet 9
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #9
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:28
MaxProcessor: [Group:Number]: 0:29
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:18/0 0:19/0
IndirectionTable: [Group:Number]: 0:280:29
Name: Ethernet 10
InterfaceDescription: Broadcom BCM57810 NetXtreme II 10 GigE (NDIS VBD Client) #10
Enabled: True
NumberOfReceiveQueues: 4
Profile: NUMAStatic
BaseProcessor: [Group:Number]: 0:30
MaxProcessor: [Group:Number]: 0:31
MaxProcessors: 2
RssProcessorArray: [Group:Number/NUMA Distance]: 0:30/0 0:31/0
IndirectionTable: [Group:Number]: 0:300:31
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 11
NX1_NX2_RSS Software User Manual
These changes are assigned instantly and no host system reboot is needed. The values can also be seen in each
adapter’s registry entry. To find a specific adapters registry index value, use the Windows Device Manager’s
Properties Details tab Driver Key values. The first port’s index value is 0070.
Figure 3: Device Manager’s Driver Key Values
In the registry …\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11cebfc1-08002be10318}\0070 entry, the newly created keyword RssBaseProcNumber has the value of eight and
RssMaxProcNumber has the value of eleven.
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 12
NX1_NX2_RSS Software User Manual
Figure 4: RssBaseProcNumber and RssMaxProcNumber
Further verify these cores get the received traffic assigned to them by receiving traffic on the designated port/
partition (using a TCP test traffic-generating application such as NTTTCP or iPerf) and opening a resource
monitor window and observing which CPU cores are in use when the traffic starts and stops. In this system,
there are four separate CPUs and each has eight cores. The numbering in the resource monitor has the CPU
core number followed by the processor node number.
1. CPU 0 (Node 0)
2. CPU 1 (Node 0)
3. CPU 2 (Node 0)
4. CPU 3 (Node 0)
5. CPU 4 (Node 0)
6. CPU 5 (Node 0)
7. CPU 6 (Node 0)
8. CPU 7 (Node 0)
9. CPU 0 (Node 1)
10. CPU 1 (Node 1)
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 13
NX1_NX2_RSS Software User Manual
…
29. CPU 4 (Node 3)
30. CPU 5 (Node 3)
31. CPU 6 (Node 3)
32. CPU 7 (Node 3)
Figure 5: CPU Core and Processor Numbers
Summary
The RSS indirection table of each RSS capable network adapter on a system can be reconfigured using
Microsoft’s PowerShell (version 3.0) to fine-tune a system’s CPU core to networking adapter connection
utilization and to allow host processes (such as SQL Server) to have undivided usage of the lower starting CPU
cores.
BROADCOM
May 1, 2013 • NX1_NX2_RSS-SWUM101-R
®
Page 14
NX1_NX2_RSS Software User Manual
Broadcom® Corporation reserves the right to make changes without further notice to any products
or data herein to improve reliability, function, or design.
Information furnished by Broadcom Corporation is believed to be accurate and reliable. However,
Broadcom Corporation does not assume any liability arising out of the application or use of this
information, nor the application or use of any product or circuit described herein, neither does it
convey any license under its patent rights nor the rights of others.
®
BROADCOM CORPORATION
5300 California Avenue
Irvine, CA 92617
© 2013 by BROADCOM CORPORATION. All rights reserved.
NX1_NX2_RSS-SWUM101-R
May 1, 2013
Phone: 949-926-5000
Fax: 949-926-5203
E-mail: info@broadcom.com
Web: www.broadcom.com