RSS 的标准化 INF 关键字
RSS 接口支持在注册表中显示并在 INF 文件中指定的标准化 INF 关键字。
以下列表显示了 RSS 的枚举标准化 INF 关键字:
*RSS
为微型端口适配器启用或禁用 RSS 支持。
*RSSProfile
处理器选择和负载均衡配置文件。
注意:对 *RSSProfile 设置的更改需要重启适配器。
注意:如果将 *RSSProfile 设置为 NdisRssProfileBalanced,则无法配置高级关键字,例如 *RssBaseProcNumber、*RssBaseProcGroup、*RssMaxProcNumber、*RssMaxProcGroup 或 *NumaNodeId。 可以配置 *MaxRssProcessors 和 *NumRSSQueues。
NDIS 6.30 添加了 *RSSProfile 支持。
枚举标准化 INF 关键字具有以下属性:
SubkeyName
必须在 INF 文件中指定且出现在注册表中的关键字名称。
ParamDesc
与 SubkeyName 关联的显示文本。
值
与列表中的每个选项关联的枚举整数值。 此值存储在 NDI\params\ SubkeyName\ 值中。
EnumDesc
与菜单中显示的每个值关联的显示文本。
默认
菜单的默认值
下表描述了 RSS 枚举关键字可能的 INF 条目。
SubkeyName | ParamDesc | 值 | EnumDesc |
---|---|---|---|
*RSS | 接收方缩放 | 0 | 已禁用 |
1(默认值) | 已启用 | ||
*RSSProfile | RSS 负载均衡配置文件 | 1 | ClosestProcessor:默认行为与 Windows Server 2008 R2 的行为一致。 |
2 | ClosestProcessorStatic:无动态负载均衡 - 在运行时分发但不进行负载均衡。 | ||
3 | NUMAScaling:在每个 NUMA 节点之间以轮循机制方式分配 RSS CPU,从而使 NUMA 服务器上正在运行的应用程序能够很好地缩放。 | ||
4(默认值) | NUMAScalingStatic:RSS 处理器选择与 NUMA 可伸缩性相同,无需动态负载均衡。 | ||
5 | ConservativeScaling:RSS 使用尽可能少的处理器来承受负载。 此选项有助于减少中断次数。 | ||
6(异类 CPU 系统上的默认值) | NdisRssProfileBalanced:RSS 处理器选择基于流量工作负荷。 从 WDK 预览版 25197 开始,仅在 NetAdapterCx 中可用。 |
以下列表显示了可编辑的 RSS 的标准化 INF 关键字:
*RssBaseProcGroup
*RssBaseProcNumber 关键字中指定的处理器编号的处理器组编号。
*NumaNodeId
用于网络适配器内存分配的首选 NUMA 节点。 此外,操作系统会首先尝试将首选 NUMA 节点中的 CPU 用于 RSS。
PCI 扩展卡的驱动程序不应在其 INF 中以静态方式指定 NUMA 节点 ID,因为最近的节点取决于将卡插入的 PCI 插槽。 仅当将网络适配器集成到系统中、已提前知道 NUMA 节点并且无法通过查询 ACPI 来在运行时确定节点时,才指定 *NumaNodeId。
注意:如果此关键字存在并且其值小于计算机中的 NUMA 节点数,则 NDIS 会在 NDIS_RSS_PROCESSOR_INFO 结构的 PreferredNumaNode 成员中使用此值。
注意:在 Windows 8 中,如果将 NIC RSS 配置文件设置为 NUMAScaling(2) 或 NUMAScalingStatic(3),则会忽略 *NumaNodeId 值。
*RssBaseProcNumber
指定组中的基本 RSS 处理器的编号。
*MaxRssProcessors
最大 RSS 处理器数。
*RssMaxProcNumber
RSS 接口的最大处理器编号。
如果指定了 *RssMaxProcNumber,则还应指定 *RssMaxProcGroup。
*NumRSSQueues
RSS 队列数。
*RssMaxProcGroup RSS 接口的最大处理器组。
*RssBaseProcGroup 与 *RssBaseProcNumber 一起形成 PROCESSOR_NUMBER 结构,用于标识可与 RSS 配合使用的最小处理器编号。 *RssMaxProcGroup 与 *RssMaxProcNumber 一起形成 PROCESSOR_NUMBER 结构,用于标识可与 RSS 配合使用的最大处理器编号。
例如,假设将 *RssBaseProcGroup 设置为 1,将 *RssBaseProcNumber 设置为 16,将 *RssMaxProcGroup 设置为,以及将 *RssMaxProcNumber 设置为 8。
使用 <group>:<processor>
表示法时,基本处理器为 1:16,最大处理器为 3:8。
那么,不会将处理器 0:0、0:32、1:0 和 1:15 视为 RSS 的候选项,因为它们低于基本处理器编号。
处理器 1:16、1:31、2:0、2:63、3:0 和 3:8 都将被视为 RSS 的候选项,因为它们在 1:16 到 3:8 的范围内。
处理器 3:9、3:31 和 4:0 不会被视为 RSS 的候选项,因为它们超过最大处理器编号。
NDIS 6.20 添加了 *RssBaseProcGroup、*NumaNodeId、*RssBaseProcNumber 和 *MaxRssProcessors 关键字支持。
NDIS 6.30 添加了 *RssMaxProcNumber 和 *NumRSSQueues 关键字支持。
可编辑的标准化 INF 关键字具有以下属性:
SubkeyName
必须在 INF 文件中指定且出现在注册表中的关键字名称。
ParamDesc
与 SubkeyName 关联的显示文本。
类型
可以编辑的值的类型。 该值可以是数字 (Int) 或可以编辑的文本(编辑)。
默认值
整数或文本的默认值。 <定义的 IHV> 指示该值与特定的独立硬件供应商 (IHV) 要求关联。
Min
整数允许的最小值。 <定义的 IHV> 指示最小值与特定的 IHV 要求相关联。
最大值
整数允许的最大值。 <定义的 IHV> 指示最小值与特定的 IHV 要求相关联。
下表描述了可以编辑的所有 RSS 关键字。
SubkeyName | ParamDesc | 类型 | 默认值 | Min | 最大 |
---|---|---|---|---|---|
*RssBaseProcGroup | RSS 基本处理器组 | int | 0 | 0 | MAXIMUM_GROUPS-1 |
*NumaNodeId | 首选 NUMA 节点 | int | 65535(任何节点) | 0 | 系统特定 - 不能超过 65535 |
*RssBaseProcNumber | RSS 基本处理器编号 | int | 0 | 0 | MAXIMUM_PROC_PER_GROUP-1 |
*MaxRssProcessors | 最大 RSS 处理器数 | int | 16 | 1 | MAXIMUM_PROC_PER_SYSTEM |
*RssMaxProcNumber | 最大 RSS 处理器编号 | int | MAXIMUM_PROC_PER_GROUP-1(默认) | 0 | MAXIMUM_PROC_PER_GROUP-1 |
*NumRSSQueues | 最大 RSS 队列数 | int | 16 | 1 | 设备特定 |
*RSSMaxProcGroup | RSS 最大处理器组 | int | 0 | 0 | MAXIMUM_GROUPS-1 |
注意:尽管 *RssBaseProcGroup 的有效范围为 0 到 MAXIMUM_GROUPS-1,但在 Windows 7 中,它必须是 0。 否则,TCP/IP 协议不会将任何处理器用于 RSS。
注意:*NumaNodeId (65535) 的默认值表示网络适配器与 NUMA 节点无关,因此 NDIS 不应尝试首选任何节点而非其他节点。 如果 *NumaNodeId 关键字不存在,则 NDIS 将根据 ACPI 中的提示自动选择最近的节点。
注意:可以将 *MaxRssProcessors 的最大值设置为 NIC 可以支持的最大处理器数。 NDIS 将自动将此值上限设置为当前系统上的最大处理器数。
有关标准化 INF 关键字的详细信息,请参阅网络设备的标准化 INF 关键字。