【100】SR-IOV cap中Supported Page Sizes (RO)和System Page Size (RW)

SR-IOV的介绍见:【88】SR-IOV-CSDN博客   

SR-IOV cap中的Supported Page Sizes (RO)和System Page Size (RW)字段

    SR-IOV cap中定义了Supported Page Sizes (RO)和System Page Size (RW)两个字段,offset 如下:

   Supported Page Sizes (RO)字段

    其中Supported Page Sizes (RO)定义了PF支持的page size。该reg的每1bit代表一种page size,PF必须支持的是4-KB, 8-KB, 64-KB, 256-KB, 1-MB, 4-MB,其他的page size是可选的。也就是说bit0/1/4/6/8/10(0x553)是必须要支持的。

System Page size(RW)字段

System Page size字段定义system用来map VF的memory address的page size。主要有以下固定:

(1)软件必须使用support page sizes字段中的一个system page size来设置system page size。如果使用了support page size不支持的bit设置了system page size,则结果是未定义的。

(2)如果system page size字段是0,则结果是未定义的

(3)如果system page size的多个bit被置1,则结果是未定义的

(4)当system page size被设置后,VF对应的PF需要按照system page size边界对齐

(5)VF BARn也应该按照system page size边界对齐

(6)当写system page size字段是,VF enable必须是0,否则将会出现未知结果

(7)system page size默认值是1(4KB)

 LINUX如何使用Supported Page Sizes (RO)和System Page Size (RW)字段

    在sriov_init函数中先读取了Supported Page Sizes字段并且赋值给pgze,然后通过运算后把pgsz写入System Page Size寄存器:

	pci_read_config_dword(dev, pos + PCI_SRIOV_SUP_PGSIZE, &pgsz);i = PAGE_SHIFT > 12 ? PAGE_SHIFT - 12 : 0;//系统页的位移pgsz &= ~((1 << i) - 1);//确保pgsz只保留大于或等于系统页大小的页大小设置if (!pgsz)return -EIO;pgsz &= ~(pgsz - 1);//找到Supported Page Size支持的最小的sizepci_write_config_dword(dev, pos + PCI_SRIOV_SYS_PGSIZE, pgsz);

往 System Page Size reg写的pgsz需要同时满足下面两个要求:

(1)pgsz一定是大于或者等于当前系统的page size的

(2)pgsz是Supported Page Size支持的最小的size

比如:

(1)系统page size 是4K,那么page shift是12,如果Supported Page Size 是0x553(4K/8K/64K/256K/1M/4M),那么就往System Page Size reg写0x1,对应bit0为1,芯片要求使用4K对齐

(2)系统page size 是128K,那么page shift是17,如果Supported Page Size 是0x553(支持4K/8K/64K/256K/1M/4M),那么就往System Page Size reg写0x40,对应bit6为1,芯片要求使用256K对齐

(3)系统page size 是128K,page shift是17,如果Supported Page Size 是0x573(支持4K/8K/64K/128K/256K/1M/4M),那么就往System Page Size reg写0x20,对应bit5为1,芯片要求使用128K对齐

NV A100的Supported Page Sizes (RO)和System Page Size (RW)字段

https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/a100/pdf/PB-10577-001_v02.pdf

NV A100 每个VF BAR0的size是 256KB。支持20VF,Supported Page Size: 00000573,比spec规定的必须支持的page size多了128K对齐的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序 - 计算器

小程序交互练习 - 计算器小程序 目录 计算器 功能描述 准备工作 创建项目 配置导航栏 创建utils目录 math.js文件内容 calc.js文件内容 页面内容 页面样式内容 页面脚本事件 功能截图 总结 计算器 在日常生活中&#xff0c;计算器是人们广泛使用的工具&#xff0…

视频监控汇聚平台:Liveweb安防监控平台实现接入监控视频集中管理方案

随着各行业数字化转型的不断推进&#xff0c;视频监控技术在行业内的安防应用及管理支撑日益增多。然而&#xff0c;由于前期规划不清晰、管理不到位等问题&#xff0c;视频监管系统普遍存在以下问题&#xff1a; 1. 各部门单位在视频平台建设中以所属领域为单位&#xff0c;导…

遇到问题:hive中的数据库和sparksql 操作的数据库不是同一个。

遇到的问题&#xff1a; 1、hive中的数据库和sparksql 操作的数据库不同步。 观察上面的数据库看是否同步 &#xff01;&#xff01;&#xff01; 2、查询服务器中MySQL中hive的数据库&#xff0c;发现创建的位置没有在hdfs上&#xff0c;而是在本地。 这个错误产生的原因是&…

渗透测试--哈希窃取哈希中继攻击

在渗透测试中&#xff0c;我们一旦能够将用户的哈希定向到我们的smbserver我们就可以滥用它们。主要有以下两种利用方式&#xff1a;1.窃取NTLM 2.中继NTLM。了解上述两种方式&#xff0c;将打开我们的视野&#xff0c;但在此之前&#xff0c;我们必须知道我们在什么场景下&…

SQL靶场第六关

