CN102508659A - 一种Linux下PCI EXPRESS热插拔的方法 - Google Patents

一种Linux下PCI EXPRESS热插拔的方法 Download PDF

Info

Publication number
CN102508659A
CN102508659A CN2011103216786A CN201110321678A CN102508659A CN 102508659 A CN102508659 A CN 102508659A CN 2011103216786 A CN2011103216786 A CN 2011103216786A CN 201110321678 A CN201110321678 A CN 201110321678A CN 102508659 A CN102508659 A CN 102508659A
Authority
CN
China
Prior art keywords
hot plug
equipment
pci express
linux
hot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103216786A
Other languages
English (en)
Inventor
向松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN2011103216786A priority Critical patent/CN102508659A/zh
Publication of CN102508659A publication Critical patent/CN102508659A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种Linux下PCI EXPRESS热插拔的方法,系统包括:热插拔服务程序和标准热插拔系统驱动程序,其中:热插拔服务程序:该程序分为Linux核内部分和核外部分,其控制逻辑以模块的方式加载入内核,负责监控及处理PCI EXPRESS总线上的热插拔动作;核外部分为用户空间脚本,从内核中调用,并根据内核传回的信息执行后续处理过程;标准热插拔系统驱动程序:系统调用驱动程序,执行驱动程序的初始化代码,这些代码完成设备的设置,并填写设备的PCIEXPRESS配置命令寄存器的相关标志位来激活设备。

Description

一种Linux下PCI EXPRESS热插拔的方法
 
技术领域
本发明涉及一种计算机应用技术领域, 具体地说是一种用于Linux操作系统带电运行的过程中,实现PCI EXPRESS设备的插入和拔出的方法。
背景技术
PCI Express采用了目前业内流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI Express的双单工连接能提供更高的传输速率和质量,它们之间的差异跟半双工和全双工类似。
PCI Express采用串行方式传输数据。它和原有的ISA、PCI和AGP总线不同。这种传输方式,不必因为某个硬件的频率而影响到整个系统性能的发挥。当然了,整个系统依然是一个整体,但是我们可以方便的提高某一频率低的硬件的频率,以便系统在没有瓶颈的环境下使用。以串行方式提升频率增进效能,关键的限制在于采用什么样的物理传输介质。目前人们普遍采用铜线路,而理论上铜这个材质可以提供的传输极限是10 Gbps。
热插拔即带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。 
发明内容
本发明的目的是提供一种Linux下PCI EXPRESS热插拔的方法。
本发明的目的是按以下方式实现的,系统包括:热插拔服务程序和标准热插拔系统驱动程序,其中
热插拔服务程序:该程序分为Linux核内部分和核外部分,其控制逻辑以模块的方式加载入内核,负责监控及处理PCI EXPRESS总线上的热插拔动作;核外部分为用户空间脚本,从内核中调用,并根据内核传回的信息执行后续处理过程;
标准热插拔系统驱动程序:系统调用驱动程序,执行驱动程序的初始化代码,这些代码完成设备的设置,并填写设备的PCI EXPRESS 配置命令寄存器的相关标志位来激活设备;
热插拔服务程序和标准热插拔系统驱动程序为Linux核心可加载模块,且负责监控及处理PCI EXPRESS总线上的热插拔动作;
在Linux操作系统带电运行的过程中,实现PCI EXPRESS设备的插入和拔出方法包括以下步骤:
系统确认要进行热插拔操作;
热插拔服务程序根据PCI EXPRESS插槽的使用情况,分离PCI EXPRESS设备;
人工进行热插拔操作;
如果是热插入则加载驱动模块激活热插入的设备,如果是热拔出则是设备驱动模块保持静默,操作系统释放内存空间和I/O空间,中断线程曾经属于该设备的系统资源。
在Linux操作系统带电运行的过程中,热插拔服务程序调用了核心线程event_thread。
在Linux操作系统带电运行的过程中,在激活或者静默PCI EXPRESS设备时,使用了标准热插拔驱动模块。
在热插入激活设备操作时,执行如下操作:
 1)执行适配卡添加的一系列相关操作: 失败恢复预处理,存在性检验、打开电源,检查link training状态,获取设备基本信息,配置设备,为设备建立相关数据结构,挂接到上级总线;
