CN102521089B - 硬件设备错误检测方法 - Google Patents
硬件设备错误检测方法 Download PDFInfo
- Publication number
- CN102521089B CN102521089B CN201110376792.9A CN201110376792A CN102521089B CN 102521089 B CN102521089 B CN 102521089B CN 201110376792 A CN201110376792 A CN 201110376792A CN 102521089 B CN102521089 B CN 102521089B
- Authority
- CN
- China
- Prior art keywords
- timer
- mistake
- interruption
- global variable
- hardware device
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明是一种硬件设备错误检测方法,包括以下步骤:对硬件设备持续中断的错误进行检测;对硬件设备不产生中断的错误进行检测。通过本发明对硬件设备持续中断的错误和不产生中断的错误进行检测,可以有效提高设备驱动可靠性。
Description
技术领域
本发明涉及计算机及电子信息技术领域,特别涉及一种硬件设备错误检测方法。
背景技术
可靠性是操作系统的一个重要目标。Windows XP操作系统85%的失效是由设备驱动造成的。Linux操作系统设备驱动失效的频率是其它部分的3-7倍以上。研究表明,设备失效是导致操作系统失效的主要原因。对Windows服务器的研究发现,8%的系统存储设备或网络适配器会失效。9%的服务器由于硬盘或网络适配器的失效被迫重新启动。因此,在设备驱动中检查设备的错误对提高操作系统的可靠性具有重要意义。持续中断和不产生中断是典型的设备错误。持续中断是指硬件设备不停地触发无意义的中断,导致整个操作系统不能进行有意义的工作,使操作系统瘫痪。不产生中断是指操作系统内核在请求设备完成某个功能后,等待硬件设备的中断以获取结果。由于设备的错误使得没有中断到来,这种错误导致设备不可用。因此,对硬件设备持续中断和不产生中断的错误进行检测成为重要的问题。
发明内容
(一)要解决的技术问题
本发明的目的旨在提高硬件设备尤其是硬件设备驱动的可靠性,而提出一种硬件设备错误检测方法。
(二)技术方案
为了解决上述技术问题,本发明提供一种硬件设备错误检测方法,包括以下步骤:
对硬件设备持续中断的错误进行检测;
对硬件设备不产生中断的错误进行检测。
在本发明的一个实施例中,所述对硬件设备持续中断的错误的检测包括步骤:
在设备驱动代码中设置全局变量;
在设备驱动初始化子程序中将全局变量初始化为0;
在设备驱动初始化子程序中初始化并设置一个定时器;
在被检测设备的驱动的中断服务程序中添加使所述全局变量加1的代码,对中断服务程序的调用次数进行统计;
定时器周期性的根据全局变量的值判断是否发生了持续中断的错误。
在本发明的一个实施例中,在设备驱动初始化子程序中初始化并设置定时器包括步骤:
设置定时器被调度的时间间隔;
设置定时器触发处理函数。
在本发明的一个实施例中,所述时间间隔视具体设备而定。
在本发明的一个实施例中,所述定时器触发处理函数对全局变量进行检查,判断全局变量是否超过了某个阈值,该阈值为一定的时间间隔内这种设备触发中断的最大次数;
如果全局变量超出阈值,通知操作系统内核该驱动发生持续中断的错误;
如果全局变量没有超出阈值,将全局变量清零并重新设置定时器。
在本发明的一个实施例中,所述阈值由具体的设备和定时器中设置的时间间隔确定。
在本发明的一个实施例中,对硬件设备不产生中断的错误的检测包括步骤:
在被检测的设备驱动初始化部分初始化一个定时器;
在驱动服务于I/O请求的子程序的最后设置定时器代码,使定时器生效;
在驱动的中断服务子程序的开始部分取消定时器;
根据定时器是否被触发判断是否发生了不产生中断的错误。
在本发明的一个实施例中,在被检测的设备驱动初始化部分中初始化定时器包括步骤:
设置定时器被调度的时间间隔;
设置定时器触发处理函数。
在本发明的一个实施例中,所述时间间隔视具体设备而定。
在本发明的一个实施例中,所述定时器触发处理函数的功能是通知操作系统内核发生不产生中断的错误。
(三)有益效果
通过本发明对硬件设备持续中断的错误和不产生中断的错误进行检测,可以有效提高设备驱动可靠性。
附图说明
图1为本发明方法的流程图;
图2为本发明一个实施例对持续中断错误进行检测的流程图;
图3为本发明一个实施例对不产生中断错误进行检测的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不是限制本发明的范围。
如图1所示,本发明所述的硬件设备错误检测方法,包括步骤:S1:对硬件设备持续中断的错误进行检测;S2:对硬件设备不产生中断的错误进行检测。
如图2所示,为本发明一个实施例中持续中断的错误检测的流程图,包括以下步骤:
步骤S101,在设备驱动代码中设置全局变量count,在设备驱动初始化子程序中将全局变量count初始化为0,在设备驱动初始化子程序中初始化并设置一个定时器。
对定时器进行初始化时,首先,设置定时器被调度的时间间隔,时间间隔视具体设备而定;然后,设置定时器触发处理函数。定时器触发处理函数中对全局变量count进行检查,判断全局变量count是否超过了某个阈值,阈值由具体的设备和定时器中设置的时间间隔确定,该值为一定的时间间隔内这种设备触发中断的最大次数。
步骤S102,在被检测设备的驱动的中断服务程序的开始部分加入全局变量count加1的代码,即对中断服务程序的调用次数进行统计;
步骤S103,当步骤S101中设置的定时器被调度时间间隔到时,定时器触发处理函数对全局变量count进行检查,判断全局变量count是否超过了某个阈值。如果全局变量count超出阈值,通知操作系统内核该驱动发生持续中断的错误;如果全局变量count没有超出阈值,将全局变量count清零;并重新设置定时器。
如图3所示,为本发明一个实施例中不产生中断的错误检测的流程图,包括以下步骤:
步骤S201,在被检测的设备驱动初始化部分初始化一个定时器;对定时器进行初始化时,设置定时器被调度的时间间隔,时间间隔视具体设备而定;设置定时器触发处理函数,定时器触发处理函数的功能是通知操作系统内核发生不产生中断的错误。
步骤S202,在驱动服务于I/O请求的子程序的最后设置定时器代码,使定时器生效;
步骤S203,在驱动的中断服务子程序的开始部分取消定时器;根据定时器是否被触发判断是否发生了不产生中断的错误。
通过本发明对持续中断和不产生错误进行检测,可以有效提高操作系统的可靠性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (8)
1.一种硬件设备错误检测方法,其特征在于,包括以下步骤:
对硬件设备持续中断的错误进行检测;
对硬件设备不产生中断的错误进行检测;
所述对硬件设备持续中断的错误的检测包括步骤:
在设备驱动代码中设置全局变量;
在设备驱动初始化子程序中将全局变量初始化为0;
在设备驱动初始化子程序中初始化并设置一个定时器;
在被检测设备的驱动的中断服务程序中添加使所述全局变量加1的代码,对中断服务程序的调用次数进行统计;
定时器周期性的根据全局变量的值判断是否发生了持续中断的错误;其中,对硬件设备不产生中断的错误的检测包括步骤:
在被检测的设备驱动初始化部分初始化一个定时器;
在驱动服务于I/O请求的子程序的最后设置定时器代码,使定时器生效;
在驱动的中断服务子程序的开始部分取消定时器;
根据定时器是否被触发判断是否发生了不产生中断的错误。
2.如权利要求1所述的硬件设备错误检测系统,其特征在于,在设备驱动初始化子程序中初始化并设置定时器包括步骤:
设置定时器被调度的时间间隔;
设置定时器触发处理函数。
3.如权利要求2所述的硬件设备错误检测系统,其特征在于,所述时间间隔视具体设备而定。
4.如权利要求2所述的硬件设备错误检测系统,其特征在于,所述定时器触发处理函数对全局变量进行检查,判断全局变量是否超过了某个阈值,该阈值为一定的时间间隔内这种设备触发中断的最大次数;
如果全局变量超出阈值,通知操作系统内核该驱动发生持续中断的错误;
如果全局变量没有超出阈值,将全局变量清零并重新设置定时器。
5.如权利要求4所述的硬件设备错误检测系统,其特征在于,
所述阈值由具体的设备和定时器中设置的时间间隔确定。
6.如权利要求1所述的硬件设备错误检测系统,其特征在于,在被检测的设备驱动初始化部分中初始化定时器包括步骤:
设置定时器被调度的时间间隔;
设置定时器触发处理函数。
7.如权利要求6所述的硬件设备错误检测系统,其特征在于,所述时间间隔视具体设备而定。
8.如权利要求6所述的硬件设备错误检测系统,其特征在于,所述定时器触发处理函数的功能是通知操作系统内核发生不产生中断的错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110376792.9A CN102521089B (zh) | 2011-11-23 | 2011-11-23 | 硬件设备错误检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110376792.9A CN102521089B (zh) | 2011-11-23 | 2011-11-23 | 硬件设备错误检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521089A CN102521089A (zh) | 2012-06-27 |
CN102521089B true CN102521089B (zh) | 2015-01-14 |
Family
ID=46292022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110376792.9A Active CN102521089B (zh) | 2011-11-23 | 2011-11-23 | 硬件设备错误检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521089B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049381A (zh) * | 2012-12-21 | 2013-04-17 | 清华大学 | 基于访问规则控制的内核扩展模块错误检测方法及装置 |
CN109710396B (zh) | 2017-10-26 | 2023-08-22 | 华为技术有限公司 | 一种信息采集及内存释放的方法及装置 |
CN111209129A (zh) * | 2019-12-27 | 2020-05-29 | 曙光信息产业股份有限公司 | 基于amd平台的内存优化方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1336587A (zh) * | 2000-07-26 | 2002-02-20 | 国际商业机器公司 | 在以正常模式执行指令期间执行硬件测试的处理器 |
-
2011
- 2011-11-23 CN CN201110376792.9A patent/CN102521089B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1336587A (zh) * | 2000-07-26 | 2002-02-20 | 国际商业机器公司 | 在以正常模式执行指令期间执行硬件测试的处理器 |
Non-Patent Citations (1)
Title |
---|
Tolerating hardware device failures in software;Asim Kadav et al.;《Proceeding of the ACM SIGOPS 22nd symposium on Operating systems principles》;20091014;59-71 * |
Also Published As
Publication number | Publication date |
---|---|
CN102521089A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7966528B2 (en) | Watchdog mechanism with fault escalation | |
JP6291248B2 (ja) | ファームウェアアップグレードエラー検出および自動ロールバック | |
EP2983086A1 (en) | System fault detection and processing method, device, and computer readable storage medium | |
EP3660681A1 (en) | Memory fault detection method and device, and server | |
US8615685B2 (en) | System and method for detecting errors occurring in computing device | |
US7702971B2 (en) | System and method for predictive failure detection | |
JP2007109238A (ja) | 回復可能なエラーのロギングのためのシステム及び方法 | |
CN102819466B (zh) | 操作系统异常的处理方法及其装置 | |
CN102959502A (zh) | 在系统中提供异步事件通知的方法 | |
CN102521089B (zh) | 硬件设备错误检测方法 | |
CN103559124A (zh) | 故障快速检测方法及装置 | |
US10353765B2 (en) | Method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time-window | |
CN105677497A (zh) | 一种高可用性看门狗电路 | |
CN102681739A (zh) | 触摸屏静电消除方法 | |
CN102915260B (zh) | 固态硬盘容错的方法及其固态硬盘 | |
CN115981898A (zh) | 一种内存可纠错误处理方法、装置、设备及可读存储介质 | |
CN105573777A (zh) | 应用中服务的控制方法及装置 | |
US20120144245A1 (en) | Computing device and method for detecting pci system errors in the computing device | |
US7340594B2 (en) | Bios-level incident response system and method | |
US7966527B2 (en) | Watchdog mechanism with fault recovery | |
US8726102B2 (en) | System and method for handling system failure | |
US9372766B2 (en) | Circumventing load imbalance in parallel simulations caused by faulty hardware nodes | |
US10055272B2 (en) | Storage system and method for controlling same | |
US20150242265A1 (en) | Change message broadcast error detection | |
WO2014112039A1 (ja) | 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |