CN108038029B - Cpu变频能力检测方法及装置 - Google Patents
Cpu变频能力检测方法及装置 Download PDFInfo
- Publication number
- CN108038029B CN108038029B CN201711078656.5A CN201711078656A CN108038029B CN 108038029 B CN108038029 B CN 108038029B CN 201711078656 A CN201711078656 A CN 201711078656A CN 108038029 B CN108038029 B CN 108038029B
- Authority
- CN
- China
- Prior art keywords
- cpu
- frequency conversion
- frequency
- load
- conversion capability
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/24—Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
Abstract
本发明提供了一种CPU变频能力检测方法及装置,所述方法包括:获取当前设备的CPU信息以及所述设备的变频管理器信息;基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。基于本发明提供的CPU变频能力检测方法可简单、有效地获取CPU的变频能力,并且准确的完成CPU实际变频能力的检测,进而确定当前环境下CPU变频能力是否符合要求。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种CPU变频能力检测方法及装置。
背景技术
随着CPU工艺的日趋完善,各种高性能CPU层出不穷。在具备越来越强的计算能力的同时,CPU的功耗也越来越大,因此按需调节CPU频率对于节能有着重要的意义。
CPU变频技术可以通过负载情况提高或降低CPU频率达到节能的效果。CPU变频技术根据不同需求设计了不同的管理器,因此,CPU变频技术的推出让省电、按需变频成为可能。那么,如何针对CPU变频能力进行检测,则成为了亟待解决的问题。
发明内容
本发明提供了一种CPU变频能力检测方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种CPU变频能力检测方法,包括:
获取当前设备的CPU信息以及所述设备的变频管理器信息;
基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;
根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。
可选地,所述获取当前设备的CPU信息以及所述设备的变频管理器信息,包括:
通过cpupower工具和/或指定设备文件获取当前设备的包括CPU数量、驱动信息、CPU支持的频率范围和/或CPU支持的变频管理器信息。
可选地,所述基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间,包括:
进行userspace测试时,设置governor为powersave管理器,并将最大、最小频率均设置为CPU支持的最小频率;
获取CPU的当前频率,比较该当前频率和最小频率的差值;
若该当前频率和最小频率的差值小于第一预设阈值,则在所述设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间;
若该当前频率和最小频率的差值大于第一预设阈值,则发出警报并结束测试。
可选地,若该当前频率和最小频率的差值小于第一预设阈值,则计算所述CPU理想变频能力,并在所述设备的所有CPU上运行负载第一预设次数后获取最小频率下的平均运行时间之后,还包括:
设置governor为performance,并将最大、最小频率均设置为CPU支持的最大频率;
获取CPU的当前频率,比较该当前频率和最大频率的差值;
若该当前频率和最小频率的差值小于第二预设阈值,则计算所述CPU实际变频能力,并在所述设备的所有CPU上运行负载第二预设次数后,获取负载运行的平均时间为最大频率的负载运行时间;
若该当前频率和最大频率的差值大于第二预设阈值,则发出警报并结束测试。
可选地,所述根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测,包括:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力;
利用所述最小频率的负载运行时间与最大频率的负载运行时间相除得到CPU实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第一公式,若是,则所述CPU的实际变频能力满足理想要求;
所述第一公式为:
|p-s|<(p-1.0)*t
其中,p代表理想变频能力;s代表实际变频能力;t为变量,取值范围为0~1。
可选地,所述基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间,包括:
进行powersave测试时,判断当前CPU是否支持powersave管理器;
若当前CPU支持powersave管理器,则设置governor为powersave管理器,设置最小频率为CPU支持的最小频率,最大频率为CPU支持的最大频率;
预设时间后获取CPU的当前频率,并比较该当前频率与最小频率的差值是否小于第三预设阈值;
若是,则将负载测试进程绑定到特定CPU上完成单个CPU的负载测试,获取所述负载的运行时间。
可选地,所述根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测,包括:
利用最小频率下的负载运行时间与所述负载的运行时间相除得到所述CPU的实际变频能力;
检测所述实际变频能力是否满足第二公式,若是,则所述CPU实际变频能力满足理想要求;
所述第二公式为:
|s-1|<s*0.1
其中,s代表CPU实际变频能力。
根据本发明的另一个方面,还提供了一种CPU变频能力检测装置,包括:
信息获取模块,配置为获取当前设备的CPU信息以及所述设备的变频管理器信息;
测试模块,配置为基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;
检测模块,配置为根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。
可选地,所述信息获取模块还配置为:
通过cpupower工具和/或指定设备文件获取当前设备的包括CPU数量、驱动信息、CPU支持的频率范围和/或CPU支持的变频管理器信息。
可选地,所述测试模块还配置为:
进行userspace测试时,设置governor为powersave管理器,并将最大、最小频率均设置为CPU支持的最小频率;
获取CPU的当前频率,比较该当前频率和最小频率的差值;
若该当前频率和最小频率的差值小于第一预设阈值,则计算所述CPU理想变频能力,并在所述设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间;
若该当前频率和最小频率的差值大于第一预设阈值,则发出警报并结束测试。
可选地,所述测试模块还配置为:
设置governor为performance,并将最大、最小频率均设置为CPU支持的最大频率;
获取CPU的当前频率,比较该当前频率和最大频率的差值;
若该当前频率和最小频率的差值小于第二预设阈值,则计算所述CPU实际变频能力,并在所述设备的所有CPU上运行负载第二预设次数后,获取负载运行的平均时间为最大频率的负载运行时间;
若该当前频率和最大频率的差值大于第二预设阈值,则发出警报并结束测试。
可选地,所述检测模块还配置为:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力;
利用所述最小频率的负载运行时间与最大频率的负载运行时间相除得到CPU实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第一公式,若是,则所述CPU实际变频能力满足理想要求:
所述第一公式为:
|p-s|<(p-1.0)*t
其中,p代表CPU理想变频能力;s代表CPU实际变频能力;t为变量,取值范围为0~1。
可选地,所述测试模块还配置为:
进行powersave测试时,判断当前CPU是否支持powersave管理器;
若当前CPU支持powersave管理器,则设置governor为powersave管理器,设置最小频率为CPU支持的最小频率,最大频率为CPU支持的最大频率;
预设时间后获取CPU的当前频率,并比较该当前频率与最小频率的差值是否小于第三预设阈值;
当该当前频率与最小频率的差值小于第三预设阈值时,将负载测试进程绑定到特定CPU上完成单个CPU的负载测试,获取所述负载的运行时间。
可选地,所述检测模块还配置为:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力
利用最小频率下的负载运行时间与所述负载的运行时间的比值作为所述CPU的实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第二公式,若是,则所述CPU实际变频能力满足理想要求;
所述第二公式为:
|s-1|<s×0.1
其中,s代表CPU实际变频能力。
根据本发明的再一个方面,还提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述任一项所述的CPU变频能力检测方法。
根据本发明的再一个方面,还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的CPU变频能力检测方法。
本发明提供了一种更加简单、易实现的CPU变频能力检测方法及装置,根据本发明提供的CPU变频能力检测方法,先获取到当前被测设备的CPU信息以及设备中的变频管理器信息,进而进行不同的变频能力测试。本实施例中,针对变频管理器设置不同的测试策略,运行负载之后获取负载的运行时间。根据负载的运行时间计算可以计算CPU的实际变频能力,通过对CPU实际变频能力与理想变频能力的对比,就可以有效且准确地对CPU的变频能力进行检测。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例的CPU变频能力检测方法流程示意图;
图2是根据本发明优选实施例的CPU变频能力检测方法流程示意图;
图3是根据本发明优选实施例的userspace管理器变频测试流程示意图;
图4是根据本发明优选实施例的powersave管理器变频测试流程示意图;
图5是根据本发明实施例的CPU变频能力检测装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
CPU变频技术根据不同需求设计了不同的管理器,包括:userspace、performance、powersave等。因此,CPU变频技术的推出让省电、按需变频成为可能。目前,CPU变频技术现在已经加入到Linux的2.6及以上版本的内核中,主要由内核子系统cpufreq实现,同时也可以用户空间的程序自己控制。因此,对CPU变频能力进行检测已成为一种需求。
图1是根据本发明实施例提供的CPU变频能力检测方法流程示意图。如图1所示,根据本发明实施例提供的CPU变频能力检测方法包括:
步骤S102,获取当前设备的CPU信息以及该设备的变频管理器信息;
步骤S104,基于CPU信息设置与该变频管理器相匹配的变频能力测试策略,在该设备的CPU上运行负载并获取负载的运行时间;
步骤S106,根据负载的运行时间计算负载在该变频管理器运行中的实际变频能力,获取CPU的理想变频能力,基于理想变频能力对实际变频能力进行检测。
根据本发明实施例提供的CPU变频能力检测方法,先获取到当前被测设备的CPU信息以及设备中变频管理器,进而进行不同的变频能力测试。本实施例中,针对变频管理器设置不同的测试策略,运行负载之后获取负载的运行时间。根据负载的运行时间计算可以计算CPU的实际变频能力,通过对CPU实际变频能力与理想变频能力的对比,就可以有效且准确地对CPU的变频能力进行检测。
可选地,在获取当前设备的CPU信息时,可以通过工具cpupower以及指定设备文件,如设备文件/proc/cpuinfo,获取当前设备的CPU信息。当前设备的CPU信息主要可以包括:
1、CPU数量及厂商信息等基本信息;
获取CPU的基本信息时,可以利用cpupower-c all info:获取CPU的数量,并利用/proc/cpuinfo获取processor、model信息;
例如,采用上述方式获取CPU信息的结果可以如下所示:
model:Intel(R)Core(TM)i5_2400 CPU@3.10GHZ
vendor:intel/AMD/IBM
2、驱动、频率等信息
利用cpupower-c 0frequency-info的输出以及python的字符串处理函数以及正则表达式解析出cpu信息,包括:驱动、支持的最大最小频率、支持的管理器等信息。结果如下面的示例所示,其驱动为intel_pstate,频率范围为1.60GHz~3.80GHz,支持的管理器有performance和powersave两种,当前频率为2.00GHz等信息,举例如下:
上述获取过程出现任意错误则测试失败;没有任何错误,正确获取CPU变频相关信息则能通过此子测试项测试。
获取到CPU的基本信息之后即可对设备中的变频管理器进行多种测试。
CPU变频中常用的管理器有五种:userspace、performance、powersave、ondemand、conservative,具体描述表1所示:
表1 CPU变频中常用的管理器
如表1所示中ondemand以及conservative属于动态变频,需要根据具体的CPU压力来决定CPU变频,userspace、performance以及powersave属于静态变频。基于对userspace、performance以及powersave这三种静态变频管理器的测试,能够简单有效地达到测试效果,进而获取CPU的变频能力以实现对CPU的变频能力检测。
图2示出了根据本发明优选实施例的CPU变频能力检测方法流程示意图。
如图2所示,在确保CPU支持变频功能的情况下开始进行测试,整个测试过程主要包括获取当前设备的CPU信息以及userspace测试、powersave测试和performance测试,三种测试均执行完成之后,将系统恢复至原始管理器。所有变频管理测试完成后,可总结并打印测试过程中的测试信息以及测试结果。
下面分别对userspace测试、powersave测试和performance测试进行详细介绍。
本优选实施例中,由于cpupower不能对apci-cpufreq驱动下的userspace进行设置,因此在进行userspace测试时,可利用powersave和performance两种管理器模拟完成。图3是根据本发明优选实施例的userspace管理器变频测试流程示意图。
参照图3,测试开始时,首先利用cpupower工具将当前的策略设置为:最大频率为硬件支持的最小频率;最小频率为硬件支持的最小频率;管理器设置为powersave,即设置governor为powersave管理器,设置命令可以如下所示:
("cpupower-c all frequency-set--governor%s--min%s--max%s"%(governor,min,max))
其中governor为“powersave”,min为硬件支持的最小频率,max也为硬件支持的最小频率,例如上述实施例中的1.6GHz为最小频率,那么此时的命令如下所示:
cpupower-c all frequency-set--governor powersave–min 16000--max16000
由上设置可见,此时即将系统的CPU频率设置在最低频率处,类似于userspace模式下设置最小频率为当前系统CPU频率。
其次,获取CPU的当前频率,比较该当前频率和最小频率的差值;如果该当前频率和最小频率的差值小于第一预设阈值,则在当前设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间。如果该当前频率和最小频率的差值大于第一预设阈值,则发出警报并结束测试。
获取该当前频率时,可利用cpupower frequency-info进行查看,与设置的最小频率是否接近某个阈值,由于频率的影响因素较多,设置第一预设阈值则能更加准确。如果超过该第一预设阈值则提出警告退出测试,否则计算预测速度。可选地,第一预设阈值的取值范围可以为200~500MHz,当然该频率可由用户按照不同设备以及不同测试场景进行调整,本发明不做限定。
举例来说,完成频率设定之后,可以在所有的CPU上运行5次负载,并最终返回一个平均运行时间。优选地,负载运行时首先进行进程绑定,其次执行负载,最后获取执行所需的平均时间。其中进程绑定首先利用CPU_ZERO()函数来清空CPU掩码;然后利用CPU_SET(cpu,&cpuset)设置当前的掩码为当前CPU;最后利用sched_setaffinity(0,sizeof(cpu_set_t),&cpuset)函数将当前进程绑定到指定cpu上,完成绑定操作。完成CPU绑定之后则可以开始运行负载,负载主要参考SPECCPU的浮点运算,选择sqrt函数来测试CPU浮点运算能力。其中sqrt执行的次数为0x8fffffff,即int型数据的最大值。
负载运行完成之后,则可以获取最小频率的负载运行时间,此处可以定义为minFTestTime。如果负载运行完成后,获取负载运行时间失败,则表示测试失败,直接测试结束。
同理,本优选实施例还可以利用performance获取最大频率的负载运行时间。
设置governor为performance,并将最大、最小频率均设置为CPU支持的最大频率;
获取CPU的当前频率,比较该当前频率和最大频率的差值;如果该当前频率和最小频率的差值小于第二预设阈值,则在设备的所有CPU上运行负载第二预设次数后,获取负载运行的平均时间为最大频率的负载运行时间;如果该当前频率和最大频率的差值大于第二预设阈值,则发出警报并结束测试。其中,第二预设阈值的频率优选为200~500MHz,当然该频率可由用户按照不同设备以及不同测试场景进行调整,本发明不做限定。
按照如上设置则能够将频率锁定在最高频率上,类似于使用userspace模式下设置最高频率。设置完成后同样需要验证设置是否成功,成功之后则可以开始运行负载获取最高频率的负载运行时间,记为maxFTestTime。
按照上述方法获取到最小频率下的负载运行时间和最大频率下的负载运行时间后,可利用以下公式获取实际变频能力:
s=minFTestTime/maxFTestTime
其中,minFTestTime表示最小频率下的负载运行时间,maxFTestTime表示最大频率下的负载运行时间,s表示CPU的实际变频能力。
由于minFTestTime表示最小效率下的负载运行时间,该时间较长;同理maxFTestTime则时间较短,因此二者相除同样表示CPU实际运行中的变频能力。
为了更好的验证CPU变频能力,本优选实施例中利用maxF/minF表示CPU的理想变频能力,其中maxF即硬件支持最大频率,minF即硬件支持最小频率。由于实际的环境中受其他软硬件影响,因此使用二者相除来表示此CPU的一个理想变频能力。
进一步地,可通过检测实际变频能力和理想变频能力是否满足第一公式,若是,则说明CPU的实际变频能力满足理想要求。
第一公式可以为:
|p-s|<(p-1.0)*t
其中,p代表CPU理想变频能力,s代表CPU实际变频能力,t为变量,取值范围为0~1,优选为0.5。
上述公式的意义即实际测量的CPU变频能力和理论的CPU变频能力的差值在特定范围内。
如图3所示,完成上述的两个负载测试以及最终的验证则能完成userspace管理器的测试。在本实施例中,利用两种管理器模拟userspace管理器测试,解决了acpi-cpufreq驱动下不能使用cpupower工具设定userspace管理器的频率的问题。还采用相同负载下运行时间来表示实际运行频率,此方法可以衡量CPU实际运行频率。
图4示出了根据本发明优选实施例的powersave管理器变频测试流程示意图。
如图4所示,进行powersave测试时,可以先判断当前CPU是否支持powersave管理器;当前CPU支持powersave管理器,则设置变频策略,即设置governor为powersave管理器,设置最小频率为CPU支持的最小频率,最大频率为CPU支持的最大频率;预设时间后获取CPU的当前频率,并比较该当前频率与最小频率的差值是否小于第三预设阈值;如果该当前频率与最小频率的差值小于第三预设阈值,则将负载测试进程绑定到特定CPU上完成单个CPU的负载测试,获取负载的运行时间。
举例来说,完成策略设置设置后,等待5秒钟后检查当前频率是否设置正确,如果当前频率与最小频率的差值小于阈值则表示设置正确,此时可继续执行。
完成频率检查后,选择一个非CPU0的CPU进行负载测试。利用如下指令将当前进程绑定到特定cpu上完成单个CPU的负载测试:
taskset-pc cpui pid
指令中cpui指的是任意一个非CPU0的CPU,例如cpu1、cpu2,pid指的是系统当前启动的进程的PID号。Taskset可以设定cpu亲和力,即将PID号为pid的进程绑定到当前的cpui上。完成绑定后,开始在特定CPU上运行负载,并返回负载的运行时间powersaveTime。通过绑定进程到特定CPU的方法运行负载,避免了CPU之间交互时发生的影响,减小了误差,测试时间更加准确。
进一步地,可利用最小频率下的负载运行时间与负载的运行时间相除得到CPU的实际变频能力,检测该实际变频能力是否满足第二公式,若是,则CPU的实际变频能力满足理想要求。
第二公式可以为:
|s-1|<s*0.1
其中,s代表CPU实际变频能力,s=minFTestTime/powersaveTime。
由于minFTestTime也是利用最小频率下负载运行时间,因此当s的值接近1时则表示实际的powersave变频管理器符合理想预期。利用公式|s-1|<s*0.1判定s是否接近1,如果满足预期则表示powersave测试成功。本实施例利用实际变频能力和理想变频能力的差的绝对值的范围来判定实际的变频能力是否满足理想要求,可准确的完成CPU实际变频能力的检测,进而确定当前环境下CPU变频能力是否符合要求。
performance管理器的测试和powersave管理器的测试方法类似。进行performance测试时,governor设置为performance,运行负载获得运行时间performanceTime,以及对应的s=minFTime/performanceTime,然后即开始验证是否在特定范围内。
基于同一发明构思,本发明实施例还提供了一种CPU变频能力检测装置,如图5所示,根据本发明实施例提供的CPU变频能力检测装置可以包括:
信息获取模块10,配置为获取当前设备的CPU信息以及所述设备设备的变频管理器信息;
测试模块20,配置为基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;
检测模块30,配置为根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。
可选地,在本发明一个优选实施例中,信息获取模块10还可以配置为:
通过cpupower工具和/或指定设备文件获取当前设备的包括CPU数量、驱动信息、CPU支持的频率范围和/或CPU支持的变频管理器信息。
可选地,在本发明一个优选实施例中,测试模块20还可以配置为:
进行userspace测试时,设置governor为powersave管理器,并将最大、最小频率均设置为CPU支持的最小频率;
获取CPU的当前频率,比较该当前频率和最小频率的差值;
若该当前频率和最小频率的差值小于第一预设阈值,则计算所述CPU理想变频能力,并在所述设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间;
若该当前频率和最小频率的差值大于第一预设阈值,则发出警报并结束测试。
可选地,在本发明一个优选实施例中,测试模块20还可以配置为:
设置governor为performance,并将最大、最小频率均设置为CPU支持的最大频率;
获取CPU的当前频率,比较该当前频率和最大频率的差值;
若该当前频率和最小频率的差值小于第二预设阈值,则计算所述CPU实际变频能力,并在所述设备的所有CPU上运行负载第二预设次数后,获取负载运行的平均时间为最大频率的负载运行时间;
若该当前频率和最大频率的差值大于第二预设阈值,则发出警报并结束测试。
可选地,在本发明一个优选实施例中,检测模块30还可以配置为:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力;
利用所述最小频率的负载运行时间与最大频率的负载运行时间相除得到CPU实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第一公式,若是,则所述CPU实际变频能力满足理想要求:
所述第一公式为:
|p-s|<(p-1.0)*t
其中,p代表CPU理想变频能力;s代表CPU实际变频能力;t为变量,取值范围为0~1。
可选地,在本发明一个优选实施例中,测试模块20还可以配置为:
进行powersave测试时,判断当前CPU是否支持powersave管理器;
若当前CPU支持powersave管理器,则设置governor为powersave管理器,设置最小频率为CPU支持的最小频率,最大频率为CPU支持的最大频率;
预设时间后获取CPU的当前频率,并比较该当前与最小频率的差值是否小于第三预设阈值;
当该当前与最小频率的差值小于第三预设阈值时,将负载测试进程绑定到特定CPU上完成单个CPU的负载测试,获取所述负载的运行时间。
可选地,在本发明一个优选实施例中,检测模块30还可以配置为:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力
利用最小频率下的负载运行时间与所述负载的运行时间的比值作为所述CPU的实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第二公式,若是,则所述CPU实际变频能力满足理想要求;
所述第二公式为:
|s-1|<s×0.1
其中,s代表CPU实际变频能力。
本发明优选实施例还提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据上述任一项所述的CPU变频能力检测方法。
本发明优选实施例还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据上述任一项所述的CPU变频能力检测方法。
本发明实施例提供了一种更加简单、易实现的CPU变频能力检测方法及装置,根据本发明实施例提供的CPU变频能力检测方法,先获取到当前被测设备的CPU信息以及设备中的变频管理器信息,进而进行不同的变频能力测试。本实施例中,针对变频管理器设置不同的测试策略,运行负载之后获取负载的运行时间。根据负载的运行时间计算可以计算CPU的实际变频能力,通过对CPU实际变频能力与理想变频能力的对比,就可以有效且准确地对CPU的变频能力进行检测。
基于上检测方法可简单、有效且准确完成了userspace、powersave以及performance三种管理器的变频能力测试。利用了最大频率除以最小频率来表示CPU理想变频能力,更加方便地查看CPU理想变频能力。进一步地,利用两种管理器模拟userspace管理器测试,解决了acpi-cpufreq驱动下不能使用cpupower工具设定userspace管理器的频率的问题。还采用相同负载下运行时间来表示实际运行频率,此方法可以衡量CPU实际运行频率。此外,在本发明实施例中通过绑定进程到特定CPU的方法运行负载,避免了CPU之间交互时发生的影响,减小了误差,测试时间更加准确。利用实际变频能力和理想变频能力的差的绝对值的范围来判定实际的变频能力是否满足理想要求,并且准确的完成CPU实际变频能力的检测,进而确定当前环境下CPU变频能力是否符合要求。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的CPU变频能力检测装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种CPU变频能力检测方法,包括:
获取当前设备的CPU信息以及所述设备的变频管理器信息;
基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;
根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。
2.根据权利要求1所述的方法,其中,所述获取当前设备的CPU信息以及所述设备的变频管理器信息,包括:
通过cpupower工具和/或指定设备文件获取当前设备的包括CPU数量、驱动信息、CPU支持的频率范围和/或CPU支持的变频管理器信息。
3.根据权利要求2所述的方法,其中,所述基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间,包括:
进行userspace测试时,设置governor为powersave管理器,并将最大、最小频率均设置为CPU支持的最小频率;
获取CPU的当前频率,比较该当前频率和最小频率的差值;
若该当前频率和最小频率的差值小于第一预设阈值,则在所述设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间;
若该当前频率和最小频率的差值大于第一预设阈值,则发出警报并结束测试。
4.根据权利要求3所述方法,其中,若该当前频率和最小频率的差值小于第一预设阈值,则在所述设备的所有CPU上运行负载第一预设次数后获取负载运行的平均时间为最小频率的负载运行时间之后,还包括:
设置governor为performance,并将最大、最小频率均设置为CPU支持的最大频率;
获取CPU的当前频率,比较该当前频率和最大频率的差值;
若该当前频率和最大频率的差值小于第二预设阈值,则在所述设备的所有CPU上运行负载第二预设次数后,获取负载运行的平均时间为最大频率的负载运行时间;
若该当前频率和最大频率的差值大于第二预设阈值,则发出警报并结束测试。
5.根据权利要求1-4任一项所述的方法,其中,所述根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测,包括:
利用所述CPU支持的最大频率与最小频率相除得到CPU理想变频能力;
利用所述最小频率的负载运行时间与最大频率的负载运行时间相除得到CPU实际变频能力;
检测所述实际变频能力和理想变频能力是否满足第一公式,若是,则所述CPU的实际变频能力满足理想要求;
其中,所述第一公式为:
|p-s|<(p-1.0)*t
其中,p代表理想变频能力;s代表实际变频能力;t为变量,取值范围为0~1。
6.根据权利要求3所述的方法,其中,所述基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间,包括:
进行powersave测试时,判断当前CPU是否支持powersave管理器;
若当前CPU支持powersave管理器,则设置governor为powersave管理器,设置最小频率为CPU支持的最小频率,最大频率为CPU支持的最大频率;
预设时间后获取CPU的当前频率,并比较该当前频率与最小频率的差值是否小于第三预设阈值;
若是,则将负载测试进程绑定到特定CPU上完成单个CPU的负载测试,获取所述负载的运行时间。
7.根据权利要求6所述的方法,其中,所述根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测,包括:
利用最小频率下的负载运行时间与所述负载的运行时间相除得到所述CPU的实际变频能力;
检测所述实际变频能力是否满足第二公式,若是,则所述CPU实际变频能力满足理想要求;
所述第二公式为:
|s-1|<s*0.1
其中,s代表CPU实际变频能力。
8.一种CPU变频能力检测装置,包括:
信息获取模块,配置为获取当前设备的CPU信息以及所述设备的变频管理器信息;
测试模块,配置为基于所述CPU信息设置与所述变频管理器相匹配的变频能力测试策略,在所述设备的CPU上运行负载并获取所述负载的运行时间;
检测模块,配置为根据所述负载的运行时间计算所述负载在所述变频管理器运行中的实际变频能力,获取所述CPU的理想变频能力,基于所述理想变频能力对所述实际变频能力进行检测。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的CPU变频能力检测方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-7中任一项所述的CPU变频能力检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711078656.5A CN108038029B (zh) | 2017-11-06 | 2017-11-06 | Cpu变频能力检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711078656.5A CN108038029B (zh) | 2017-11-06 | 2017-11-06 | Cpu变频能力检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108038029A CN108038029A (zh) | 2018-05-15 |
CN108038029B true CN108038029B (zh) | 2021-02-09 |
Family
ID=62093756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711078656.5A Active CN108038029B (zh) | 2017-11-06 | 2017-11-06 | Cpu变频能力检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108038029B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115425907B (zh) * | 2022-09-15 | 2023-03-28 | 大庆恒驰电气有限公司 | 智能变频器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10343004A1 (de) * | 2003-09-12 | 2005-05-04 | Giga Byte Technology Co | Vorrichtung und Verfahren zum automatischen Einstellen der Arbeitsfrequenz einer CPU |
CN101699368A (zh) * | 2009-11-02 | 2010-04-28 | 中兴通讯股份有限公司 | Cpu的自适应动态调频或调压方法及装置 |
CN104007806A (zh) * | 2014-06-20 | 2014-08-27 | 中科创达软件股份有限公司 | 一种安卓系统中的cpu频率的控制方法、装置和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9400518B2 (en) * | 2013-06-05 | 2016-07-26 | Qualcomm Innovation Center, Inc. | Temporary frequency adjustment of mobile device processors based on task migration |
-
2017
- 2017-11-06 CN CN201711078656.5A patent/CN108038029B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10343004A1 (de) * | 2003-09-12 | 2005-05-04 | Giga Byte Technology Co | Vorrichtung und Verfahren zum automatischen Einstellen der Arbeitsfrequenz einer CPU |
CN101699368A (zh) * | 2009-11-02 | 2010-04-28 | 中兴通讯股份有限公司 | Cpu的自适应动态调频或调压方法及装置 |
CN104007806A (zh) * | 2014-06-20 | 2014-08-27 | 中科创达软件股份有限公司 | 一种安卓系统中的cpu频率的控制方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
"基于动态电压频率调整技术的移动金融支付终端电源管理设计";郭昱;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20170315(第03期);第I138-3571页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108038029A (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8069490B2 (en) | Detecting counterfeit electronic components using EMI telemetric fingerprints | |
US20150088462A1 (en) | Hardware performance evaluation method and server | |
US10614905B2 (en) | System for testing memory and method thereof | |
US6110218A (en) | Generation of multiple simultaneous random test cycles for hardware verification of multiple functions of a design under test | |
CN110750396B (zh) | 一种服务器操作系统兼容性测试方法、装置及存储介质 | |
US9268627B2 (en) | Processor hang detection and recovery | |
US11573872B2 (en) | Leveraging low power states for fault testing of processing cores at runtime | |
US20110016455A1 (en) | Power Profiling for Embedded System Design | |
US20150057975A1 (en) | Frequency guard band validation of processors | |
CN108038029B (zh) | Cpu变频能力检测方法及装置 | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN112133357B (zh) | 一种eMMC的测试方法及装置 | |
US20190354308A1 (en) | Hardware, Software and Algorithm to Precisely Predict Performance of SOC when a Processor and Other Masters Access Single-Port Memory Simultaneously | |
US10345883B2 (en) | Power estimation | |
US20160203070A1 (en) | Methods and apparatus to optimize platform simulation resource consumption | |
CN113672260B (zh) | 一种处理器cpu初始化方法 | |
US8903700B2 (en) | Concretization of abstracted traces | |
US8924788B2 (en) | Replaying architectural execution with a probeless trace capture | |
US10467028B2 (en) | Technologies for memory margin aware reliable software execution | |
CN115542125A (zh) | 芯片测试方法及相关装置 | |
CN107943632A (zh) | 一种实现多nvme盘配置服务器中各盘性能均衡的方法及系统 | |
US20080141249A1 (en) | Method, Apparatus, and Program for Detecting an Extraordinary Behavior | |
CN113742252A (zh) | 一种检测内存乱序的方法及装置 | |
Constantinides et al. | Using introspective software-based testing for post-silicon debug and repair | |
US20060052997A1 (en) | Automating identification of critical memory regions for pre-silicon operating systems |
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 |