2)为新添加的设备查找并挂接驱动程序;
3)对于桥接设备,把它挂接到上级总线后,还要继续对其下级总线进行扫描和挂接;
4)通知用户态守护进程,更新插槽状态。
本发明的有益效果是通过动态修改Linux内核中的PCI EXPRESS设备的数据结构信息,不需要专用的硬件设备和专用的驱动程序,主要利用软件进行处理,成本很低且通用性好。
附图说明
图1是PCI EXPRESS设备热插拔模型图;
图2是PCI EXPRESS设备热插入示意图;
图3是PCI EXPRESS设备热拔出示意图。
具体实施方式
下面参照附图,对本发明的内容以及PCI-EXPRESS设备热插拔的过程加以详细说明。
本发明是一种Linux下PCI EXPRESS热插拔的实现机制,允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的PCI EXPRESS设备,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。 
其中该发明包括:热插拔服务程序。该程序分为Linux核内部分和核外部分,其控制逻辑以模块的方式加载入内核,负责监控及处理PCI EXPRESS总线上的热插拔动作;核外部分为用户空间脚本,从内核中调用,并根据内核传回的信息执行后续处理过程。
标准热插拔系统驱动。系统调用驱动程序,执行驱动的初始化代码。这些代码完成设备的设置,并填写设备的PCI EXPRESS 配置命令寄存器的相关标志位来激活设备。
如图1所示,在linux操作系统带电运行的过程中,实现PCI-EXPRESS设备的插入和拔出。
如图2所示,在热插入的时候,该方法首先确定PCI-EXPRESS设备热插入的事件,然后由热插拔服务程序向热插拔驱动模块发去请求,为插槽加电。加电后,进行链路连接测试,确定加电成功。操作系统会为PCI-EXPRESS设备分配资源,配置PCI-EXPRESS设备的功能。最后操作系统会加载PCI-EXPRESS设备的驱动程序,并填写设备的PCI配置命令寄存器的相关标志位来激活设备。
如图3所示,在热拔出的时候,该方法首先确定PCI-EXPRESS设备热拔出的事件,热插拔服务程序命令PCI-EXPRESS设备驱动保持静默,即驱动一方面必须停止向PCI-EXPRESS设备发出请求,另一方面必须完成或者终止所有发出的请求,并禁止PCI-EXPRESS设备产生新的事务,再将PCI-EXPRESS插槽所连接的端口禁止掉,这样就切断了PCI-EXPRESS设备的电源。成功切断电源后手动拔出PCI-EXPRESS设备。操作系统释放内存空间,I/O空间等属于该设备的系统资源。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (6)

