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 文件中指定且显示在注册表中的关键字 (keyword) 的名称。

ParamDesc
与 SubkeyName 关联的显示文本。


与列表中的每个选项关联的枚举整数值。 此值存储在 NDI\params\ SubkeyName\Value 中。 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 处理器选择基于流量工作负荷。 仅在 NetAdapterCx 中可用,从 WDK 预览版 25197 开始。

以下列表显示了可编辑的 RSS 的标准化 INF 关键字

*RssBaseProcGroup
*RssBaseProcNumber 关键字 (keyword) 中指定的处理器编号的处理器组编号。

*NumaNodeId
用于网络适配器的内存分配的首选 NUMA 节点。 此外,操作系统会首先尝试使用 RSS 的首选 NUMA 节点中的 CPU。

PCI 扩展卡驱动程序不应在其 INF 中静态指定 NUMA 节点 ID,因为最近的节点取决于卡插入的 PCI 插槽。 仅指定 *NumaNodeId ,前提是网络适配器已集成到系统中,NUMA 节点事先已知,并且无法在运行时通过查询 ACPI 来确定节点。

注意:如果存在此关键字 (keyword) ,并且其值小于计算机中的 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 设置为 3, *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 文件中指定且显示在注册表中的关键字 (keyword) 的名称。

ParamDesc
与 SubkeyName 关联的显示文本。

类型
可编辑的值的类型。 该值可以是数字 (Int) ,也可以是可在编辑) (编辑的文本。

默认值
整数或文本的默认值。 <定义的> IHV 指示该值与特定独立硬件供应商相关联, (IHV) 要求。

Min
整数允许的最小值。 <定义的> IHV 指示最小值与特定的 IHV 要求相关联。

Max
整数允许的最大值。 <定义的> IHV 指示最小值与特定的 IHV 要求相关联。

下表介绍了可编辑的所有 RSS 关键字。

SubkeyName ParamDesc 类型 默认值 Min Max
*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 的有效范围是零到 MAXIMUM_GROUPS-1,但在 Windows 7 中,它必须是零。 否则,TCP/IP 协议将不会对 RSS 使用任何处理器。

注意:*NumaNodeId 的默认值 (65535) 表示网络适配器与 NUMA 节点无关,NDIS 不应尝试选择任何节点而不是另一个节点。 如果 *NumaNodeId 关键字 (keyword) 不存在,则 NDIS 会根据 ACPI 中的提示自动选择最近的节点。

注意:*MaxRssProcessors 的最大值可以设置为 NIC 可以支持的最大处理器数。 NDIS 会自动将此值限制为当前系统上的最大处理器数。

有关标准化 INF 关键字的详细信息,请参阅 网络设备的标准化 INF 关键字