CN116955253A - 插卡管理方法、装置、电子设备及计算机可读存储介质 - Google Patents

插卡管理方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116955253A
CN116955253A CN202310935999.8A CN202310935999A CN116955253A CN 116955253 A CN116955253 A CN 116955253A CN 202310935999 A CN202310935999 A CN 202310935999A CN 116955253 A CN116955253 A CN 116955253A
Authority
CN
China
Prior art keywords
pcie
bus number
card
rootport
bus
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
CN202310935999.8A
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.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies 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 Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202310935999.8A priority Critical patent/CN116955253A/zh
Publication of CN116955253A publication Critical patent/CN116955253A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种插卡管理方法、装置、电子设备及计算机可读存储介质。本申请实施例在检测到插卡管理事件的情况下,依据通过BMC获取的插卡槽位号与通过PCIe设备管理结构获取的热插拔槽位号确定插卡对应的目标根端口RootPort,避免了对RootPort ID的使用,使得该方案适应性更强;进一步地,依据存储在目标RootPort配置空间中的次级总线号与从属总线号确定插卡的卡型号所对应的目标总线号,简化了建立映射关系的过程,提高了系统的可维护性。

Description

插卡管理方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及存储系统技术领域,尤其涉及一种插卡管理方法、装置、电子设备及计算机可读存储介质。
背景技术
基于PCIe总线的插卡都具有插卡型号,而该插卡的型号通过PCIe带内协议通常无法获取。在存储系统中,对于在位的插卡,常需要获知插卡型号与PCIe总线号之间的对应关系,以便于后续的管理,比如数据流运行出错时,需要对插卡做错误处理恢复操作,此时需要知道插卡型号才能制定对应的恢复方式,而在数据流中往往只能获取到PCIe总线号,无法获取到插卡型号,故需要获知指定PCIe总线号对应的插卡型号,这种情况下需要找到一种合适的方法将插卡的PCIe总线号与插卡型号间建立映射关系。
目前,相关技术中通过插槽与根端口RootPort ID的对应关系,找到ID对应的RootPort,通过解析该RootPort下PCIe拓扑结构,找到插卡的PCIe总线号,再通过带外方式获取该槽位插卡的型号,最终得到PCIe总线号与插卡型号的映射关系。
然而,新的CPU平台上有统一RootPort ID的趋势,按照相关技术中的方案会造成多个RootPort共用一个ID,相关技术中利用RootPort ID的方法可能会失效,且PCIe拓扑结构解析较为繁琐,该方案对RootPort ID的依赖性过高,系统的可维护性和建立映射关系的效率较低。
发明内容
有鉴于此,本申请提供一种插卡管理方法、装置、电子设备及计算机可读存储介质,以解决相关技术对RootPort ID的依赖性过高,系统的可维护性和建立映射关系的效率较低的技术问题。
本申请提供的技术方案如下:
根据本申请第一方面的实施例,提出了一种插卡管理方法,该方法包括:
在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息;其中,所述插卡信息至少包括:插卡所插入的槽位号、插卡被配置的卡型号;
针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构;其中,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段;所述字段至少包括:热插拔槽位号字段、根端口RootPort字段;热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识;
针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号,以将该插卡被配置的卡型号与所述目标PCIe总线号绑定进行管理。
可选的,所述依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号包括:
访问所述RootPort配置空间,获取所述次级总线号与从属总线号;
判断所述次级总线号和从属总线号是否相同,若二者相同,确定所述次级总线号或所述从属总线号为所述目标PCIe总线号;
若二者不同,依据所述次级总线号和从属总线号确定所述目标PCIe总线号。所述目标PCIe总线号至少包括所述次级总线号和从属总线号。
可选的,所述依据所述次级总线号和从属总线号确定所述目标PCIe总线号包括:
确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
可选的,在针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构之前,所述方法还包括:
从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,所述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
根据本申请第二方面的实施例,提出了一种插卡管理装置,该装置包括:
信息获取单元,用于在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息;其中,所述插卡信息至少包括:插卡所插入的槽位号、插卡被配置的卡型号;
针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构;其中,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段;所述字段至少包括:热插拔槽位号字段、根端口RootPort字段;热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识;
信息处理单元,用于针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号,以将该插卡被配置的卡型号与所述目标PCIe总线号绑定进行管理。
可选的,所述信息处理单元用于:
访问所述RootPort配置空间,获取所述次级总线号与从属总线号;
判断所述次级总线号和从属总线号是否相同,若二者相同,确定所述次级总线号或所述从属总线号为所述目标PCIe总线号;
若二者不同,依据所述次级总线号和从属总线号确定所述目标PCIe总线号。所述目标PCIe总线号至少包括所述次级总线号和从属总线号。
可选的,所述信息处理单元用于:
确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
可选的,所述信息处理单元还用于:
从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,所述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
根据本申请第三方面的实施例,提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
根据本申请第四方面的实施例,提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法。
由以上技术方案可见,本申请实施例在检测到插卡管理事件的情况下,依据通过BMC获取的插卡槽位号与通过PCIe设备管理结构获取的热插拔槽位号确定插卡对应的目标根端口RootPort,避免了对RootPort ID的使用,使得该方案适应性更强;进一步地,依据存储在目标RootPort配置空间中的次级总线号secondary bus与从属总线号subordinatebus确定插卡的卡型号所对应的目标总线号,简化了建立映射关系的过程,提高了系统的可维护性。
附图说明
此处的附图被并入说明书中并构成说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种插卡管理方法流程图;
图2是根据一示例性实施例示出的一种依据次级总线号与从属总线号确定目标PCIe总线号的方法流程图;
图3是根据一示例性实施例示出的一种电子设备的结构示意图;
图4是根据一示例性实施例示出的一种插卡管理装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中可能使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
相关技术中通过插槽与根端口RootPort ID的对应关系,找到ID对应的RootPort,通过解析该RootPort下PCIe拓扑结构,找到插卡的PCIe总线号,再通过带外方式获取该槽位插卡的型号,最终得到PCIe总线号与插卡型号的映射关系。由于不同设备对应的RootPort数目不同,且ID也不尽相同,需要针对不同的设备适配不同的RootPort ID与插槽的对应关系,增加了维护的工作量;此外,新的CPU平台上有统一RootPort ID的趋势,按照相关技术中的方案会造成多个RootPort共用一个ID,相关技术中利用RootPort ID的方法可能会失效;同时,PCIe拓扑结构解析较为繁琐,若操作系统升级,原有的解析方法需要重新适配甚至可能失效。该方案对RootPort ID的依赖性过高,系统的可维护性和建立映射关系的效率较低。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参考图1,图1是根据一示例性实施例示出的一种插卡管理方法流程图。作为一个实施例,该方法可应用于基于PCIe总线的插卡。如图1所示,该流程可以包括以下步骤:
步骤101,在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息,至少包括:插卡所插入的槽位号和插卡被配置的卡型号。
作为一个实施例,上述插卡管理事件可以为开机事件、插卡插入事件、插卡拔出事件,即在开机、插卡插入或插卡拔出时,CPU开始基于已配置的命令与存储系统中的基板管理控制器BMC交互,以获取本地所有在位插卡的插卡信息。其中,在位插卡的插卡信息中至少包括插卡所插入的槽位号和插卡被配置的卡型号。
作为一个实施例,上述的已配置的命令可以是私有管理命令,私有管理命令是由用户自定义的预设命令,用于从用户为所有插卡制定的共同协议中获取上述插卡信息。具体地,所有的插卡信息由用户自身来管理,用户为所有的插卡制定一套共同的协议,与生产插卡的厂家和插卡的型号无关,所制定的共同协议同样与PCIe协议无关,用户通过自定义的预设命令,比如私有管理命令,可以从上述共同协议中获取任一插卡的插卡信息。作为一个实施例,上述用户为所有的插卡制定的共同协议可以为I2C协议、SPI协议等。
在获取插卡信息之后,继续执行步骤102。
步骤102,针对存储系统中已有的每一PCIe设备,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构,该管理结构包含规定字段,该字段至少包括:热插拔槽位号字段和根端口RootPort字段
其中,上述PCIe设备至少包括步骤101中描述的插卡,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段,上述字段至少包括:热插拔槽位号字段、根端口RootPort字段;其中热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识,通过该标识可以确定该PCIe设备对应的RootPort。此外,需要注意的是,管理结构中包含的规定字段是不包括带有插卡被配置的卡型号的字段的,换言之,用户无法从管理结构中获取插卡被配置的卡型号。
考虑到一些PCIe设备可能并不具有热插拔属性,热插拔槽位号对其没有意义,对于这些PCIe设备,获取到的热插拔槽位号可能为无效值,若一一获取所有PCIe设备中的热插拔槽位号会大大降低该方案的执行效率,为提高效率,在获取热插拔槽位号之前可以先对PCIe设备进行一定的筛选。
可选的,在针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构之前,可以先对检测到的PCIe设备进行筛选:
从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备均为PCIe标准协议中定义的设备名称,在此不进行详述。上述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
作为一个实施例,存储系统中包括5个插槽,其槽位号分别为1-5,对于一个PCIe设备,若获取到其热插拔槽位号为默认值0,而并非1-5中任一槽位号,则认为该热插拔槽位号为无效值,进一步认为该PCIe设备并不具有热插拔属性,换言之,该PCIe设备并不是备选的PCIe设备,此时,可以将该设备滤除。
在获取PCIe设备管理结构中的热插拔槽位号与对应的RootPort之后,继续执行步骤103。
步骤103,针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号。
其中,若该插卡插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,此时确定了该PCIe设备与该插卡的对应关系,换言之,该PCIe设备实际上就是该插卡所插入的插槽。在确定该插卡被配置的卡型号所对应的目标PCIe总线号之后,实际上就是将该插卡被配置的卡型号与目标PCIe总线号进行了绑定,便于用户进行后续的管理。
可选的,步骤103中依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号的一种具体方法可以由图2所示流程图示出。请参考图2:
步骤201,访问RootPort配置空间,获取所述次级总线号与从属总线号。
其中,CPU可以直接对上述步骤102中确定的目标RootPort的RootPort配置空间进行访问,并从中获取次级总线号secondary bus与从属总线号subordinate bus。二者分别代表该RootPort对应的第一个总线号与最后一个总线号。其中,上述次级总线号secondarybus与从属总线号subordinate bus是已经预先记录在目标RootPort中的一个字段,一定能够在目标RootPort中获取到。
在获取次级总线号secondary bus与从属总线号subordinate bus之后,继续执行步骤202。
步骤202,判断次级总线号和从属总线号是否相同,若二者相同,确定次级总线号或从属总线号为目标PCIe总线号;若二者不同,依据次级总线号和从属总线号确定所述目标PCIe总线号。目标PCIe总线号至少包括该次级总线号和从属总线号。
如步骤201中所述,次级总线号secondary bus与从属总线号subordinate bus二者分别代表该RootPort对应的第一个总线号与最后一个总线号,则在二者相同的情况下,说明该RootPort仅对应一个总线号,进一步由插卡与RootPort之间的对应关系说明上述插卡的卡型号仅对应一个总线号,即次级总线号或所述从属总线号。
作为一个实施例,若获取到的次级总线号secondary bus为3,从属总线号subordinate bus也为3,次级总线号和从属总线号相同,则表明该插卡的卡型号只对应一个总线号,且与该卡型号对应的总线号为3。
在次级总线号与从属总线号二者不相同的情况下,说明上述插卡的卡型号对应多个总线号,且对应的总线号至少包括该次级总线号与从属总线号。可选的,在次级总线号与从属总线号二者不相同的情况下,依据次级总线号和从属总线号确定所述目标PCIe总线号的一种具体方法可以为:确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
作为一个实施例,假设总线号由小到大按自然数依次排布,若获取到的次级总线号secondary bus为2,从属总线号subordinate bus为5,次级总线号和从属总线号不同,则表明该插卡的卡型号对应多个总线号,与该卡型号对应的总线号为次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号,即2,3,4,5。
至此,完成图2所示流程图的描述。实际上,图2所示出的实施例通过访问RootPort配置空间,获取其中存储的次级总线号secondary bus与从属总线号subordinate bus,依据次级总线号与从属总线号来确定与插卡的卡型号所对应的目标PCIe总线号,避免了相关技术中PCIe拓扑结构解析的繁琐步骤,简化了建立映射关系的过程,提高了系统的可维护性。
随后继续对步骤103进行描述,步骤103是针对每一在位插卡都进行的,在针对每一插卡都确定出该插卡被配置的卡型号所对应的目标PCIe总线号之后,用户可以将上述绑定关系记录下来,方便以后使用。需要注意的是,所记录的卡型号与总线号的绑定关系只限于当前在位的插卡,若出现插卡的插入或拔出、插卡的位置更换等情况,则需重新执行图1所示的流程,重新确定卡型号与总线号的绑定关系。
至此,完成图1所示流程图的描述。
由上述实施例可见,该实施例在检测到插卡管理事件的情况下,依据通过BMC获取的插卡槽位号与通过PCIe设备管理结构获取的热插拔槽位号确定插卡对应的目标根端口RootPort,避免了对RootPort ID的使用,使得该方案适应性更强;进一步地,依据存储在目标RootPort配置空间中的次级总线号与从属总线号确定插卡的卡型号所对应的目标总线号,简化了建立映射关系的过程,提高了系统的可维护性。
图3示出了根据本申请的一示例性实施例的电子设备的示意结构图。请参考图3,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成终端交互装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图4,图4是一示例性实施例示出的一种插卡管理装置的结构图。
如图4所示,该插卡管理装置可以包括信息获取单元和信息处理单元。其中:
信息获取单元402,用于在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息;其中,所述插卡信息至少包括:插卡所插入的槽位号、插卡被配置的卡型号;
针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构;其中,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段;所述字段至少包括:热插拔槽位号字段、根端口RootPort字段;热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识;
信息处理单元402,用于针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号,以将该插卡被配置的卡型号与所述目标PCIe总线号绑定进行管理。
可选的,所述信息处理单元402具体可以用于:
访问所述RootPort配置空间,获取所述次级总线号与从属总线号;
判断所述次级总线号和从属总线号是否相同,若二者相同,确定所述次级总线号或所述从属总线号为所述目标PCIe总线号;
若二者不同,依据所述次级总线号和从属总线号确定所述目标PCIe总线号。所述目标PCIe总线号至少包括所述次级总线号和从属总线号。
可选的,所述信息处理单元402具体可以用于:
确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
可选的,所述信息处理单元402还可以用于:
在针对存储系统中已有的每一PCIe设备,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构之前,从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,所述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
至此,完成图4所示装置的描述。
对应地,在本实施例中,本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质上存储有若干计算机指令,上述计算机指令被执行时,能够实现本申请上述示例公开的方法。
示例性的,上述计算机可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,计算机可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种插卡管理方法,其特征在于,该方法包括:
在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息;其中,所述插卡信息至少包括:插卡所插入的槽位号、插卡被配置的卡型号;
针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构;其中,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段;所述字段至少包括:热插拔槽位号字段、根端口RootPort字段;热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识;
针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号,以将该插卡被配置的卡型号与所述目标PCIe总线号绑定进行管理。
2.如权利要求1所述的方法,其特征在于,所述依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号包括:
访问所述RootPort配置空间,获取所述次级总线号与从属总线号;
判断所述次级总线号和从属总线号是否相同,若二者相同,确定所述次级总线号或所述从属总线号为所述目标PCIe总线号;
若二者不同,依据所述次级总线号和从属总线号确定所述目标PCIe总线号;所述目标PCIe总线号至少包括所述次级总线号和从属总线号。
3.如权利要求2所述的方法,其特征在于,所述依据所述次级总线号和从属总线号确定所述目标PCIe总线号包括:
确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
4.如权利要求1所述的方法,其特征在于,在针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构之前,所述方法还包括:
从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,所述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
5.一种插卡管理装置,其特征在于,该装置包括:
信息获取单元,用于在检测到插卡管理事件的情况下,基于已配置的命令与存储系统中的BMC交互,以获取本地所有在位插卡的插卡信息;其中,所述插卡信息至少包括:插卡所插入的槽位号、插卡被配置的卡型号;
针对存储系统中已有的每一PCIe设备,所述PCIe设备至少包括所述插卡,通过PCIe协议从该PCIe设备的寄存器读取该PCIe设备的管理结构;其中,PCIe设备的管理结构用于描述PCIe设备,其包含PCIe协议中规定的字段;所述字段至少包括:热插拔槽位号字段、根端口RootPort字段;热插拔槽位号字段用于记录PCIe设备对应的热插拔槽位号,RootPort字段用于记录PCIe设备对应的RootPort标识;
信息处理单元,用于针对每一在位插卡,若该插卡所插入的槽位号与其中一个PCIe设备对应的热插拔槽位号相同,则依据该PCIe设备对应的RootPort的RootPort配置空间所存储的次级总线号secondary bus与从属总线号subordinate bus,确定该插卡被配置的卡型号所对应的目标PCIe总线号,以将该插卡被配置的卡型号与所述目标PCIe总线号绑定进行管理。
6.如权利要求5所述的装置,其特征在于,所述信息处理单元用于:
访问所述RootPort配置空间,获取所述次级总线号与从属总线号;
判断所述次级总线号和从属总线号是否相同,若二者相同,确定所述次级总线号或所述从属总线号为所述目标PCIe总线号;
若二者不同,依据所述次级总线号和从属总线号确定所述目标PCIe总线号;所述目标PCIe总线号至少包括所述次级总线号和从属总线号。
7.如权利要求5所述的装置,其特征在于,所述信息处理单元用于:
确定所述次级总线号、从属总线号以及介于所述次级总线号、从属总线号之间的各总线号为所述目标PCIe总线号。
8.如权利要求5所述的装置,其特征在于,所述信息处理单元还用于:
从存储系统中所有PCIe设备中滤除不符合设定筛选条件的PCIe设备,以得到参考PCIe设备;其中,所述不符合设定筛选条件的PCIe设备包括:非PCI-PCI桥设备、非RootPort设备、PCIe能力指针寄存器无效桥设备以及热插拔槽位号不在正常范围内的设备;其中,所述热插拔槽位号不在正常范围内的设备包括:获取到的热插拔槽位号为无效值或获取到的热插拔槽位号不属于系统中实际包含的槽位的设备。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN202310935999.8A 2023-07-27 2023-07-27 插卡管理方法、装置、电子设备及计算机可读存储介质 Pending CN116955253A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310935999.8A CN116955253A (zh) 2023-07-27 2023-07-27 插卡管理方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310935999.8A CN116955253A (zh) 2023-07-27 2023-07-27 插卡管理方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116955253A true CN116955253A (zh) 2023-10-27