1.一种Linux下PCI EXPRESS热插拔的方法,其特征在于,系统包括:热插拔服务程序和标准热插拔系统驱动程序,其中
热插拔服务程序:该程序分为Linux核内部分和核外部分,其控制逻辑以模块的方式加载入内核,负责监控及处理PCI EXPRESS总线上的热插拔动作;核外部分为用户空间脚本,从内核中调用,并根据内核传回的信息执行后续处理过程;
标准热插拔系统驱动程序:系统调用驱动程序,执行驱动程序的初始化代码,这些代码完成设备的设置,并填写设备的PCI EXPRESS 配置命令寄存器的相关标志位来激活设备。
2.根据权利要求1所述的方法,其特征在于热插拔服务程序和标准热插拔系统驱动程序为Linux核心可加载模块,且负责监控及处理PCI EXPRESS总线上的热插拔动作。
3.根据权利要求1所述的方法,其特征在于,在Linux操作系统带电运行的过程中,实现PCI EXPRESS设备的插入和拔出方法包括以下步骤:
系统确认要进行热插拔操作;
热插拔服务程序根据PCI EXPRESS插槽的使用情况,分离PCI EXPRESS设备;
人工进行热插拔操作;
如果是热插入则加载驱动模块激活热插入的设备,如果是热拔出则是设备驱动模块保持静默,操作系统释放内存空间和I/O空间,中断线程曾经属于该设备的系统资源。
4.根据权利要求4所述的方法,其特征在于,在Linux操作系统带电运行的过程中,热插拔服务程序调用了核心线程event_thread。
5.根据权利要求4所述的方法,其特征在于,在Linux操作系统带电运行的过程中,在激活或者静默PCI EXPRESS设备时,使用了标准热插拔驱动模块。
6.根据权利要求4所述的方法,其特征在于,在热插入激活设备操作时,执行如下操作:
 1)执行适配卡添加的一系列相关操作: 失败恢复预处理,存在性检验、打开电源,检查link training状态,获取设备基本信息,配置设备,为设备建立相关数据结构,挂接到上级总线;
2)为新添加的设备查找并挂接驱动程序;
3)对于桥接设备,把它挂接到上级总线后,还要继续对其下级总线进行扫描和挂接;
4)通知用户态守护进程,更新插槽状态。
CN2011103216786A 2011-10-21 2011-10-21 一种Linux下PCI EXPRESS热插拔的方法 Pending CN102508659A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103216786A CN102508659A (zh) 2011-10-21 2011-10-21 一种Linux下PCI EXPRESS热插拔的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103216786A CN102508659A (zh) 2011-10-21 2011-10-21 一种Linux下PCI EXPRESS热插拔的方法

Publications (1)

Publication Number Publication Date
CN102508659A true CN102508659A (zh) 2012-06-20

Family

ID=46220751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103216786A Pending CN102508659A (zh) 2011-10-21 2011-10-21 一种Linux下PCI EXPRESS热插拔的方法

Country Status (1)