一.判断闭合点 闭合点是" 输入?id1页面无变化 输入?id1"页面报错&#xff0c;加上--&#xff0c;页面恢复正常&#xff0c;说明闭合点是" 二.判断列数 输入?id1" order by 3--页面正常 输入?id1" order by 4--页面异常&#xff0c;说明有3列…

linux中fscy命令详解

在Linux系统中&#xff0c;fscy命令是一个用于检测和修复文件系统错误的工具。尽管搜索结果中没有直接提到fscy命令&#xff0c;但根据提供的信息&#xff0c;我们可以推断这可能是一个特定发行版或者特定版本的Linux系统中的命令&#xff0c;或者是fsck命令的一个变体。通常&a…

使用 Acme.sh 自动生成和续签免费 SSL 证书(含通配符支持)

Acme.sh 是一个开源的脚本&#xff0c;能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构&#xff08;CA&#xff09;获取免费的 HTTPS 证书。该脚本特别简单易用&#xff0c;并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用…

为什么类 UNIX 操作系统通常内置编译器?为什么 Windows 更倾向于直接使用二进制文件?

操作系统是否内置编译器&#xff0c;取决于该系统的设计目标、用户群体以及常见的使用场景。以下是内置编译器和直接使用二进制的设计理念和原因的分析&#xff1a; 为什么类 UNIX 操作系统通常内置编译器&#xff1f; 面向开发者的需求&#xff1a; 类 UNIX 系统&#xff08;如…

fedora下Jetbrains系列IDE窗口中文乱码解决方法

可以看到窗口右部分的中文内容为小方块。 进入 Settings - Appearance & Behavior - Appearance - Use custom font : Note Sans Mono CJK SC &#xff0c;设置后如下图&#xff1a;

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…

有关EF Core

public class MyOwnDatabase : DbContext {public MyOwnDatabase(string connectionStringOrDbName "nameMyOwnDatabase"): base(connectionStringOrDbName){} } : base(connectionStringOrDbName) : base(...) 是在调用基类 DbContext 的构造函数。这里将 connect…

科技型中小企业信息库数据(1952-2021年)

一、包含指标&#xff1a; 企业名称 登记状态 法定代表人 注册资本 成立日期 核准日期 所属省份 所属城市 所属区县 电话 更多电话 邮箱 更多邮箱 统一社会信用代码 纳税…

Android WebView加载本地html文件

加载本地文件分为两种&#xff0c;一种是加载手机文件中的&#xff0c;也就是html文件存储在我们的手机内存中。另外一种是加载assets中的文件 1.加载asstes中的html //1. asset目录下的index.html文件 String url "file:///android_asset/html/index.html"; webvi…

机器学习决策树原理详解

一、引言 在当今蓬勃发展的人工智能与大数据领域&#xff0c;大模型正以前所未有的影响力改变着众多行业的格局。而决策树作为机器学习算法家族中的经典成员&#xff0c;以其简洁直观的特点和广泛的适用性&#xff0c;不仅能独立解决诸多实际问题&#xff0c;更是诸多先进大模…

Day2——需求分析与设计

教师端签到应用软件的需求分析&#xff1b; 产品经理如何写好产品需求文档&#xff08;附模板&#xff09; 需求分析是软件开发过程中的关键步骤&#xff0c;它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤&#xff1a; 1. 确定分析目标 明确教师端签到…

代码随想录训练营打卡第34天|62.不同路径 63.不同路径II

62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#…

个人IP建设:简易指南

许多个体创业者面临的一个关键挑战是如何为其企业创造稳定的需求。 作为个体创业者&#xff0c;您无法使用营销团队&#xff0c;因此许多人通过推荐和他们的网络来产生需求。因此&#xff0c;扩大您的网络是发展您的业务和产生持续需求的最佳策略。 这就是个人IP和品牌发挥作…

Leetcode—1539. 第 k 个缺失的正整数【简单】

2024每日刷题&#xff08;206&#xff09; Leetcode—1539. 第 k 个缺失的正整数 C实现代码 class Solution { public:int findKthPositive(vector<int>& arr, int k) {int missing 1;int cur 1;int n arr.size();int missingCnt 0;int ptr 0;for(; missingCn…

STM32串口接收与发送(关于为什么接收不需要中断而发生需要以及HAL_UART_Transmit和HAL_UART_Transmit_IT的区别)

一、HAL_UART_Transmit和HAL_UART_Transmit_IT的区别 1. HAL_UART_Transmit_IT&#xff08;非阻塞模式&#xff09;&#xff1a; HAL_UART_Transmit_IT 是非阻塞的传输函数&#xff0c;也就是说&#xff0c;当你调用 HAL_UART_Transmit_IT 时&#xff0c;它不会等到数据完全发…

2024年华中杯数学建模B题使用行车轨迹估计交通信号灯周期问题解题全过程文档及程序

2024年华中杯数学建模 B题 使用行车轨迹估计交通信号灯周期问题 原题再现 某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期&#xff0c;以便为司机提供更好的导航服务。由于许多信号灯未接入网络&#xff0c;无法直接从交通管理部门获取所有信号灯的数据&#x…