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 关键字