Family

ID=88460096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310935999.8A Pending CN116955253A (zh) 2023-07-27 2023-07-27 插卡管理方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116955253A (zh)

Similar Documents

Publication Publication Date Title
CN114003538B (zh) 一种智能网卡的识别方法及智能网卡
CN110718264A (zh) 测试固态硬盘信息的方法、装置、计算机设备及存储介质
CN102609741B (zh) 一种移动设备及其内、外部存储卡间数据交换的方法
CN110597523A (zh) 板卡固件烧录方法、装置、系统及板卡、终端设备
CN112328440B (zh) 一种硬盘物理位置确定方法和装置
CN113608790A (zh) 基于Linux系统的串口设备自适配管理方法、系统及存储介质
CN105988943B (zh) 一种驱动无线适配器的方法及装置
CN116955253A (zh) 插卡管理方法、装置、电子设备及计算机可读存储介质
CN114157662B (zh) 一种云平台参数适配方法、装置、终端设备及储存介质
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
WO2016090768A1 (zh) 端口属性继承方法及装置
CN102111446B (zh) 设备连接处理方法、组合设备和主机设备
CN109725856B (zh) 一种共享节点管理方法、装置、电子设备及存储介质
CN110362324A (zh) 一种网卡升级方法及装置
CN109725939A (zh) 一种芯片启动方法、芯片和计算机可读存储介质
CN115460161B (zh) 光模块改码方法、装置、设备及存储介质
CN112486578B (zh) 一种bmc动态加载传感器的方法、系统、终端及存储介质
CN112988250B (zh) 多主板usb服务配置方法、系统、终端及存储介质
CN111078714B (zh) 数据处理的方法及装置
US20240143474A1 (en) System and method for dynamic sensors support in ipmi stack
CN109375875B (zh) 文件传输方法和装置
CN115357597A (zh) 一种数据记录方法和装置
JP4954329B2 (ja) 2重スロットpciデバイスでの保守の実行の方法およびシステム
CN107220191B (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