Country Link
CN (1) CN102508659A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016202040A1 (zh) * 2015-06-17 2016-12-22 中兴通讯股份有限公司 一种基于pcie子卡热插拔的方法及装置
CN107590045A (zh) * 2017-08-24 2018-01-16 郑州云海信息技术有限公司 一种在Linux系统下对EIO板卡进行热插拔测试的方法
CN108052428A (zh) * 2017-12-08 2018-05-18 郑州云海信息技术有限公司 一种测试pcie卡热插拔功能的测试方法
CN108694145A (zh) * 2017-04-06 2018-10-23 佛山市顺德区顺达电脑厂有限公司 Pci-e接口控制系统
CN109032972A (zh) * 2018-07-25 2018-12-18 郑州云海信息技术有限公司 一种热插拨事件的处理方法及系统
CN114153761A (zh) * 2021-11-29 2022-03-08 中汽创智科技有限公司 一种外部设备互联总线接口设备的探测方法及系统
CN114676086A (zh) * 2022-03-25 2022-06-28 苏州浪潮智能科技有限公司 一种插拔硬盘的方法、装置、电子设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136504A1 (en) * 2005-12-12 2007-06-14 Inventec Corporation Hot-plug control system and method
CN101034380A (zh) * 2007-04-19 2007-09-12 杭州华为三康技术有限公司 实现周边元件接口加速总线插卡热插拔的方法及装置
CN101075216A (zh) * 2006-05-19 2007-11-21 图诚科技股份有限公司 在计算机上实现图形显示装置动态移除的方法
CN101082894A (zh) * 2006-05-30 2007-12-05 英业达股份有限公司 高速周边组件连接接口设备的热插拔系统及其方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070136504A1 (en) * 2005-12-12 2007-06-14 Inventec Corporation Hot-plug control system and method
CN101075216A (zh) * 2006-05-19 2007-11-21 图诚科技股份有限公司 在计算机上实现图形显示装置动态移除的方法
CN101082894A (zh) * 2006-05-30 2007-12-05 英业达股份有限公司 高速周边组件连接接口设备的热插拔系统及其方法
CN101034380A (zh) * 2007-04-19 2007-09-12 杭州华为三康技术有限公司 实现周边元件接口加速总线插卡热插拔的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵海波 等: "Compact PCI热插拔技术的研究及其实现", 《计算机测量与控制》, vol. 13, no. 4, 30 April 2005 (2005-04-30) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016202040A1 (zh) * 2015-06-17 2016-12-22 中兴通讯股份有限公司 一种基于pcie子卡热插拔的方法及装置
CN108694145A (zh) * 2017-04-06 2018-10-23 佛山市顺德区顺达电脑厂有限公司 Pci-e接口控制系统
CN108694145B (zh) * 2017-04-06 2021-08-13 佛山市顺德区顺达电脑厂有限公司 Pci-e接口控制系统
CN107590045A (zh) * 2017-08-24 2018-01-16 郑州云海信息技术有限公司 一种在Linux系统下对EIO板卡进行热插拔测试的方法
CN108052428A (zh) * 2017-12-08 2018-05-18 郑州云海信息技术有限公司 一种测试pcie卡热插拔功能的测试方法
CN109032972A (zh) * 2018-07-25 2018-12-18 郑州云海信息技术有限公司 一种热插拨事件的处理方法及系统
CN114153761A (zh) * 2021-11-29 2022-03-08 中汽创智科技有限公司 一种外部设备互联总线接口设备的探测方法及系统
CN114676086A (zh) * 2022-03-25 2022-06-28 苏州浪潮智能科技有限公司 一种插拔硬盘的方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
CN102508659A (zh) 一种Linux下PCI EXPRESS热插拔的方法
US8566644B1 (en) System and method for debugging a target computer using SMBus
US20170337069A1 (en) Concurrent testing of pci express devices on a server platform
TWI467375B (zh) 具有修復毀損bios資料功能之電腦系統及其修復方法
US20130275640A1 (en) Automatic downstream to upstream mode switching at a universal serial bus physical layer
CN107133185B (zh) 通过bios实现pcie设备热插拔功能的方法及主板
CN104133533A (zh) 一种支持全长的pcie扩展卡板卡系统
CN104731741B (zh) 热插拔的实现方法和系统
US20160306634A1 (en) Electronic device
CN106406936A (zh) 一种fpga程序多版本管理装置及方法
CN107957885A (zh) 一种基于飞腾平台的pcie链路设备待机与恢复方法
CN102446149A (zh) 一种能够实现紧凑型pci产品热插拔的处理方法以及系统
CN106487721A (zh) 网络设备和用于网络设备中的报文转发方法
CN103412836B (zh) 热插拔处理方法、装置以及系统
KR101284403B1 (ko) 저장 네트워크 환경에서 scsi 타겟으로부터 scsi 에러 응답을 커스터마이징하는 방법, 비-일시적 컴퓨터 판독 가능한 저장 매체, 저장 네트워크 환경에서 scsi 타겟으로부터 수신된 scsi 에러 응답을 커스터마이징하는 시스템
US9779047B2 (en) Universal intelligent platform management interface (IPMI) host to baseboard management controller (BMC) communication for non-x86 and legacy free systems
CN110968352A (zh) 一种pcie设备的复位系统及服务器系统
US7549009B2 (en) High-speed PCI interface system and a reset method thereof
CN108153626B (zh) 一种usb、串口复用与安全隔离系统
CN110308940B (zh) 一种模拟键盘软关机按键实现远程软关机的方法
CN108153553A (zh) 一种高端服务器启动方法、系统、装置及计算机存储介质
US10437768B2 (en) Method and host node for configuring a remote node and a host node
CN208477915U (zh) 具有自动化中控机制的固态硬盘批次拷贝装置
CN103207850B (zh) 异质设备的传输系统
CN202331426U (zh) 现场可编程门阵列的动态加载系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120620