多功能PCIE交换机之八:窗口扩展和驱动加载的常见问题

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

   多功能PCIE交换机之八:窗口扩展和驱动加载的常见问题


结合本人在PCIE NTB/DMA最近的实际工作,总结了地址转换窗口扩展和驱动加载过程中碰到的主要问题和解决办法。


0、系统启动后看不到NTB设备

需要检查BIOS,在PCIE设置里面NTB芯片是否使能。这是因为针对不同的应用场景和客户需要,BIOS里面通常添加了Enable/Disable NTB的选项。


1、如何扩展地址转换窗口

a.确定系统要求的地址转换窗口的范围和大小;

b.确保系统要求的地址转换窗口的范围和大能够被BIOS支持

c.从可用的BAR2/3和BAR4/5中选择未使用的或者可扩展的BAR;

d.更新NTB芯片中该决定该BAR大小的寄存器;


2、如何正确处理新的地址转换窗口大小

一般NTB的SDK包括驱动和应用程序,由于驱动设计的通用性,为了支持新的地址转换窗口和大小,通常只需要更新应用程序,主要需要改动的有以下几点:

a.根据新选用的BAR,更新应用程序中的NTB/DMA初始化工作。这是因为不同的BAR,通常对应一组不同的NTB设置、管理寄存器;

b.如果新的地址转换窗口大小超过2G(0x80000000),需要检查表示大小的数据类型,它一定不能是有符号的32位整型数据,否则会表示成一个负数;如果新的地址转换窗口超过4G,务必确保表示大小的数据不能是32位整数。



3、如何正确计算地址偏移

在实际基于NTB的应用程序当中,需要透过转换后映射到本地用户态的地址,加上一个偏移去访问目的地址。此时,需要特别注意的是:如果址转换窗口大小超过2G(0x80000000),需要检查表示偏移的数据类型,它一定不能是有符号的32位整型数据,否则会表示成一个负数;如果新的地址转换窗口超过4G,务必确保表示大小的数据不能是32位整数,而应该是64位整型数据类型。



4、加载驱动时发现Chip ID/vendor ID不匹配,导致无法加载

在加载相同NTB芯片 相应的驱动的时候,在不同批次或者型号的板卡上有时会发现驱动加载失败,而在其他批次或者型号上可以加载,甚至在相同批次、型号的其他板卡上也能成功加载,碰到这种情况,如果驱动有debug模式的话可以先按照debug模式加载驱动,然后根据dmesg信息查看驱动失败的具体位置,结合驱动源代码查找根源。根据笔者的经验,在像NTB这种设置和EEPROM关系非常紧密的驱动,需要排除的一点就是出厂EEPROM设置的差异导致的驱动加载出错的情况。笔者就碰到两次在不同批次的机器上,分别由于NTB EEPROM里对vendor ID /device ID的错误设置导致驱动无法加载的情况。后来通过修改驱动,把要使用的板卡上的NTB的vendor ID/device ID添加到驱动探测代码里,然后更新EEPROM到标准的设置才彻底解决。



5、驱动加载之后,应用程序仍然无法使用NTB设备

Linux内核驱动加载后,并不表示应用程序就一定可以立即使用硬件设备了,因为无论是字符设备、块设备还是流式设备,操作系统都需要向用户程序提供一个在应用态可以访问的设备节点 。在早期的Linux驱动的实现过程中,设备节点并不会由驱动程序自动建立启动,而是需要通过脚本或者输入mknod等命令建立起来。因此对于NTB驱动,同样要搞清楚它的设备节点是否需要手工建立。如果是,需要保证在应用程序使用之前,设备节点都已经存在,否则无法使用NTB设备。














本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1883838 ,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
网络架构
交换机与路由器技术-31-扩展ACL
交换机与路由器技术-31-扩展ACL
41 0
|
7月前
|
负载均衡 数据安全/隐私保护 网络架构
理解网络交换机:L2与L3交换机的功能与区别
理解网络交换机:L2与L3交换机的功能与区别
721 0
|
8月前
|
网络协议 网络性能优化 网络虚拟化
【亮剑】介绍了华为三层交换机的配置命令,包括基本配置(系统启动、接口配置、基础设置)、路由协议(OSPF、BGP)配置和高级功能(VLAN、ACL、QoS)配置
【4月更文挑战第30天】本文介绍了华为三层交换机的配置命令,包括基本配置(系统启动、接口配置、基础设置)、路由协议(OSPF、BGP)配置和高级功能(VLAN、ACL、QoS)配置。通过这些命令,网络工程师可以有效地管理设备、优化网络性能并解决网络问题。熟练掌握这些命令对于提升网络运行效率至关重要。
414 2
|
存储 安全 数据安全/隐私保护
交换机 功能详解
交换机 功能详解
1043 1
|
网络虚拟化 数据安全/隐私保护
交换机vtp功能配置
交换机vtp功能配置
307 7
|
网络安全 网络架构
OSI七层模型的各个功能?路由器与交换机的区别?冲突域,广播域
OSI七层模型的各个功能?路由器与交换机的区别?冲突域,广播域
178 0
OSI七层模型的各个功能?路由器与交换机的区别?冲突域,广播域
WLAN无线局域网技术 基础(二)PoE与PoE交换机的功能,二层组网和三层组网的概念与方式,有线组网概念:直连式组网、旁挂式组网,CAPWAP协议
WLAN无线局域网基础、讲述了有线侧组网的概念,PoE与PoE交换机的功能,二层组网和三层组网的概念与方式,直连式组网、旁挂式组网,CAPWAP协议
WLAN无线局域网技术 基础(二)PoE与PoE交换机的功能,二层组网和三层组网的概念与方式,有线组网概念:直连式组网、旁挂式组网,CAPWAP协议
|
监控 安全 网络安全
工业交换机具体功能作用是什么
工业交换机也称工业以太网交换机,是工作在OSI第二层(数据链路层,见WAN的定义)的网络设备,基于MAC(网卡的媒体访问控制地址)进行识别,能够完成封装和转发数据包的功能。那么,工业交换机有哪些功能作用呢?接下来,让我们一起去了解更多吧!
|
存储
DID功能在电话交换机中意思及设置
Direct Inward Dialing,即直接拨⼊。DID 号码是运营商分配的⻓号,全⽹唯⼀。具有DID 号码的企业内⽤⼾呼叫企业外⽤⼾时,根据系统配置,可以对外直接显⽰DID 号码。企业外⽤⼾可以直拨该号码呼通该⽤⼾。可以为DID 号码配置⼀个对应的短号(分机号),该短号⽤于企业内⽤⼾间互拨。

热门文章

最新文章