CN108431781B - 设备驱动器检测的错误的自诊断和自动诊断数据收集 - Google Patents

设备驱动器检测的错误的自诊断和自动诊断数据收集 Download PDF

Info

Publication number
CN108431781B
CN108431781B CN201780005052.XA CN201780005052A CN108431781B CN 108431781 B CN108431781 B CN 108431781B CN 201780005052 A CN201780005052 A CN 201780005052A CN 108431781 B CN108431781 B CN 108431781B
Authority
CN
China
Prior art keywords
device driver
automatically
operations
sequence
error
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
CN201780005052.XA
Other languages
English (en)
Other versions
CN108431781A (zh
Inventor
T·弗里曼
N·A·拉贝
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN108431781A publication Critical patent/CN108431781A/zh
Application granted granted Critical
Publication of CN108431781B publication Critical patent/CN108431781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Human Computer Interaction (AREA)

Abstract

自诊断设备驱动器包括存储机器指令的存储器和耦合到存储器的处理器,该处理器执行机器指令以记录与设备驱动器相关联的操作历史。处理器进一步执行机器指令以检测与设备驱动器相关联的错误,从服务中移除相关联的驱动器,并自动地复制设备驱动器操作的序列,该设备驱动器操作的序列对应于检测到错误之前的最近操作历史的片段。处理器还执行机器指令,以在复制设备驱动器操作的序列时,自动地记录与设备驱动器相关联的诊断历史。序列被复制后,设备返回到服务。

Description

设备驱动器检测的错误的自诊断和自动诊断数据收集
技术领域
本说明书总体涉及诊断数据,并且更具体地,涉及用于设备驱动器的自动诊断数据收集。
背景技术
设备驱动器充当计算机的主机操作系统和附接硬件设备之间的接口。设备驱动器通常使操作系统能够与内部和外围设备(诸如键盘、定点设备、监视器、打印机、网卡、存储设备等)进行通信。设备驱动器通常接收来自应用程序或主机操作系统的输入/输出(I/O)或管理命令。设备驱动器可以将这些命令传递给相关联的硬件设备、将这些命令翻译成设备特定的命令或执行任何先决条件或后续管理操作。尽管设备驱动器可能包含在操作系统包中,但是设备驱动器通常由硬件设备制造商提供。
有时,设备驱动器在管理设备时可能会遇到错误。设备驱动器也可能会收到来自相关联硬件设备或主机操作系统的错误通知。这样的错误可能与主机系统、设备驱动器、硬件设备或这些组件之间的复杂交互有关。特别是在生产场景中,错误的根本原因经常可能是不明显的。
结果,一些现有系统实现记录操作信息的跟踪机制,该跟踪机制能够帮助操作者(诸如系统开发者或技术人员)对设备驱动器错误进行故障排除。但是,一般来说,进行详细记录需要系统资源,这会对系统性能产生负面影响。因此,有时候可用的跟踪机制在操作中是不能启用的。
通常,如果没有足够的记录的调试信息可用,则故障排除过程可能需要临时启用相对详细的跟踪记录并且手动重新创建问题。此过程可能相对耗时,可能只在操作者能够以实验方式再现错误中导致的步骤的精确序列之后才能成功,并且在某些生产场景中可能不被允许。
发明内容
根据本发明的一个实施例,一种用于设备驱动器的自诊断的装置包括存储机器指令的存储器和耦合到存储器的处理器,该处理器执行机器指令以记录与设备驱动器相关联的操作历史。处理器进一步执行机器指令以检测与设备驱动器相关联的错误并且自动地复制设备驱动器操作的序列,该设备驱动器操作的序列对应于在检测到错误之前的操作历史的片段。处理器还执行机器指令,以在复制设备驱动器操作的序列时,自动地记录与设备驱动器相关联的诊断历史。
根据本发明的另一个实施例,一种用于设备驱动器的自诊断的计算机实施的方法包括记录与设备驱动器相关联的操作历史和检测与设备驱动器相关联的错误。该方法进一步包括在检测到错误之前,自动地复制对应于操作历史的片段的设备驱动器操作的序列。该方法还包括在复制设备驱动器操作的序列时,自动地记录与设备驱动器相关联的诊断历史。
根据本发明的又一个实施例,一种用于设备驱动器的自诊断的计算机程序产品包括编码有指令的非暂时性计算机可读存储介质,所述指令适于由处理器执行以实现记录与设备驱动器相关联的操作历史以及检测与设备驱动器相关联的错误。指令进一步适于实现自动地复制设备驱动器操作的序列,该设备驱动器操作的序列对应于检测到错误之前的操作历史的片段。这些指令还适于在复制设备驱动器操作的序列时,实现自动地记录与设备驱动器相关联的诊断历史。
在附图和下面的描述中阐述了本发明的一个或更多个实施例的细节。通过说明书和附图以及权利要求,本发明的其他特征、目的和优点将是明显的。
附图说明
图1是说明了根据本发明实施例的示例性自诊断设备驱动器的框图。
图2是描绘了能够实现图1的自诊断设备驱动器的示例性通用计算系统的示意图。
图3是表示了根据本发明实施例的自诊断和自动数据收集的示例性方法的流程图。
具体实施方式
图1中示出了本发明的一个实施例,其说明了示例性自诊断设备驱动器10,其采用自诊断过程以便自动地收集关于硬件设备的诊断数据,该硬件设备通信地连接到计算机系统。自诊断设备驱动器10能够用硬件设备来实现,诸如硬盘驱动器(HDD)、固态驱动器(SSD)、其他存储设备、多个存储设备、图形卡、网卡、打印机、监视器、键盘等、定点设备或通信总线。自诊断设备驱动器10包括启用/禁用控件12、操作跟踪记录器14、错误检测器16、诊断跟踪记录器18和诊断历史复制器20。
启用/禁用控件12由主机计算机配置以存储驱动器设置,该驱动器设置可以启用和/或禁用自诊断设备驱动器10的自诊断功能。在一些实施例中,启用/禁用控件12由显式操作符输入设置。在其他实施例中,例如基于系统条件、故障率、使用模式等,根据用户定义的策略来设置启用/禁用控件12。
在一个实施例中,启用/禁用设置由主机计算机在初始驱动器安装期间配置,并且保持在驻留于硬件设备中的非易失性存储器中,直到该设置被重新配置为止。在可替换的实施例中,启用/禁用设置可以在每次设备加电时的初始化例程期间(例如,在启动例程期间)由主机设置,并且被存储在易失性或非易失性存储器中,该易失性或非易失性存储器驻留在硬件设备中、主机计算机中或通信地连接到主机计算机的另一设备中。
在启用自诊断功能的设备的正常操作期间,操作跟踪记录器14存储或记录设备驱动器操作或事件的减少的或最小的操作历史日志。例如,在一个实施例中,操作跟踪记录器14存储跟踪文件,该跟踪文件记录(memorialize):由自诊断设备驱动器10从主机计算机操作系统接收的系统调用、由自诊断设备驱动器10发送到硬件设备的设备协议命令以及由自诊断设备驱动器10执行的内部设备驱动器例程的概要。
在一个实施例中,操作跟踪记录器14将操作历史日志保持在驻留于硬件设备中的非易失性存储器缓冲器中。因此,在硬件设备的命令的断电或非命令的断电之后、任何非操作时段之后、以及硬件设备重启之后和设备驱动器初始化之后,操作历史日志通常将可以用于自诊断设备驱动器10。在其他实施例中,操作跟踪记录器14将操作历史日志的部分或全部保持在硬件设备中的易失性存储器缓冲器中,或者保持在驻留于主机计算机或另一存储设备中的非易失性或易失性存储器中。
在一些实施例中,操作跟踪记录器14附加地存储与各个跟踪日志条目有关的跟踪消息以提供补充操作信息。例如,跟踪消息可以包括在操作期间由自诊断设备驱动器10使用或产生的操作数据。
错误检测器16在正常操作期间监视(即,对于硬件设备操作和驱动器功能,连续地、周期性地或间歇地收集和评估数据)硬件设备操作和驱动器功能,并且检查操作信息和信号以检测操作错误。允许自诊断设备驱动器10和硬件设备以正常模式操作,直到检测到错误。在各种实施例中,可以由错误检测器16检测到的错误类型的示例包括:不足够的可用系统或设备资源;设备配置信息错误;设备资源注册表错误;设备固件错误;多个连接设备之间不兼容;设备管理命令不成功;无法使用的设备;驱动器软件讹误;或能够影响设备操作的任何其他驱动器或设备问题。
当检测到错误时,自诊断设备驱动器10验证启用/禁用控件12的当前设置。如果当错误检测器16检测到错误时,自诊断功能当前被禁用,则自诊断设备驱动器10不存储跟踪文件。当在错误检测器16检测到错误时自诊断功能设置当前被启用,则自诊断设备驱动器10暂时停止正常操作并且使硬件设备停止服务以便执行自诊断程序。
在一个实施例中,在硬件设备从服务中被移除的时段期间,主机计算机对设备的正常访问被阻止并且设备的正常操作被暂停,使得自诊断程序能够被相对隔离地完成。在其他实施例中,硬件设备可以包括多个存储设备,例如独立磁盘冗余阵列(RAID)或其他冗余解决方案,例如驱动器或卷(volume)镜像。在这些实施例中,自诊断设备驱动器10可以仅移除遇到服务的错误的单个存储设备,而关于附加存储设备的正常操作则继续进行。
为了执行自诊断程序,自诊断设备驱动器10启动诊断跟踪记录器18,其在整个自诊断程序中存储或记录设备驱动器操作或事件的增强的操作历史日志,例如,在最大可服务性模式下。自诊断设备驱动器10自动地启动诊断跟踪记录器18,也就是说,不需要操作者(诸如系统开发者或技术人员)的输入或干预。
在一个实施例中,诊断跟踪记录器18存储跟踪日志,该跟踪日志记录所执行的操作程序的相对完整的、详细的诊断历史日志,以及由自诊断设备驱动器10响应于检测到的错误事件而处理的数据。诊断历史日志不仅包括:由自诊断设备驱动器10从主机计算机操作系统接收的系统调用和由自诊断设备驱动器10发送到硬件设备的设备协议命令,而且还包括:由自诊断设备驱动器10实施的、用于执行内部设备驱动器例程的操作步骤的详细说明,以及在自诊断程序期间,由自诊断设备驱动器10使用的数据操作数和由自诊断设备驱动器10产生的数据结果的相对完整的列表。
在一个实施例中,诊断跟踪记录器18将诊断历史日志保持在驻留于硬件设备中的非易失性存储器缓冲器中。在其他实施例中,诊断跟踪记录器18可以将操作历史日志的部分或全部保持在硬件设备中的易失性存储器缓冲器中,或者保持在驻留于主机计算机或另一存储设备中的非易失性或易失性存储器中。在一些实施例中,诊断跟踪记录器18附加地存储与各个跟踪日志条目有关的跟踪消息以提供补充操作信息。
在自诊断程序期间,诊断历史复制器20使用来自操作历史日志的信息来尝试通过以下再现来复制错误,再现在导致检测到的错误的正常操作期间由自诊断设备驱动器10和硬件设备先前执行的操作步骤的精确序列。因此,诊断历史复制器20指示自诊断设备驱动器10使用记录在操作历史日志或补充跟踪消息中的数据,来按序列执行反映在操作历史日志中的每个操作。诊断历史复制器20自动地复制操作历史,也就是说,无需操作者(例如系统开发者或技术人员)的输入或干预。
例如,在一个实施例中,诊断历史复制器20从操作历史日志的片段中复制设备驱动器操作,所述操作历史日志的片段对应于在比错误检测器16检测到错误的时间早的设定间隔处开始和在检测到错误时或之后结束的时间段。在一个可替换实施例中,诊断历史复制器20从操作历史日志的片段中复制操作,该操作历史日志的片段对应于若干设备驱动器操作,该若干设备驱动器操作在比错误检测器16检测到错误的点早的设定数量的操作处开始以及在检测到错误时或之后的点处结束。当诊断历史复制器20再现自诊断装置驱动器10的操作历史时,由诊断跟踪记录器18捕获详细的诊断数据。
在一个可替换实施例中,当操作历史日志不足以限定程序步骤的精确序列、或操作历史日志中存在歧义时,诊断历史复制器20可以在多次运行期间重复复制的操作时引入变化。例如,诊断历史复制器20可以在操作历史日志尝试复制错误的重复的复制期间执行可替换的程序分支或使用可替换的数据操作数。
在另一个可替换的实施例中,诊断历史复制器20可以限制在重新创建自诊断程序期间允许的命令或程序,以避免引入可能影响后续设备操作的系统状态改变。在一个实施例中,自诊断设备驱动器10可以在完成自诊断程序之后执行系统检查。
一旦完成了自诊断程序,自诊断设备驱动器10就终止诊断跟踪记录器18并将硬件设备再投入服务。设备返回到服务后,主机计算机正常访问设备被允许,并且恢复正常操作。
因此,在执行最初导致检测到的错误的操作时,自诊断装置10自动地收集并存储系统级的详细诊断数据。在一个实施例中,详细诊断数据包括所有设备驱动器到硬件设备的通信。在某些情况下,设备驱动器到硬件设备的通信由多个主机过程或应用程序启动。除了促进自动的问题重新创建之外,与手动检查各个过程跟踪文件相比,收集的系统级数据在后续手动问题调查期间也非常有用,例如,帮助识别由源自多个主机过程的设备命令之间的交互导致的错误。
如图2所说明的,能够在图1的自诊断设备驱动器10中采用的示例性通用计算设备30包括处理器32、存储器34、输入/输出设备(I/O)36、存储38和网络接口40。计算设备30的各种组件通过本地数据链路42耦合,本地数据链路42在各种实施例中包含:例如,地址总线、数据总线、串行总线、并行总线、存储总线或上述任何组合。
在一些实施例中,计算设备30通过网络接口40的方式耦合到通信网络34,网络接口40在各种实施例中可以包括,例如,经配置以耦合到基于处理器的系统的设备(以及任何相关联的软件或固件)的任何组合,包括:调制解调器、接入点、路由器、网络接口卡、LAN或WAN接口、无线或光学接口等以及如设计所期望或要求的任何相关联的传输协议。
计算设备30能够用于,例如,实现图1的自诊断设备驱动器10的组件的功能。在各种实施例中,计算设备30可以包括例如服务器、工作站、大型计算机、控制器、个人计算机(PC)、台式PC、膝上型PC、平板电脑、笔记本电脑、个人数字助理(PDA)、智能电话、可穿戴设备等。存储在计算机可读介质(诸如存储38或耦合到计算设备30的外围存储组件)上的编程代码(诸如源代码、目标代码或可执行代码)能够被加载到存储器34中并由处理器32执行以完成自诊断设备驱动器10的功能。
现在参考说明了示例性过程流程的图3,该示例性过程流程可以例如,由图1的自诊断设备驱动器10执行,以实现本公开中所描述的用于设备驱动器的自诊断的方法的实施例,以自动地收集与通信地连接到计算机系统的硬件设备有关的诊断数据。该过程在框70开始,其中主机计算机主系统配置设备驱动器的启用/禁用控件的设置以启用设备驱动器的自诊断功能,如上所述。
在框72中,如上所述,设备驱动器在设备的正常运行期间使用跟踪机制来存储驱动器操作的操作历史。在框74中,设备的正常操作持续进行直到设备驱动器检测到错误。在框76中,当检测到错误时,设备驱动器将设备从服务中移除并在自诊断程序中临时限制对设备的访问。
在框78中,如上所解释的,设备驱动器在自诊断程序期间存储驱动器操作的增强的操作历史或详细诊断历史。在框80中,设备驱动器再现记录在检测到错误的点之前的最近操作历史中的操作步骤的序列,如上文解释的,尝试重新创建错误条件。在重新创建程序期间,由设备驱动器捕获详细诊断数据。
在框82中,设备驱动器终止详细诊断历史记录,并且在框84中,设备驱动器恢复记录减少的操作历史。在框86中,如上所解释的,设备驱动器使设备返回到服务并允许对设备的正常访问,以便可以恢复正常的设备操作。
本文描述的系统和方法能够提供的优点是,诸如减少或消除对手动故障排除的需求,其大体上减少初始错误检测与最终错误分析之间的时间。对于分析检测到的设备驱动器错误,这些系统和方法可以减少或最小化所需的系统资源,以及系统性能的任何相关下降。
本文参考流程图说明或框图来描述本公开的各方面,其中每个框或框的任何组合可以通过计算机程序指令来实现。可以将指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以实现机器或制造物品,并且当由处理器执行指令时,指令创建用于实现图中每个框或框的组合中指定的功能、动作或事件的装置。
就此而言,流程图或框图中的每个框可以对应于代码的模块、片段或部分,该代码包括一个或更多个可执行指令,该一个或更多个可执行指令用于实现指定的(一个或更多个)逻辑功能。还应该注意的是,在一些可替换实施例中,与任何框相关联的功能可以不按照附图中标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。
本领域的普通技术人员将认识到,本公开的各方面可以体现为设备、系统、方法或计算机程序产品。因此,本公开的各方面(在此统称为电路、模块、组件或系统等)可以体现在硬件、软件(包括源代码、目标代码、汇编代码、机器代码、微代码、常驻软件、固件等)或软件和硬件的任何组合(包括体现在计算机可读介质中的计算机程序产品,所述计算机可读介质具有体现在其上的计算机可读程序代码)中。
应该理解的是可以进行各种修改。例如,如果公开的技术的步骤以不同的顺序执行,和/或如果公开的系统中的组件以不同的方式组合和/或被其他组件替换或补充,则仍然可以实现有用的结果。因此,其他实施方式在随附权利要求的范围内。

Claims (20)

1.一种利用设备驱动器的自诊断的装置,包括:
存储器,其存储机器指令;和
处理器,其耦合到所述存储器并且被配置为执行所述机器指令,其中在所述机器指令被执行时使得所述处理器:
将所述设备驱动器实现为第一硬件设备和主机计算机之间的接口;
记录与所述设备驱动器相关联的操作历史;
检测与所述设备驱动器相关联的错误;以及
响应于检测到所述错误并且没有用户干预,自动地阻止所述第一硬件设备服务所述主机计算机,通过重复执行设备驱动器操作的序列来自动复制设备驱动器操作的序列,该设备驱动器操作的序列对应于检测到所述错误之前的所述操作历史的片段,在复制所述设备驱动器操作的序列时,自动记录与所述设备驱动器相关联的诊断历史,以及指示所述第一硬件设备恢复服务于所述主机计算机。
2.根据权利要求1所述的装置,其中所述设备驱动器被进一步实现为所述主机计算机和第二硬件设备之间的接口,并且其中在所述机器指令被执行时,进一步使得所述处理器响应于检测到所述错误,在自动地复制所述设备驱动器操作的序列时,暂停所述第一硬件设备的正常操作并且同时继续所述第二硬件设备的正常操作,以及在已经自动地复制所述设备驱动器操作的序列后,恢复所述第一硬件设备的正常操作。
3.根据权利要求1所述的装置,其中在所述机器指令被执行时,进一步使得所述处理器在自动地复制所述设备驱动器操作的序列时复制所述错误。
4.根据权利要求1所述的装置,其中在所述机器指令被执行时进一步使得所述处理器配置控件设置,其中所述设备驱动器操作的序列基于所述控件设置当前被配置为启用自诊断而被自动地被复制和自动地被记录。
5.根据权利要求1所述的装置,其中所述装置不需要操作者的干预来自动地复制和自动地记录所述设备驱动器操作的序列。
6.根据权利要求1所述的装置,其中所述操作历史对应于所述第一硬件设备的正常操作的时段。
7.根据权利要求1所述的装置,其中记录所述操作历史包括记录与多个过程相关联的设备驱动器操作,所述多个过程与所述主机计算机相关联。
8.一种用于设备驱动器的自诊断的方法,包括:
将设备驱动器实现为第一硬件设备和主机计算机之间的接口;
记录与所述设备驱动器相关联的操作历史;
检测与所述设备驱动器相关联的错误;
响应于检测到所述错误并且没有用户干预,自动暂停从主机计算机到所述第一硬件设备的访问,通过重复执行设备驱动器操作的序列来自动地复制设备驱动器操作的序列,所述设备驱动器操作的序列对应于检测到所述错误之前的所述操作历史的片段;在复制所述设备驱动器操作的序列时,自动地记录与所述设备驱动器相关联的诊断历史,以及恢复从所述主机计算机到所述第一硬件设备的访问。
9.根据权利要求8所述的方法,所述设备驱动器被进一步实现为所述主机计算机和第二硬件设备之间的接口,所述方法进一步包括:
响应于检测到所述错误,在自动地复制所述设备驱动器操作的序列时,暂停与所述设备驱动器相关联的所述第一硬件设备的正常操作,同时继续所述第二硬件设备的正常操作并且允许从所述主机计算机到所述第二硬件设备的访问;以及
在自动地复制所述设备驱动器操作的序列后,恢复所述第一硬件设备的正常操作。
10.根据权利要求8所述的方法,进一步包括在自动地复制所述设备驱动器操作的序列时复制所述错误。
11.根据权利要求8所述的方法,进一步包括配置控件设置,其中仅基于所述控件设置当前被配置为启用自诊断,而执行所述自动地复制和自动地记录。
12.根据权利要求8所述的方法,其中所述操作历史的所述片段对应于预定时间段。
13.根据权利要求8所述的方法,其中所述操作历史的所述片段对应于预定数量的设备驱动器操作。
14.根据权利要求8所述的方法,其中自动地复制和自动地记录不需要操作者的干预。
15.根据权利要求8所述的方法,进一步包括从所述设备驱动器向与主机计算机通信连接的设备发送命令,其中所述设备驱动器在所述主机计算机上执行。
16.根据权利要求8所述的方法,其中所述操作历史对应于所述第一硬件设备的正常操作的时段。
17.根据权利要求8所述的方法,其中记录所述操作历史包括记录系统调用、命令或例程中的至少一个,所述系统调用由所述设备驱动器从与所述主机计算机相关联的操作系统接收,所述命令从所述设备驱动器被发送到所述第一硬件设备,所述例程由所述设备驱动器执行。
18.根据权利要求8所述的方法,其中记录所述操作历史包括记录与多个过程相关联的设备驱动器操作,所述多个过程与所述主机计算机相关联。
19.一种用于设备驱动器的自诊断的非暂时性计算机可读存储介质,其中所述非暂时性计算机可读存储介质利用指令编码,所述指令适于由处理器执行以实现操作,所述操作包括:
将设备驱动器实现为第一硬件设备和主机系统之间的接口;
记录与所述设备驱动器相关联的操作历史;
检测与所述设备驱动器相关联的错误;
响应于检测到所述错误并且没有用户干预,自动暂停从主机系统到所述第一硬件设备的访问,通过重复执行设备驱动器操作的序列来自动地复制设备驱动器操作的序列,所述设备驱动器操作的序列对应于检测到所述错误之前的所述操作历史的片段;
在复制所述设备驱动器操作的序列时,自动地记录与所述设备驱动器相关联的诊断历史,以及
恢复从所述主机系统到所述第一硬件设备的访问。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中所述设备驱动器被进一步实现为所述主机系统和第二硬件设备之间的接口,并且其中所述操作进一步包括:
响应于检测到所述错误,在自动地复制所述设备驱动器操作的序列时,暂停与所述设备驱动器相关联的所述第一硬件设备的正常操作,同时继续所述第二硬件设备的正常操作;并且允许从所述主机系统到所述第二硬件设备的访问;以及
在自动地复制所述设备驱动器操作的序列后,恢复所述第一硬件设备的正常操作。
CN201780005052.XA 2016-03-02 2017-03-01 设备驱动器检测的错误的自诊断和自动诊断数据收集 Active CN108431781B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/058,834 US10042688B2 (en) 2016-03-02 2016-03-02 Self-diagnosis of device drive-detected errors and automatic diagnostic data collection
US15/058,834 2016-03-02
PCT/US2017/020280 WO2017151821A1 (en) 2016-03-02 2017-03-01 Self-diagnosis of device drive-detected errors and automatic diagnostic data collection

Publications (2)

Publication Number Publication Date
CN108431781A CN108431781A (zh) 2018-08-21
CN108431781B true CN108431781B (zh) 2021-07-20

Family

ID=58632566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780005052.XA Active CN108431781B (zh) 2016-03-02 2017-03-01 设备驱动器检测的错误的自诊断和自动诊断数据收集

Country Status (5)

Country Link
US (1) US10042688B2 (zh)
KR (1) KR101949115B1 (zh)
CN (1) CN108431781B (zh)
DE (1) DE112017000210T5 (zh)
WO (1) WO2017151821A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452459B2 (en) * 2016-12-09 2019-10-22 Microsoft Technology Licensing, Llc Device driver telemetry
US10467082B2 (en) * 2016-12-09 2019-11-05 Microsoft Technology Licensing, Llc Device driver verification
US11016862B2 (en) * 2017-05-23 2021-05-25 International Business Machines Corporation Error-initiated mirror redrive to collect diagnostic information
US10599508B2 (en) * 2017-06-08 2020-03-24 International Business Machines Corporation I/O error diagnostics
US11119890B2 (en) * 2019-08-28 2021-09-14 International Business Machines Corporation Instruction level tracing for analyzing processor failure
US11971789B2 (en) * 2020-06-16 2024-04-30 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for crash recovery in storage devices
KR20220010303A (ko) * 2020-07-17 2022-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379414A (en) * 1992-07-10 1995-01-03 Adams; Phillip M. Systems and methods for FDC error detection and prevention
CN101140781A (zh) * 2006-09-04 2008-03-12 索尼株式会社 用于处理信息的装置、方法及计算机程序
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
CN104199754A (zh) * 2013-03-13 2014-12-10 西部数据技术公司 生产故障分析系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04264627A (ja) 1991-02-19 1992-09-21 Nikon Corp 自己診断装置および方法
US6467054B1 (en) 1995-03-13 2002-10-15 Compaq Computer Corporation Self test for storage device
US5852720A (en) * 1996-08-16 1998-12-22 Compaq Computer Corp. System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer
US6067262A (en) 1998-12-11 2000-05-23 Lsi Logic Corporation Redundancy analysis for embedded memories with built-in self test and built-in self repair
US6591358B2 (en) 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
US7320125B2 (en) * 2001-05-24 2008-01-15 Techtracker, Inc. Program execution stack signatures
US6895500B1 (en) 2001-10-31 2005-05-17 Western Digital Technologies, Inc. Disk drive for receiving setup data in a self monitoring analysis and reporting technology (SMART) command
KR100571782B1 (ko) 2004-01-16 2006-04-18 삼성전자주식회사 프린팅 시스템의 에러 자가 진단 장치 및 그 방법
US20050210329A1 (en) 2004-03-18 2005-09-22 Newisys, Inc. Facilitating system diagnostic functionality through selective quiescing of system component sensor devices
US7366944B2 (en) * 2005-01-14 2008-04-29 Microsoft Corporation Increasing software fault tolerance by employing surprise-removal paths
US7849364B2 (en) 2005-03-01 2010-12-07 Microsoft Corporation Kernel-mode in-flight recorder tracing mechanism
JP4262260B2 (ja) * 2006-05-12 2009-05-13 株式会社日立製作所 内燃機関の診断装置
US9298568B2 (en) 2008-02-07 2016-03-29 International Business Machines Corporation Method and apparatus for device driver state storage during diagnostic phase
US9064043B2 (en) * 2008-12-19 2015-06-23 Ncr Corporation Fault replay system and method
WO2010097953A1 (ja) 2009-02-27 2010-09-02 富士通株式会社 情報処理装置における障害再現装置及び障害再現方法並びに障害再現プログラム
US9183117B2 (en) 2013-06-20 2015-11-10 Abbott Laboratories Inc. Method for developing and testing a connectivity driver for an instrument

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379414A (en) * 1992-07-10 1995-01-03 Adams; Phillip M. Systems and methods for FDC error detection and prevention
CN101140781A (zh) * 2006-09-04 2008-03-12 索尼株式会社 用于处理信息的装置、方法及计算机程序
US8639984B2 (en) * 2011-08-09 2014-01-28 International Business Machines Corporation Checkpoint debugging using mirrored virtual machines
CN104199754A (zh) * 2013-03-13 2014-12-10 西部数据技术公司 生产故障分析系统

Also Published As

Publication number Publication date
DE112017000210T5 (de) 2018-08-09
US20170255535A1 (en) 2017-09-07
CN108431781A (zh) 2018-08-21
WO2017151821A1 (en) 2017-09-08
KR101949115B1 (ko) 2019-02-15
KR20180072860A (ko) 2018-06-29
US10042688B2 (en) 2018-08-07

Similar Documents

Publication Publication Date Title
CN108431781B (zh) 设备驱动器检测的错误的自诊断和自动诊断数据收集
EP3365783B1 (en) Proactively providing corrective measures for storage arrays
US20170046152A1 (en) Firmware update
US9311191B2 (en) Method for a source storage device sending data to a backup storage device for storage, and storage device
US9678682B2 (en) Backup storage of vital debug information
US7788537B1 (en) Techniques for collecting critical information from a memory dump
US9317357B2 (en) Management of microcode errors in a storage operation
US7363546B2 (en) Latent fault detector
US20220405164A1 (en) Application logging mechanism
JP2016085728A (ja) デバイス故障後のコンソールメッセージ回収方法およびシステム
US10514972B2 (en) Embedding forensic and triage data in memory dumps
US9280453B1 (en) Method and system for test automation framework for backup and recovery applications
US20150278048A1 (en) Systems and methods for restoring data in a degraded computer system
US11500854B2 (en) Selective data synchronization to troubleshoot production environment failures
US9690672B2 (en) Acquiring diagnostic data selectively
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
US11243712B2 (en) Local analytics for high-availability storage systems
US9882800B2 (en) Computer room environment servicing
US10956038B2 (en) Non-volatile memory drive partitions within microcontrollers
US11016862B2 (en) Error-initiated mirror redrive to collect diagnostic information

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