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 关键字。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