CN107506323A - 一种热插拔处理方法及装置 - Google Patents
一种热插拔处理方法及装置 Download PDFInfo
- Publication number
- CN107506323A CN107506323A CN201710614357.2A CN201710614357A CN107506323A CN 107506323 A CN107506323 A CN 107506323A CN 201710614357 A CN201710614357 A CN 201710614357A CN 107506323 A CN107506323 A CN 107506323A
- Authority
- CN
- China
- Prior art keywords
- hardware device
- work queue
- hot plug
- event
- events
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 69
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000003780 insertion Methods 0.000 claims abstract description 21
- 230000037431 insertion Effects 0.000 claims abstract description 21
- 238000000605 extraction Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 5
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种热插拔处理方法及装置,涉及计算机领域,实现了及时响应插拔事件,保证操作***内部的硬件设备连接拓扑与实际一致及提高操作***可靠性。具体方案为:框架层接收驱动层上报的插拔事件;根据该插拔事件,在第一工作队列中进行硬件设备发现,获取该OS上硬件设备的连接状态,连接状态包括***或者拔出;根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。本申请实施例用于插拔事件处理。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种热插拔处理方法及装置。
背景技术
在硬件设备(例如硬盘)的应用中,存在众多因素(例如基于用户需求对服务器或阵列连接的硬件设备进行插拔、或者由于环境、线缆的影响)造成硬件连接拓扑变化,此时,硬件设备根据硬件连接拓扑的内容,产生设备上线(phy up)、设备下线(phy down)、广播(broadcast)等中断上报驱动层,驱动层将中断转换为事件上报给框架层处理,用于将硬件硬件连接拓扑的变化同步至操作***(Operating System,OS)。
在当前的Linux操作***的Libsas框架中,Libsas框架检测到驱动层上报的硬件设备***或拔出对应的上报事件(PORTE_BYTES_DMAED或者PHYE_LOSS_OF_SIGNAL或者PORTE_BROADCAST_RCVD)后,在OS的工作队列(work queue)中进行硬件设备发现、硬件设备注册到OS、硬件设备从OS注销。并且,Libsas框架的现有机制,其检测到上述上报事件后,将相应事件位置1,再接收到同类事件,会不予处理,直到相应事件位清0。
对于硬件设备频繁快速插拔的情景下引起的一系列事件,当前的libsas框架处理机制仅会处理首次上报的事件而丢掉部分事件,导致操作***内部的硬件设备连接拓扑与实际不一致,引起操作***异常。另外,由于硬件设备发现耗时短,而硬件设备注册、注销耗时长,workqueue由于处理耗时长的硬件设备注册、注销,导致无法及时响应驱动上报的事件。
发明内容
本申请实施例提供一种热插拔处理方法及装置,实现了及时响应插拔事件,保证操作***内部的硬件设备连接拓扑与实际一致及提高操作***可靠性。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种热插拔处理方法,该方法可以应用于OS中的框架层,框架层配置了第一工作队列及第二工作队列。该方法具体可以包括:接收驱动层上报的插拔事件;根据该插拔事件,在第一工作队列中进行硬件设备发现,获取该OS上硬件设备的连接状态,连接状态包括***或者拔出;根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。
通过本申请提供的热插拔处理方法,每接收到驱动层上报的一个插拔事件,在第一工作队列进行硬件设备发现,获取到最新的连接状态,并在第二队列进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销,由于第一工作队列只进行耗时短的硬件设备发现,可以快速及时的响应插拔事件,提高用户体验;又由于动态的对每个插拔事件均进行了处理,保证了***内部的硬件设备连接拓扑与实际一致,避免了操作***异常,提高了操作***的可靠性。
其中,插拔事件可以由用户热插拔产生、或者,环境线缆等影响产生。可选的,OS可以为linux,框架层可以为Libsas框架。OS上硬件设备的连接状态,反应了OS上***的硬件设备或者拔出的硬件设备。
可选的,第一工作队列可以是OS中原有的工作队列,第二工作队列可以是OS中新配置的工作队列。
结合第一方面,在一种可能的实现方式中,根据插拔事件,在第一工作队列中进行硬件设备发现,获取硬件设备的插拔状态,具体可以实现为:在接收到插拔事件时,生成硬件设备发现事件;向第一工作队列发送硬件设备发现事件,用于在第一工作队列中进行硬件设备发现。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销,具体可以实现为:若硬件设备的连接状态为***,生成注册事件,向第二工作队列发送注册事件,用于在第二工作队列中进行***的硬件设备注册到OS。若硬件设备的连接状态为拔出,生成注销事件,向第二工作队列发送注销事件,用于在第二工作队列中进行拔出的硬件设备从OS注销。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,硬件设备可以包括:串行小型计算机***接口(Serial attached Small Computer SystemInterface,SAS)硬盘,或者,串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)硬盘。插拔事件可以包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。
结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,硬件设备发现事件可以包括SAS_DISCOVERY_EVENT事件;注册事件可以包括:SAS_DEVICE_ADD事件;注销事件包括:SAS_DEVICE_DEL事件。
第二方面,提供一种热插拔处理装置,该装置部署于操作***OS中的Libsas框架,该装置配置了第一工作队列及第二工作队列。该热插拔处理装置可以包括处理器、存储器和收发器;存储器用于存储计算机执行指令,当装置运行时,处理器调用存储器存储的计算机执行指令,执行如下步骤:接收驱动层上报的插拔事件;根据接收的插拔事件,在第一工作队列中进行硬件设备发现,获取OS上硬件设备的连接状态,硬件设备的连接状态可以包括***或者拔出;根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。
第三方面,提供一种热插拔处理装置,该装置部署于操作***OS中的Libsas框架,并配置了第一工作队列及第二工作队列。该热插拔处理装置可以包括:接收单元,用于接收驱动层上报的插拔事件;发现单元,用于根据接收单元接收的插拔事件,在第一工作队列中进行硬件设备发现,获取OS上硬件设备的连接状态,连接状态包括***或者拔出;同步单元,用于根据发现单元获取的硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。
需要说明的是,上述第二方面或第三方面提供的热插拔处理装置用于执行上述第一方面提供的热插拔处理方法,其具体实现可以参考上述第一方面的具体实现,此处不再一一赘述。因此,第二方面或第三方面提供的热插拔处理装置可以与上述第一方面提供的热插拔处理方法达到相同的效果。
第四方面,本申请实施例提供一种热插拔处理装置,该热插拔处理装置可以实现上述第一方面方法示例中相应的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
结合第四方面,在一种可能的实现方式中,该热插拔处理装置的结构中包括处理器和收发器,该处理器被配置为支持该热插拔处理装置执行上述方法中相应的功能。该收发器用于支持该热插拔处理装置与其他网元之间的通信。该热插拔处理装置还可以包括存储器,该存储器用于与处理器耦合,其保存该热插拔处理装置必要的程序指令和数据。
第五方面,本申请实施例提供了一种计算机存储介质,用于储存为上述第一方面方法示例的功能所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。
上述第四方面或第五方面中提供的方案,用于实现上述第一方面提供的热插拔处理方法,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。
附图说明
图1为现有技术提供的一种服务器架构的结构示意图;
图1a为现有技术提供的另一种服务器架构的结构示意图;
图1b为现有技术提供的另一种服务器架构的结构示意图;
图2为本申请实施例提供的一种插拔处理装置的结构示意图;
图3为本申请实施例提供的一种插拔处理方法的流程示意图;
图4为本申请实施例提供的另一种插拔处理方法的流程示意图;
图5为本申请实施例提供的另一种插拔处理装置的结构示意图;
图6为本申请实施例提供的再一种插拔处理装置的结构示意图。
具体实施方式
当前,当操作***的硬件设备连接拓扑变化时,操作***的框架层在接收到驱动层上报的插拔事件时,根据事件置位与否,在一个工作队列中执行硬件设备发现、注册或注销,处理效率低耗时长导致对于硬件设备连接拓扑变化不能及时响应,并且事件置位处理机制导致部分事件丢弃,造成操作***异常以及同步至操作***内的硬件连接与实际不一致。
基于此,本申请的基本原理是:在操作***框架层配置一个工作队列用于在接收到插拔事件后进行硬件设备发现,配置另一个工作队列用于进行硬件设备注册或注销。这样,多工作队列模式,提高了事件处理效率,及时响应了插拔事件;另外,对于每个插拔事件均进行了处理,同步至操作***的硬件设备连接与实际一致,避免了操作***异常,提高了操作***可靠性。
本申请实施例提供的插拔处理方法,应用于如图1所示服务器10的架构。如图1所示,该服务器10上部署了操作***101,操作***101中包括驱动层1011及框架层1012。服务器10中还包括硬件层102,硬件层102连接于操作***101上,支持服务器10实现其存储功能。部署于硬件层102中的设备称之为操作***101上的硬件设备。本申请实施例提供的插拔处理方法,应用于操作***101中的框架层1012中。
可选的,硬件层102连接于操作***101的方式,可以通过操作***的输入/输出(Input/Output,I/0)端口连接。
示例性的,I/O端口可以为主机总线适配器(Host Bus Adapter,HBA)。HBA是一个在服务器和存储装置间提供I/O处理和物理连接的电路板和/或集成电路适配器
示例性的,硬件层102为可以为磁盘框,磁盘框中可以通过磁盘槽连接至少一个磁盘或者硬盘。
如图1a所示,以硬件层102为磁盘框,磁盘框中包括多个磁盘,磁盘框通过HBA连接至操作***101上为例,示意了服务器10的另一种架构。
可选的,在大型服务器架构中,为了扩展服务器的存储能力,可以在硬件层102中部署扩展设备,在扩展设备上连接下一层硬件设备。
如图1b所示,示意了服务器10的另一种架构。在图1b中,硬件层102为磁盘框,磁盘框中包括多个磁盘,磁盘框通过HBA连接至操作***101上,并部署扩展设备,连接下一级磁盘框,下一级磁盘框中部署磁盘槽可以***硬件设备。
在图1或图1a或图1b所示的服务器10架构中,当操作***101连接的硬件层102上的硬件设备***或者拔出时,硬件层102则会产生硬件中断,并上报至驱动层1011。驱动层1011在接收到硬件层102上报的硬件中断后,转换为驱动事件(即插拔事件)上报至框架层1102。框架层1102在接收到插拔事件时,先进行硬件设备发现,再进行***的硬件设备注册或拔出的硬件设备注销,将硬件设备的***或者拔出同步至操作***101内。
需要说明的是,对于服务器10、操作***101、硬件层102中部署的硬件设备的类型,本申请实施例并不进行具体限定。示例性的,操作***101可以为linux操作***,框架层1012可以为Libsas框架。
需要说明的是,图1或图1a或图1b中只是示意了与本申请相关的服务器10的架构,操作***101的内部结构,可以理解的是,服务器10、操作***101中还可以包括其他部分,此次不再一一示出。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一基站和第二基站等是用于区别不同的基站,而不是用于描述设备的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
下面结合附图,对本发明的实施例进行具体阐述。
一方面,本申请实施例提供一种插拔处理装置,图2示出的是与本申请各实施例相关的一种插拔处理装置20的结构示意图。插拔处理装置20可以部署在图1或图1a或图1b所示的服务器10中的操作***101中的框架层1012中。插拔处理装置20配置了第一工作队列及第二工作队列。
如图2所示,插拔处理装置20可以包括:处理器201、存储器202、通信总线203及收发器204。
其中,存储器202,用于存储程序代码,并将该程序代码传输给处理器201,以便处理器201执行程序代码实现插拔处理装置20的各种功能。存储器202可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合。
处理器201是插拔处理装置20的控制中心,可以是一个中央处理器(centralprocessing unit,CPU),也可以是特定集成电路(application specific integratedcircuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。处理器201可以通过运行或执行存储在存储器202内的程序代码,以及调用存储在存储器202内的数据,实现插拔处理装置20的各种功能。
通信总线203可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component Interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线203可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器204可以为插拔处理装置20的通信端口,用于与其他网络设备通信交互。
其中,处理器201具体用于:
通过收发器204接收驱动层上报的插拔事件;根据插拔事件,在第一工作队列中进行硬件设备发现,获取硬件设备的连接状态,连接状态包括***或者拔出;根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。
另一方面,本申请实施例提供一种热插拔处理方法,应用于OS中的框架层,该框架层配置了第一工作队列及第二工作队列。
需要说明的是,对于框架层中配置工作队列的具体过程,本申请实施例对此不进行具体限定,可以根据实际需求操作,只要框架层配置了第一工作队列及第二工作队列,均属于本申请实施例描述的方案。
如图3所示,该方法可以包括:
S301、框架层接收驱动层上报的插拔事件。
可选的,硬件设备可以包括但不限于:SAS硬盘,或者,SATA硬盘。当然,硬件设备也可以为操作***连接的其他硬件设备,本申请实施例对于硬件设备的类型不进行具体限定,凡是部署在硬件层的设备均可以称之为本申请所称的硬件设备。
具体的,S301中驱动层上报的插拔事件,是在硬件层有硬件设备***或拔出时,硬件层上报的硬件中断转换而来。当一个硬件设备被用户热插拔或者环境线缆导致的松动时,硬件层会产生对应的硬件中断上报至驱动层,驱动层转换为插拔事件后上报至框架层。
示例性的,硬件层向驱动层上报的硬件中断可以包括但不限于下述中断中的至少一种:phy up、phy down、broadcast。
需要说明的是,根据操作***连接的硬件设备的网络拓扑不同,产生的硬件中断或者产生硬件中断的情形也会不同,本申请实施例对此不进行具体限定,也不再一一例举。
其中,驱动层接收到硬件层上报的硬件中断后,将其转换为对应的插拔事件,用于向框架层发送。可选的,插拔事件可以包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。需要说明的是,本申请实施例对于插拔事件的名称不进行具体限定,凡是由硬件插拔引起的硬件中断转换得到的事件,均可以理解为本申请描述的插拔事件。
示例性的,PORTE_BYTES_DMAED事件可以由phy up硬件中断转换得出,PORTE_BROADCAST_RCVD事件可以由broadcast硬件中断转换得出,PHYE_LOSS_OF_SIGNAL事件可以由phy down硬件中断转换得出。
S302、框架层根据接收的插拔事件,在第一工作队列中进行硬件设备发现,获取OS上硬件设备的连接状态。
其中,连接状态包括***或者拔出。
具体的,对于硬件设备发现的过程,本申请实施例对此不进行具体限定。凡是获取硬件设备连接状态的过程,均可以理解为本申请所描述的硬件设备发现。
可选的,硬件设备的连接状态可以反应OS上连接的硬件设备的拓扑。例如,硬件设备的连接状态包括OS上当前哪个位置连接了硬件设备,哪个位置未连接硬件设备。通过将硬件设备的最新连接状态与前一连接状态对比,即可确定新***的硬件设备或拔出的硬件设备的标识,和/或,连接位置。
可选的,硬件设备的连接状态可以反应OS上连接的硬件设备的拓扑的变化。硬设备的连接状态可以包括新***或者拔出的硬件设备的标识,和/或,连接位置。其中,新***或者拔出的硬件设备的标识,和/或,连接位置可以用于在OS硬件设备连接拓扑中唯一确定一个硬件设备,便于后续的硬件设备注册或者注销。
其中,硬件设备的标识是用于唯一识别硬件设备的信息,本申请实施例对于硬件设备的标识的内容及形式不进行具体限定,可以根据实际需求配置。硬件设备的连接位置是指硬件设备在OS硬件层中连接的端口的标识,本申请实施例对于硬件设备的连接位置的内容及形式不进行具体限定,可以根据实际需求配置。
示例性的,在S302中,框架层在第一工作队列中进行硬件设备发现,判断插拔事件是由于***硬件设备,还是由于拔出硬件设备产生。当判断插拔事件是由于***硬件设备,则获取到硬件设备的连接状态为***;当判断插拔事件是由于拔出硬件设备,则获取到硬件设备的连接状态为拔出。
进一步可选的,在S302中还可以通过硬件设备发现获取新***或者拔出的硬件设备的标识,和/或,连接位置。
示例性的,可以在S302中进行硬件设备发现时,获取当前时刻的硬件设备拓扑,与前一时刻硬件设备拓扑比较,得出新***或者拔出的硬件设备的标识,和/或,连接位置。
具体的,在实际方案执行中,本申请实施例对于S302的过程不进行具体限定,可以根据实际需求配置,只要是在一个工作队列中只进行硬件设备发现,均属于本申请实施例描述的方案内容。
示例性的,本申请实施例提供一种执行S302的具体过程,可以包括:在接收到插拔事件时,生成硬件设备发现事件;向第一工作队列发送硬件设备发现事件,用于在第一工作队列中进行硬件设备发现,获取硬件设备的插拔状态。
示例性的,硬件设备发现事件可以包括SAS_DISCOVERY_EVENT事件。当然,在实际应用中,对于事件的名称可以根据实际需求配置,本申请实施例对此不进行具体限定。
可选的,第一工作队列可以为OS中原有架构配置的工作队列。
S303、框架层根据硬件设备的连接状态,在第二工作队列中进行***的硬件设备注册到OS或者拔出的硬件设备从OS注销。
具体的,在S302中若判断有新***的硬件设备,S302中得到OS上硬件设备的连接状态为***,S303中则在第二工作队列中进行该新***的硬件设备注册到OS的操作;在S302中若判断有新拔出的硬件设备,S302中得到OS上硬件设备的连接状态为拔出,S303中则在第二工作队列中进行该拔出的硬件设备注册到OS的操作。
进一步可选的,S303可以具体实现为:若OS上硬件设备的连接状态为***,生成注册事件,向第二工作队列发送该注册事件,用于在第二工作队列中进行***的硬件设备注册到所述OS;若OS上硬件设备的连接状态为拔出,生成注销事件,向第二工作队列发送该注销事件,用于在第二工作队列中进行拔出的硬件设备从OS注销。
示例性的,注册事件可以包括:SAS_DEVICE_ADD事件;注销事件可以包括:SAS_DEVICE_DEL事件。当然,在实际应用中,对于事件的名称可以根据实际需求配置,本申请实施例对此不进行具体限定。
可选的,第二工作队列可以为在OS中原有架构基础上,新增加配置的工作队列。
需要说明的是,对于硬件设备在OS中注册或注销的过程,本申请实施例对此不进行具体限定,也不进行赘述。凡是用于硬件设备在OS中注册或注销的方法,均可以应用于此。
还需要说明的是,对于每个插拔事件,可以分别执行上述S301至S303的过程,其具体过程相同,本申请实施例不再赘述。在本申请实施例方案的执行过程中,可以通过硬件设备的标识或者连接位置唯一识别一个硬件设备,具体应用也不进行赘述。
通过本申请提供的热插拔处理方法,每接收到驱动上报的一个插拔事件,在第一工作队列进行硬件设备发现,在第二队列进行硬件设备注册到OS或者硬件设备从OS注销,由于第一工作队列只进行耗时短的硬件设备发现,可以快速及时的响应插拔事件,提高用户体验;又由于动态的对每个插拔事件均进行了处理,保证了***内部的硬件设备连接拓扑与实际一致,避免了操作***异常,提高了操作***的可靠性。
示例性的,图4示意了本申请实施例提供的热插拔处理方法的流程示意图。假设与OS连接多个硬件设备中某个硬件设备被用户热插拔,此时硬件层会产生硬件中断。该硬件中断被硬件层上报至驱动层。驱动层将硬件中断转换为对应的插拔事件。驱动层将插拔事件上报至框架层。框架层在第一工作队列中进行硬件设备发现。经过硬件设备发现后,若是硬件设备***,框架层在第二工作队列中进行***的硬件设备注册到OS;若是硬件设备拔出,框架层在第二工作队列中进行拔出的硬件设备注册到OS。
上述主要从热插拔处理装置的工作过程的角度对本申请实施例提供的方案进行了介绍。可以理解的是,热插拔处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对用不同方法装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出了上述实施例中所涉及的热插拔处理装置的一种可能的结构示意图。热插拔处理装置50可以包括:接收单元501,发现单元502,同步单元503。接收单元501用于支持热插拔处理装置50执行图3中的过程S301;发现单元502用于支持热插拔处理装置50执行图3中的过程S302;同步单元503用于支持热插拔处理装置5用执行图3中的过程S303。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的热插拔处理装置的一种可能的结构示意图。热插拔处理装置60可以包括:处理模块601、通信模块602。处理模块601用于对热插拔处理装置的动作进行控制管理。例如,处理模块601用于支持热插拔处理装置60通过通信模块602执行图3中的过程S301;处理模块601用于支持热插拔处理装置60执行图3中的过程S302、S303。通信模块602用于支持热插拔处理装置60与其他网络实体的通信。热插拔处理装置60还可以包括存储模块603,用于存储热插拔处理装置60的程序代码和数据。
其中,处理模块601可以为图2所示的热插拔处理装置20的实体结构中的处理器201,可以是处理器或控制器。例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块602可以为图2所示的热插拔处理装置20的实体结构中的收发器204,通信模块202可以是通信端口,或者可以是收发端口或通信接口等。存储模块603可以是图2所示的热插拔处理装置20的实体结构中的存储器202。
当处理模块601为处理器,通信模块602为收发器,存储模块603为存储器时,本申请实施例图6所涉及的热插拔处理装置60可以为图2所示的热插拔处理装置20。
如前述,本申请实施例提供的热插拔处理装置50或60可以用于实施上述本申请各实施例实现的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种热插拔处理方法,其特征在于,应用于操作***OS中的框架层,所述框架层配置了第一工作队列及第二工作队列;所述方法包括:
接收驱动层上报的插拔事件;
根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取所述OS上硬件设备的连接状态,所述连接状态包括***或者拔出;
根据所述硬件设备的连接状态,在所述第二工作队列中进行***的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销。
2.根据权利要求1所述的方法,其特征在于,所述根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取硬件设备的插拔状态,包括:
在接收到所述插拔事件时,生成硬件设备发现事件;
向所述第一工作队列发送所述硬件设备发现事件,用于在所述第一工作队列中进行硬件设备发现。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述硬件设备的连接状态,在所述第二工作队列中进行***的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销,包括:
若所述硬件设备的连接状态为***,生成注册事件,向所述第二工作队列发送所述注册事件,用于在所述第二工作队列中进行***的硬件设备注册到所述OS;
若所述硬件设备的连接状态为拔出,生成注销事件,向所述第二工作队列发送所述注销事件,用于在所述第二工作队列中进行拔出的硬件设备从所述OS注销。
4.根据权利要求1-3任一项所述的方法,其特征在于,
所述硬件设备包括:SAS串行小型计算机***接口硬盘,或者,SATA串行高级技术附件硬盘;
所述插拔事件包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。
5.根据权利要求3或4所述的方法,其特征在于,
所述硬件设备发现事件包括SAS_DISCOVERY_EVENT事件;
注册事件包括:SAS_DEVICE_ADD事件;
注销事件包括:SAS_DEVICE_DEL事件。
6.一种热插拔处理装置,其特征在于,所述装置部署于操作***OS中的框架层,所述装置配置了第一工作队列及第二工作队列;所述装置包括处理器、存储器和收发器;所述存储器用于存储计算机执行指令,当所述装置运行时,处理器调用所述存储器存储的计算机执行指令,执行如下步骤:
接收驱动层上报的插拔事件;
根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取所述OS上硬件设备的连接状态,所述连接状态包括***或者拔出;
根据所述硬件设备的连接状态,在所述第二工作队列中进行***的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销。
7.根据权利要求6所述的装置,其特征在于,所述处理器具体用于:
在接收到所述插拔事件时,生成硬件设备发现事件;
向所述第一工作队列发送所述硬件设备发现事件,用于在所述第一工作队列中进行硬件设备发现。
8.根据权利要求6或7所述的装置,其特征在于,所述处理器具体用于:
若所述硬件设备的连接状态为***,生成注册事件,向所述第二工作队列发送所述注册事件,用于在所述第二工作队列中进行***的硬件设备注册到所述OS;
若所述硬件设备的连接状态为拔出,生成注销事件,向所述第二工作队列发送所述注销事件,用于在所述第二工作队列中进行拔出的硬件设备从所述OS注销。
9.根据权利要求6-8任一项所述的装置,其特征在于,
所述硬件设备包括:SAS串行小型计算机***接口硬盘,或者,SATA串行高级技术附件硬盘;
所述插拔事件包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。
10.根据权利要求8或9所述的装置,其特征在于,
所述硬件设备发现事件包括SAS_DISCOVERY_EVENT事件;
注册事件包括:SAS_DEVICE_ADD事件;
注销事件包括:SAS_DEVICE_DEL事件。
11.一种热插拔处理装置,其特征在于,所述装置部署于操作***OS中的框架层,所述装置配置了第一工作队列及第二工作队列;所述装置包括:
接收单元,用于接收驱动层上报的插拔事件;
发现单元,用于根据所述接收单元接收的所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取所述OS上硬件设备的连接状态,所述连接状态包括***或者拔出;
同步单元,用于根据所述发现单元获取的所述硬件设备的连接状态,在所述第二工作队列中进行***的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当其在计算机上运行时,使得所述计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710614357.2A CN107506323B (zh) | 2017-07-25 | 2017-07-25 | 一种热插拔处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710614357.2A CN107506323B (zh) | 2017-07-25 | 2017-07-25 | 一种热插拔处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107506323A true CN107506323A (zh) | 2017-12-22 |
CN107506323B CN107506323B (zh) | 2020-03-20 |
Family
ID=60689441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710614357.2A Active CN107506323B (zh) | 2017-07-25 | 2017-07-25 | 一种热插拔处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107506323B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932138A (zh) * | 2018-06-21 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种rssd硬盘的配置方法、装置、设备及介质 |
CN113312095A (zh) * | 2021-04-16 | 2021-08-27 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
CN113342592A (zh) * | 2020-03-03 | 2021-09-03 | 合肥杰发科技有限公司 | 热插拔设备的断开检测方法、装置及介质 |
CN114661379A (zh) * | 2022-04-02 | 2022-06-24 | 经纬恒润(天津)研究开发有限公司 | 车载摄像头***的解串器驱动程序改造方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144477A1 (en) * | 2007-11-29 | 2009-06-04 | International Business Machines Corporation | Method and system for adding or removing a logical unit of a usb mass storage device |
CN102385566A (zh) * | 2010-09-01 | 2012-03-21 | 研祥智能科技股份有限公司 | 一种基于mtca平台的热插拔方法及mtca平台 |
CN102404603A (zh) * | 2011-11-17 | 2012-04-04 | 康佳集团股份有限公司 | 机顶盒上的usb设备插拔的检测方法及*** |
CN105701051A (zh) * | 2016-01-15 | 2016-06-22 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
CN106326167A (zh) * | 2015-06-17 | 2017-01-11 | 中兴通讯股份有限公司 | 一种基于pcie子卡热插拔的方法及装置 |
CN106933754A (zh) * | 2017-03-03 | 2017-07-07 | 上海传英信息技术有限公司 | 一种usb驱动识别方法及装置 |
-
2017
- 2017-07-25 CN CN201710614357.2A patent/CN107506323B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090144477A1 (en) * | 2007-11-29 | 2009-06-04 | International Business Machines Corporation | Method and system for adding or removing a logical unit of a usb mass storage device |
CN102385566A (zh) * | 2010-09-01 | 2012-03-21 | 研祥智能科技股份有限公司 | 一种基于mtca平台的热插拔方法及mtca平台 |
CN102404603A (zh) * | 2011-11-17 | 2012-04-04 | 康佳集团股份有限公司 | 机顶盒上的usb设备插拔的检测方法及*** |
CN106326167A (zh) * | 2015-06-17 | 2017-01-11 | 中兴通讯股份有限公司 | 一种基于pcie子卡热插拔的方法及装置 |
CN105701051A (zh) * | 2016-01-15 | 2016-06-22 | 华为技术有限公司 | 一种热插拔方法、主机控制器、主机及PCIe桥设备 |
CN106933754A (zh) * | 2017-03-03 | 2017-07-07 | 上海传英信息技术有限公司 | 一种usb驱动识别方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108932138A (zh) * | 2018-06-21 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种rssd硬盘的配置方法、装置、设备及介质 |
CN113342592A (zh) * | 2020-03-03 | 2021-09-03 | 合肥杰发科技有限公司 | 热插拔设备的断开检测方法、装置及介质 |
CN113342592B (zh) * | 2020-03-03 | 2023-08-25 | 合肥杰发科技有限公司 | 热插拔设备的断开检测方法、装置及介质 |
CN113312095A (zh) * | 2021-04-16 | 2021-08-27 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
CN113312095B (zh) * | 2021-04-16 | 2024-04-16 | 深圳市智微智能软件开发有限公司 | 管理显示设备的插拔事件的方法、装置、终端及存储介质 |
CN114661379A (zh) * | 2022-04-02 | 2022-06-24 | 经纬恒润(天津)研究开发有限公司 | 车载摄像头***的解串器驱动程序改造方法及相关装置 |
CN114661379B (zh) * | 2022-04-02 | 2024-01-05 | 经纬恒润(天津)研究开发有限公司 | 车载摄像头***的解串器驱动程序改造方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107506323B (zh) | 2020-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506323A (zh) | 一种热插拔处理方法及装置 | |
CN104572243B (zh) | 用于共享Java虚拟机的方法和*** | |
CN105700732B (zh) | 用于传输触摸传感器信息的装置、***和方法 | |
US9767067B2 (en) | Baseboard management systems and methods with distributed intelligence for multi-node platforms | |
CN103064805B (zh) | Spi控制器及通信方法 | |
CN103793347B (zh) | 自配置其端口的路由属性的sas扩展器的方法和结构 | |
CN105051706A (zh) | 用于具有pcie协议栈的低功率phy的操作的设备、方法和*** | |
CN104395895A (zh) | 用于输入/输出虚拟化的***和方法 | |
CN104798010B (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN104615572B (zh) | 热插拔处理***及方法 | |
CN102722461B (zh) | 存储管理***的数据通信***及通信方法 | |
CN104486234A (zh) | 一种将业务交换机卸载到物理网卡的方法及服务器 | |
CN103501242A (zh) | 资源管理方法和多节点集群设备 | |
CN107148623A (zh) | Pcie设备和功能与主机阵列的动态连接 | |
CN103338125A (zh) | 一种批量配置网络设备的方法 | |
KR20210000648A (ko) | 복수의 칩 사이의 통신 지원 방법, 장치, 전자 기기 및 컴퓨터 저장 매체 | |
WO2015188586A1 (zh) | 数据传输方法及电子设备、usb设备、存储介质 | |
CN204117142U (zh) | 提供主机即时切换分享通用串行总线电子设备的电子装置 | |
CN109660391A (zh) | 一种池化服务器***固件升级方法、***及相关装置 | |
US10261699B2 (en) | Systems and methods for hardware-based RAID acceleration | |
CN102291337A (zh) | EtherCAT协议与Profibus-DP协议通信转换的网关及其通信方法 | |
US8972618B2 (en) | Staged discovery in a data storage fabric | |
CN104077187A (zh) | 用于调度应用程序的执行的方法和*** | |
CN104247353B (zh) | 针对一体化机架中存储服务虚拟化的方法和*** | |
CN107766097A (zh) | 基于端点装置提供的启动指令执行启动操作的电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211224 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |