一种SMBIOS中系统插槽信息的更新方法及更新系统与流程

文档序号:15385061发布日期:2018-09-08 00:28阅读:214来源:国知局

本申请涉及服务器领域,特别涉及一种smbios中系统插槽信息的更新方法及更新系统,一种可读存储介质和一种服务器。



背景技术:

目前在2路服务器中,按照2颗cpu的均在的情况将所有插槽与转接卡组合信息写好列于静态表中,然后根据实际插槽与转接卡的组合信息将静态表删除冗余信息,然而系统插槽信息中的busaddress(地址总线)在1颗和2颗cpu情况下是不一样的。

此外,对于其他多路服务器而言,如4路或者8路服务器,也存在rootport的信息因cpu数量不同发生变化的情况,无法在转接卡上的插槽插有设备时显示设备实际的busaddress信息,无设备时显示的是slot所连接的rootport的busaddress信息。因此如何解决上述问题是本领域技术人员需要面对的问题。

申请内容

本申请的目的是提供一种smbios中系统插槽信息的更新方法及更新系统,一种可读存储介质和一种服务器,解决现有静态表无法根据cpu数量显示实际系统插槽信息的问题。

为解决上述技术问题,本申请提供一种smbios中系统插槽信息的更新方法,具体技术方案如下:

在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

其中,所述确定主板上插槽与转接卡的组合信息包括:

通过读取gpio值确定主板上插槽与转接卡的组合信息。

其中,所述获取地址总线的实际连接状态包括:

扫描bus:dev:fun三个参数以获取地址总线的实际连接状态。

其中,所述更新方法还包括:

删除冗余的插槽与转接卡的组合信息。

本申请还提供一种smbios中系统插槽信息的更新系统,包括:

第一确定模块,用于在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

第二确定模块,用于获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

更新模块,用于获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

其中,所述第一确定模块包括:

确定单元,用于通过读取gpio值确定主板上插槽与转接卡的组合信息。

其中,所述更新模块包括:

扫描单元,用于扫描bus:dev:fun三个参数以获取地址总线的实际连接状态。

其中,还包括:

删除模块,用于删除冗余的插槽与转接卡的组合信息。

本申请还提供一种可读存储介质,其上存储有计算机程序,5述计算机程序被执行时实现实现如下方法对应的步骤:

在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如下方法对应的步骤:

在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

本申请所提供的一种smbios中系统插槽信息的更新方法,包括:在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。通过根据cpu数量设置静态表的格式,并且将地址总线的相关信息显示在静态表中,便于查看设备的实际连接情况,不必被无关信息干扰。本申请还提供一种smbios中系统插槽信息的更新系统,一种可读存储介质和一种服务器,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种smbios中系统插槽信息的更新方法的流程图;

图2为本申请实施例所提供的一种smbios中系统插槽信息的更新系统结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种smbios中系统插槽信息的更新方法的流程图,该更新方法如下:

s101:在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

系统插槽信息主要包括pcie插槽带宽、当前pcie插槽带宽利用状态、转接卡类型和slotid等。更新主要是判断插槽是否接入设备,若是,则获取上述插槽信息并更新。

本步骤旨在获取插槽与转接卡的组合信息。在此不限定具体的确定方法,例如可以通过读取gpio值确定主板上插槽与转接卡的组合信息,也即是通过主板上插槽预留引脚的电平信息确定组合信息。

需要注意的是,并非一个转接卡对应一个插槽,一个转接卡可能对应多个插槽。也因此可以根据插槽预留引脚的电平高低组合判断插槽内对应的转接卡类型。也因此,当插槽预留引脚数目为t时,可以预定义2t个转接卡类型。

s102:获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

现有技术中,在确定主板上插槽与转接卡的组合信息之后,直接将组合信息填写到静态表中。以2路cpu为例,现有的静态表格式为cpu0/cpu1的顺序。

而本申请先获取cpu的数量,避免实际只有一个cpu而静态表中显示两个cpu的信息误导。具体的,通过获取cpu根端口(rootport)的总线数(busnumber)确定cpu的数量。具体的命令传输都是通过函数代码的形式完成。

确定cpu数量之后,根据cpu数量确定静态表的格式。例如对于4路cpu而言,当确定有3个cpu时,可以以cpu0/cpu1/cpu2的格式设置静态表格式。

当然,确定完静态表格式即可建立静态表,建立静态表的过程为现有技术,在此不作赘述。

s103:获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

本步骤旨在确定插槽对应的接入状态。具体的,可以通过扫描bus:dev:fun三个参数以获取地址总线的实际连接状态,无设备时的busaddress(地址总线),有设备时的busaddress、对应的currentusage(当前使用状况)。

需要注意的是,无设备时可以显示插槽所连接的rootport的busaddress信息。

之后,将具体的插槽信息填入步骤s102中确定的静态表。需要注意的是,这个过程是动态过程,所谓动态过程,指的当有设备接入或断开时,对应的更新其插槽状态信息。

基于上述实施例,所述更新方法还可以包括:

删除冗余的插槽与转接卡的组合信息。

这里的删除指的是删除无设备接入的插槽信息,使得静态表只呈现存在设备接入的插槽信息,进而使得系统现有插槽信息一目了然。

本申请实施例提供了一种smbios中系统插槽信息的更新方法,可以通过上述方法实现系统插槽信息的动态更新不会完全受限于静态表所列的信息,在2路服务器中,根据cpu的颗数,动态更新系统插槽信息。在显示时按照cpu0/cpu1的顺序显示,当cpu1不存在时,与其连接的所有插槽信息都会被移除,从而使得有利于查看连接了哪些设备。此外,系统插槽信息中的busaddress信息根据所接的转接卡上的插槽插有设备存时显示设备实际的busaddress信息,有利于查看设备的实际连接情况。

下面对本申请实施例提供的一种smbios中系统插槽信息的更新系统进行介绍,下文描述的更新系统与上文更新方法可相互对应参照。

参见图2,本申请还提供一种smbios中系统插槽信息的更新系统,该更新系统可以包括:

第一确定模块100,用于在初始化所述smbios后,确定主板上插槽与转接卡的组合信息;

第二确定模块200,用于获取cpu根端口的总线数以确定cpu数量,并根据所述cpu数量确定静态表的格式;

更新模块300,用于获取地址总线的实际连接状态,并将所述实际连接状态填写至所述静态表以更新所述系统插槽信息。

其中,所述第一确定模块包括:

确定单元,用于通过读取gpio值确定主板上插槽与转接卡的组合信息。

其中,所述更新模块包括:

扫描单元,用于扫描bus:dev:fun三个参数以获取地址总线的实际连接状态。

其中,还包括:

删除模块,用于删除冗余的插槽与转接卡的组合信息。

本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种服务器,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述服务器还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1