用于跟踪唤醒锁定使用的技术的制作方法_3

文档序号:9713493阅读:来源:国知局
据流的速率,从存储设备的可移除介质的数据检索的速率等)。处理器组件550可利用包括在系统日志数据337或补充日志数据331中的任何映射数据,以将有关于唤醒锁定的条目中的识别信息与应用例程370和/或操作系统340的组件中特定的一些相关。处理器组件550通过其时间戳将传达这些事件的指示的条目时间上相关,并且将它们存储为对准的跟踪数据534。
[0043]处理器组件550随后检索对准的跟踪数据534的时间对准的条目的各种组合,并在显示器580上将它们视觉呈现为在共同时间段内发生的事件的时间线的时间对准图。处理器组件550可监视控制520以由调试设备500的操作者接收来自控制520的操作的输入,以选择将显示时间对准图的什么组合和/或将显示由对准的跟踪数据534覆盖的什么时间段。
[0044]图4、5和6每个都描绘图像880的示例性实施例,图像880可被视觉呈现在事件的时间对准图的组合的显示器580上,该事件与计算设备300的操作期间随着时间发生的唤醒锁定的使用相关联。如所描绘的,并且如将被解释的,这样的时间对准帮助识别与唤醒锁定相关联的事件之间的可能的因果相关性,从而帮助调试唤醒锁定程序错误的实例。
[0045]图4描绘多个唤醒锁定图881、884和887的视觉呈现,每个都呈现与唤醒锁定相关的事件的时间线,诸如响应于对唤醒锁定的请求的唤醒锁定的实例化和/或响应于释放唤醒锁定的请求的唤醒锁定的释放。具体描绘的是在时间段期间三个不同的唤醒锁定的实例化和释放的三个时间对准的唤醒锁定图887,包括每个都与不同的应用例程(例如应用例程370中的每一个)相关联的两个应用级唤醒锁定以及与应用功率管理器347相关联的内核级唤醒锁定。还描绘的是在相同的时间段期间与设备驱动器(例如设备驱动器310之一)相关联的内核级唤醒锁定的实例化和释放的唤醒锁定图881,使得唤醒锁定图881与三个唤醒锁定图887时间对准。此外描绘的是在相同时间段期间与操作系统的内核级组件相关联的内核级唤醒锁定的实例化和释放的唤醒锁定图884,使得唤醒锁定图884与唤醒锁定图887和881时间对准。此外还描绘的是在相同时间段期间处理器组件350、接口 390和可移除介质存储设备(例如盘介质读取器,在前述任何图中未具体示出)的活动级的时间线的三个活动图885,使得这些活动图与前述的唤醒锁定图时间对准。此外仍然描绘的是在相同时间段期间在功率状态之间转变计算设备300的时间线的功率状态图883,使得功率状态图883与上述唤醒锁定图时间对准。
[0046]三个唤醒锁定图887的时间对准使得两个应用级唤醒锁定的实例化和释放的因果关系可见,两个应用级唤醒锁定使表示与应用功率管理器347相关联的两个应用级唤醒锁定的聚合的内核级唤醒锁定的实例化和释放发生。更具体地,可以看出:当两个应用级唤醒锁定中的任一个未决时,内核级唤醒锁定保持未决。此外,唤醒锁定图881与针对接口 390的活动图885之一(例如“网络活动”的活动图885)的时间对准提供在设备驱动器的内核级唤醒锁定与接口 390的活动之间存在的关系的视觉提示。应当指出的是:尽管描绘计算设备300的三个具体组件的活动,可包括用于其它组件和/或用于更多或更少组件的活动。此外,可为其示出活动的组件可能是物理分立的组件和/或单个(或少量)半导体器件的电路的功能块(例如“片上系统”或S0C)。如可看到的,开始一些量的网络活动,并且然后其显然由与需要唤醒锁定的接口 390相关联的设备驱动器来确定,使设备驱动器请求唤醒锁定。然后,一旦停止网络活动,该内核级唤醒锁定就由设备驱动器释放。此外,功率状态图883与唤醒锁定图881、884和887的时间对准使得计算设备的功率状态和唤醒锁定的未决之间的因果关系可见。具体地,在没有任何未决的唤醒锁定的情况下,允许计算设备300进入较低功率状态(在具有对角交叉阴影的功率状态图883中所指示),并且在有至少一个未决的唤醒锁定的情况下,迫使计算设备300保持在较高功率状态(在具有正方形交叉影线的功率状态图883中所指示)。
[0047]图5描绘与应用例程相关联的应用级唤醒锁定的单个唤醒锁定图887的视觉呈现的更简单示例,其与关联于可移除存储介质设备的单个活动图885(例如“盘读取器”的活动图)时间对准。这两个图的时间对准使得能够在盘读取器的部分上的活动的开始和在唤醒锁定图887上标记的调用之间看到因果关系,所述调用请求唤醒锁定以允许盘读取器的活动继续而没有来自到较低功率状态的可能的转变的中断。然而,这两个图的时间对准还使得释放唤醒锁定的调用的缺少一旦盘读取器的活动停止就能够被看见。如本领域技术人员所熟悉的,这可提供唤醒锁定程序错误的“无睡眠代码程序错误”版本的指示,其中指令序列中的错误导致唤醒锁定被请求但永远不被释放。指令序列可缺乏所需的调用来释放唤醒锁定,或者指令序列的逻辑可能以导致对唤醒锁定的释放的调度的指令从未被执行的方式是有故障的。
[0048]图6描绘事件的三个时间对准的唤醒锁定图887的视觉呈现的更简单的示例,该事件与关联于应用例程(例如应用例程370之一)的单个应用级唤醒锁定相关联。这些唤醒锁定图887中的两个视觉描绘了由与相同的应用例程相关联的两个单独的线程做出以请求唤醒锁定和释放它的调用。这两个唤醒锁定图887的时间对准使得唤醒锁定程序错误的可能的“无睡眠竞态条件”版本容易可视,其中两个线程之间的指令的执行的时序导致请求唤醒锁定的调用在释放它的调用之后发生。这两个唤醒锁定图887与这些唤醒锁定图887中的第三个的时间对准进一步描绘以其做出两个调用的次序的因果关系和请求的唤醒锁定的所得到的实例化以及随后释放的缺乏。
[0049]图2描绘包括计算设备300的替代实施例的唤醒锁定调试系统1000的替代的实施例的框图。图2的唤醒锁定调试系统1000的替代实施例在许多方面类似于图1的实施例,并且因此,相同的参考标号在全文中用于指代相同的组件。然而,不像图1的计算设备300,图2的计算设备300另外合并图1的调试设备500的特征。因此,正是图2的计算设备300的处理器组件350解析、时间对准和视觉呈现与随着时间而发生的唤醒锁定的使用相关联的事件的时间对准的时间线图,代替分离和不同的调试设备500来这样做。也正是图2的计算设备300的显示器380和控制320用于提供和控制这样的视觉呈现,代替分离和不同的调试设备500的控制520和显示器580来这样做。
[0050]在各种实施例中,处理器组件350和550中的每一个可包括任何的各种各样的商业可得到的处理器。此外,这些处理器组件中的一个或多个可包括多个处理器、多线程处理器、多核处理器(无论多个核共存于相同还是分离的管芯上)和/或多个物理分离的处理器通过其以一些方式链接的一些其它变化性的多处理器架构。
[0051]在各种实施例中,储存器360和560中的每一个可基于任何的各种各样的信息存储技术,可能包括需要不间断地提供电功率的易失性技术,并可能包括使需要使用可能是或可能不可移除的机器可读存储介质的技术。因此,这些储存器中的每一个可包括任何的各种各样类型的存储设备(或类型的组合),包括而不限于:只读存储器(R0M)、随机存取存储器(RAM)、动态 RAM(DRAM)、双数据速率 DRAM(DDR-DRAM)、同步DRAM( SDRAM)、静态RAM( SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(S0N0S)存储器、磁或光卡、一个或多个单独的铁磁盘驱动器或被组织成一个或多个阵列的多个存储设备(例如被组织成独立磁盘阵列的冗余阵列或RAID阵列的多个铁磁盘驱动器)。应当指出的是:虽然这些储存器中的每一个被描绘为单个块,但是这些中的一个或多个可包括可基于不同存储技术的多个存储设备。因此,例如,这些描绘的储存器的每一个中的一个或多个可表示程序和/或数据可通过其存储并传送在某种形式的机器可读存储介质上的光驱动器或闪速存储器卡读取器、在相对延长的时段内本地存储程序和/或数据的铁磁盘驱动器以及使得能够相对快速访问程序和/或数据的一个或多个易失性固态存储器设备(例如SRAM或DRAM)的组合。还应当指出的是:这些储存器中的每一个可由基于相同的存储技术的多个存储组件组成,但是其可作为使用的专业化的结果而被分别维持(例如一些DRAM设备被用为主储存器,而其它DRAM设备被用作图形控制器的不同帧缓冲器)。
[0052]在各种实施例中,接口390和590中的每一个可采用任何的各种各样的信令技术,该信令技术使得计算设备能够耦合到其它设备,如已经描述的。这些接口中的每一个可包括提供至少一些必要的功能性以实现这样的耦合的电路。然而,这些接口中的每一个也可用由处理器组件的对应组件执行的指令序列来至少部分地实现(例如实现协议栈或其它特征)。在采用电和/或光导的布线的情况下,这些接口可采用符合任何各种各样的行业标准的信令和/或协议,包括而不限于:RS-232C、RS-422、USB、以太网(IEEE-802.3)或者IEEE-1394。 在使需要使用无线信号传输的情况下 ,这些接口可采用符合任何各种各样的行业标准的信令和/或协议,包括而不限于:IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常被称为“移动宽带无线接入”);蓝牙;ZigBee;或者蜂窝无线电话服务,诸如具有通用分组无线服务的GSM(GSM/GPRS)、CDMA/lxRTT、增强型数据速率全球演进(EDGE)、仅/优化数据演进(EV-DO)、数据和语音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等。
[0053]图7、8和9每个都更详细地图示图1或者图2的异构核处理系统1000的实施例的一部分的框图。更具体地,图7描绘计算设备300的操作环境的方面,其中处理器组件350在执行操作系统340和日志补丁例程177时以增强的特性在系统日志数据337中记录与应用级唤醒锁定相关联的事件。图8描绘计算设备300的操作环境的方面,其中处理器组件350在执行操作系统340和日志设备驱动器171时在补充日志数据331中记录与内核级唤醒锁定相关联的事件。图9描绘计算设备300或者调试设备500的操作环境的方面,其中处理器组件350或550分别在执行调试例程570时采用系统日志数据337和补充日志数据334来视觉呈现事件的时间对准的时间线图,以帮助调试唤醒锁定。
[0054]如本领域技术人员可认识到的,包括其各自包含的组件的操作系统340、日志补丁例程177、日志设备驱动器171和调试例程570被选为可在被选择以实现处理器组件350或550的可应用组件的任何类型的一个或多个处理器上操作。在各种实施例中,组成每个的指令序列可包括操作系统、设备驱动器和/或应用级例程(例如在盘介质上提供的所谓“软件套件”,从远程服务器获得的“小应用程序”等)中的一个或多个。在包括操作系统的情况下,操作系统可能是适合处理器组件350或550的任何对应组件的任何各种各样的可用操作系统。在包括一个或多个设备驱动器的情况下,那些设备驱动器可提供对计算设备300或500的对应设备的任何各种各样的其它组件(无论是硬件还是软件组件)的支持。
[0055]操作系统340和调试例程540中的每一个可包括由处理器组件350或550可执行的通信组件349或549,以分别操作接口 390或590来经由网络999发送和接收信号,如已经描述的。在所交换的信号之中的可能是或者从服务器100或者从调试设备500向计算设备300传送日志补丁例程177和/或日志设备驱动器171的信号。可替代地或另外,在所交换的信号之中的可能是从计算设备300向调试设备500传送系统日志数据337和补充日志数据331的信号。如将由本领域技术人员认识到的,这些通信组件被选择成用被选择为实现接口 390和590的对应接口的任何类型的接口技术可操作的。
[0056]更具体地转向图7,日志补丁例程177可包括由处理器组件350可执行的捕获组件1777,以拦截来自应用例程370的传入调用来请求或释放唤醒锁定。捕获组件1777捕获在那些调用中传送的参数中的一个或多个,包括而不限于:发送调用的应用例程370中的无论哪个的识别信息,发送调用的应用例程370之一的无论哪个过程的识别信息,或者指示唤醒锁定所应用于的计算设备300的一个或多个特定组件的一个或多个标志。可替代地或另外,捕获组件1777可识别发送调用的应用例程370的部分由处理器组件350在其上执行的线程。
[0057]日志补丁例程177可包括由处理器组件350可执行的收集组件1773,以与应用功率管理器347的一部分合作来从系统数据330检索当前未决的唤醒锁定的映射数据和/或唤醒锁定数据。如先前所讨论的,操作系统340在系统数据330中维持其正常操作所需的各种数据片,并且系统数据330可被维持在储存器360的一部分中,对储存器360的访问受到极大限制以防止其内容讹误。如先前所解释的,映射数据将过程的标识符与在其上执行那些过程的线程的标识符(至少在多线程环境中执行操作系统340的情况下)以及与过程中的至少一些是其部分的应用例程的一些的标识符相关。还如先前所解释的,唤醒锁定数据可包括与将未决的应用级唤醒锁定中的每一
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1