CN102521089B - 硬件设备错误检测方法 - Google Patents

硬件设备错误检测方法 Download PDF

Info

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
Application number
CN201110376792.9A
Other languages
English (en)
Other versions
CN102521089A (zh
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201110376792.9A priority Critical patent/CN102521089B/zh
Publication of CN102521089A publication Critical patent/CN102521089A/zh
Application granted granted Critical
Publication of CN102521089B publication Critical patent/CN102521089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的硬件设备错误检测系统,其特征在于,所述定时器触发处理函数的功能是通知操作系统内核发生不产生中断的错误。
CN201110376792.9A 2011-11-23 2011-11-23 硬件设备错误检测方法 Active CN102521089B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1336587A (zh) * 2000-07-26 2002-02-20 国际商业机器公司 在以正常模式执行指令期间执行硬件测试的处理器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1336587A (zh) * 2000-07-26 2002-02-20 国际商业机器公司 在以正常模式执行指令期间执行硬件测试的处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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