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

文档序号:9713493阅读:来源:国知局
个关联到应用例程370之一的标识符相关的至少未决的应用级唤醒锁定的指示。
[0058]日志补丁例程177可包括由处理器组件350可执行的中继组件1774,以向系统日志生成器344提供请求或释放应用级唤醒锁定的调用的接收的指示、当前未决的唤醒锁定的映射数据和/或唤醒锁定数据,以被记录为系统日志数据337的附加数据334的部分。虽然在一些实施例中,系统日志生成器344可提供它在生成系统日志数据337时创建的所有条目的所有时间戳,中继组件1774可替代地或另外更直接地从时钟351接收当前时间的指示,以用于对与被传送到系统日志生成器344的唤醒锁定相关的事件的指示加时间戳。
[0059]更具体地转向图8,日志设备驱动器171可包括由处理器组件350可执行的调用组件1713以用调用发信号通知内核功率管理器341,所述调用请求使用由内核功率管理器341提供的DPI的回调机制以安排请求或释放对内核功率管理器341做出的内核级唤醒锁定的所有调用以被中继到日志设备驱动器171。这将包括针对由设备驱动器310、应用功率管理器347和操作系统340的其它组件中的一个或多个进行的内核级唤醒锁定的调用。在一些实施例中,调用组件1713也可用调用连同识别信息发信号通知内核功率管理器341,所述调用请求指示什么内核级唤醒锁定已经未决,所述识别信息指示设备驱动器310中的哪个(些)和/或操作系统340的哪些组件请求它们。这可导致内核功率管理器341检索被维持为系统数据330的部分的唤醒锁定数据的至少一部分,所述系统数据330包括相关于与它们相关联的无论什么设备驱动器或操作系统组件的未决内核级唤醒锁定(例如请求它们的无论什么设备驱动器或操作系统组件)的指示。
[0060]日志设备驱动器171可包括由处理器组件350可执行的接收组件1711,以从内核功率管理器341接收内核功率管理器341接收以请求或释放内核级唤醒锁定的调用的指示。由内核功率管理器341提供这些指示可响应于由调用组件1713对内核功率管理器341做出的调用,以调入回调机制,如前所讨论的。接收组件1711也可捕获从内核功率管理器341接收的指示:什么内核级唤醒锁定当前未决和/或设备驱动器310中的哪些和/或操作系统340中的哪些组件请求它们。
[0061 ]日志设备驱动器171可包括由处理器组件350可执行的记录(logging)组件1714,以生成补充日志数据331。在这样做时,记录组件1714在补充日志数据331中存储请求或释放内核级唤醒锁定的调用的指示和/或当前未决的唤醒锁定的唤醒锁定数据。记录组件1714从时钟351接收当前时间的指示,以用于对与补充日志数据331中记录的内核级唤醒锁定相关的事件(诸如请求或释放内核级唤醒锁定的调用)的指示加时间戳。
[0062]更具体地转向图9,调试例程570可包括由处理器组件350或550中的任一个可执行的相关组件574,以解析系统日志数据337和补充日志数据331的条目来提取与唤醒锁定相关联的条目,以及指示计算设备300的组件的活动的方面的条目。相关组件574时间对准所提取的条目,并将它们组合以生成对准的跟踪数据534。在这样做时,相关组件574还可提取系统日志数据337或补充日志数据331的任一个中包括的任何映射数据,以将操作系统340等的例程、过程、线程、组件等的识别信息与应用级和/或内核级唤醒锁定相关,以识别和使用它们之间的关联,以进一步将对准的跟踪数据534中的条目相关。
[0063]调试例程570可包括由处理器组件350或550中任一个可执行的呈现组件578,以分别在显示器380或580上视觉呈现与唤醒锁定相关联的事件、计算设备300的组件的活动和/或在对准的跟踪数据534中指示的计算设备300的功率状态之间的转变的时间对准的时间线图的图像880。如已经讨论的,呈现组件578可监视控制320或520来分别由计算设备300或调试设备500的操作者接收那些控制的操作的指示,以选择与唤醒锁定相关联的各种事件中的哪些事件、哪些组件的活动级等以使其在图像880中视觉呈现。可替代地或另外,可监视控制320或520以接收操作的指示,以选择由对准的跟踪数据534覆盖的时间段的一部分,以在图像880中视觉呈现。
[0064]图10图示逻辑流程2100的实施例。逻辑流程2100可表示由本文所述的一个或多个实施例执行的操作的一些或全部。更具体地,逻辑流程2100可图示在至少执行操作系统340和日志补丁例程177时由处理器组件350执行和/或由计算设备300的一个或多个其它组件执行的操作。
[0065]在2110处,唤醒锁定调试系统的计算设备的处理器组件(例如唤醒锁定调试系统1000的计算设备300的处理器组件350)执行由指令序列组成以扩增应用功率管理器的指令序列的补丁例程(例如扩增操作系统340的应用功率管理器347的日志补丁例程177)。在这样做时,在两个指令序列之间实现合作,以收集在实现补丁例程的功能性时已经未决的任何应用级唤醒锁定的指示。如已经讨论的,这可使应用功率管理器需要访问由操作系统维持的数据结构(例如被维持为系统数据330的部分的唤醒锁定数据),以检索数据结构的条目,所述条目将未决的唤醒锁定与作为请求它们的结果而与其相关联的任何应用例程的标识符相关。这样的数据结构的这样的条目还可维持那些唤醒锁定中的哪个未决的指示,或者可仅仅包括用于未决的唤醒锁定的条目。
[0066]在2120处,在由操作系统的系统日志生成器(例如操作系统340的系统日志生成器344)生成的系统日志数据中记录在实现补丁程序时已经未决的任何唤醒锁定的指示。如先前所讨论的,应用功率管理器通常已经与系统日志生成器通信,以仅提供存在未决的唤醒锁定的非常有限的指示,但是没有多少唤醒锁定未决或它们与哪些应用例程相关联的任何指示。
[0067]在2130处,在补丁例程和应用功率管理器之间引起进一步的合作,以收集将应用例程映射到由处理器组件执行的过程和/或线程的映射信息。如已经讨论的,这可使应用功率管理器需要访问由操作系统维持的另一个数据结构(例如被维持为系统数据330的部分的映射数据),以检索提供这样的相关性的指示的映射数据的条目。在2140处,在系统日志数据中记录收集的任何映射信息的指示。
[0068]在2150处,拦截由应用功率管理器接收以请求或释放唤醒锁定的调用。如先前所讨论的,在拦截这样的调用时,补丁例程接收在那些调用中传送的参数,所述参数可包括:将调用与请求它的应用例程相关联的识别信息,指示唤醒锁定所应用到的计算设备的特定组件的一个或多个标志,和/或可被包括为参数的调试信息。
[0069]在2160处,在补丁程序和应用功率管理器之间引起再更多的合作,以采用应用功率管理器和系统数据生成器之间的通信来为系统数据生成器提供拦截的调用的指示。如先前所讨论的,这导致系统数据生成器针对那些拦截的调用在系统日志数据中创建条目,包括参数信息。
[0070]图11图示逻辑流程2200的一个实施例。逻辑流程2200可表示由本文所述的一个或多个实施例可执行的操作中的一些或全部。更具体地,逻辑流程2200可图示在至少执行控制例程340和日志设备驱动器171时由处理器组件350执行的和/或由计算设备300的一个或多个其它组件执行的操作。
[0071]在2210处,唤醒锁定调试系统的计算设备的处理器组件(例如唤醒锁定调试系统1000的计算设备300的处理器组件350)执行耦合到内核功率管理器的日志设备驱动器(例如与操作系统340的内核功率管理器341通信的日志设备驱动器171)。在这样做时,处理器组件用请求发信号通知内核功率管理器,所述请求提供在实现日志设备驱动器的功能性时已经未决的任何内核级唤醒锁定的指示。如已经讨论的,这可使内核功率管理器需要访问由操作系统维持的数据结构(例如被维持为系统数据330的部分的唤醒锁定数据),以检索数据结构的条目,其将未决的唤醒锁定与作为请求它们的结果而与它们相关联的无论什么设备驱动器或操作系统组件的标识符相关。这样的数据结构的这样的条目还可维持那些唤醒锁定中的哪个未决的指示,或者可仅仅包括用于未决的唤醒锁定的条目。在2220处,在由日志设备驱动器生成的补充日志数据中记录在实现日志设备驱动器时已经未决的任何内核唤醒锁定的指示。
[0072]在2230处,由日志设备驱动器使处理器组件通过驱动器编程接口(DPI)用调用发信号通知内核功率管理器,所述调用请求由内核功率管理器接收以请求或释放内核级唤醒锁定的所有调用被中继到日志设备驱动器。如先前所讨论的,对内核功率管理器的这样的调用可能是调入由DPI提供的回调机制的调用,关于唤醒锁定的调用通过所述回调机制而被反射回一个或多个设备驱动器。在2240处,日志设备驱动器可在补充日志数据中针对请求和释放内核唤醒锁定的每个调用创建条目,所述调用被内核功率管理器反射回日志设备驱动器的内核唤醒锁定。同样地,调用的这种反射回可响应于早前的调用以调入回调机制。
[0073]图12图示逻辑流程2300的一个实施例。逻辑流程2300可表示由本文所述的一个或多个实施例执行的操作的一些或全部。更具体地,逻辑流程2300可图示在至少运行调试例程570时由处理器组件350或550执行的和/或分别由计算设备300或调试设备500的一个或多个其它组件执行的操作。
[0074]在2310处,计算设备或调试设备的处理器组件(例如唤醒锁定调试系统1000的计算设备300或调试设备500的处理器组件350或550)从在计算设备的操作期间生成的系统日志数据和补充日志数据提取与唤醒锁定和计算设备的组件的活动级相关联的条目。如已经讨论的,提取的条目可包括:请求和/或释放唤醒锁定的调用的指示,计算设备的一个或多个组件的活动级的指示,在计算设备的功率状态之间的转变的指示等。在2320处,时间对准所提取的条目以生成对准的跟踪数据(例如从提取自系统日志数据337和补充日志数据331的条目生成的对准的跟踪数据534)。
[0075]在2330处,还提取在系统日志数据和补充日志数据的一个或另一个中包括的任何映射数据。在2340处,这样提取的映射数据被用于将来自所提取的条目的识别信息相关以将唤醒锁定与过程、线程、设备驱动器、计算设备的操作系统的组件或应用例程相关。
[0076]在2350处,对准的跟踪数据的条目用于生成唤醒锁定事件、组件的活动级方面的改变、计算设备的功率状态方面的改变等的时间线。此外,然后以在计算设备的操作中将其时间对准到共同时间段的方式在显示器上视觉呈现这些时间线。在2360处,可监视控制以接收那些控制的操作的指示,以传达命令来选择显示哪些时间线和/或选择显示由对准的跟踪数据的条目覆盖的时间的什么部分,并且相应地改变时间对准的时间线的视觉呈现。
[0077]图13图示适于实现如先前所述的各种实施例的处理架构3000的实施例。更具体地,处理架构3000(或其变型)可被实现为计算设备100、300或500中的一个或多个的部分。应当指出的是:处理架构3000的组件被给出附图标记,其中最后两位数字对应于早前描绘和被描述为这些计算设备的部分的至少一些组件的附图标记的最后两位数字。这样做是作为将每一个的组件相关的帮助。
[0078]处理架构3000可包括在数字处理中通常采用的各种元件,包括而不限于:一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/o)组件、功率供应等。如在本申请中所使用的,术语“系统”和“组件”旨在指代在其中执行数字处理的计算设备的实体,该实体是硬件、硬件和软件的组合、软件或执行中的软件,其示例由该描绘的示例性处理架构提供。例如,组件可以是但不限于:在处理器组件上运行的过程、处理器组件本身、可采用光和/或磁存储介质的存储设备(例如硬盘驱动器、阵列中的多个储存器驱动器等)、软件对象、可执行的指令序列、执行的线程、程序和/或整个计算设备(例如整个计算机)。通过图示的方式,在服务器上运行的应用和服务器二者可以是组件。一个或多个组件可驻留在执行的进程和/或线程内,并且组件可以定位在一个计算设备上和/或分布在两个或更多个计算设备之间。此夕卜,组件可通过各种类型的通信介质通信地彼此耦合以协调操作。协调可涉及单向或双向的信息交换。例如,组件可以以通过通信介质传送的信号的形式传送信息。信息可被实现为被分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这样的信号之一,或者可以是多个这样的信号,并且可通过任何的各种各样的连接和/或接口而被或者串行地或者大体上并行地发送。
[0079]如所描绘的,在实现处理架构3000时,计算设备可至少包括处理器组件950、储存器960、到一个或多个其它设备的接口990、以及耦合959。如将要解释的,取决于实现处理架构3000的计算设备的各种方面,包括其预期用途和/或使用条件,这样的计算设备可进一步包括附加组件,例如而不限于:显示接口 985,或者一个或多个处理子系统900。在可实现处理架构3000的无论什么计算设备中,用电路实现的各种描绘的组件之一可用分立组件来实现和/或被实现为单个或相对小数量的半导体器件(例如“片上系统”或S0C)内的电路的块。
[0080]耦合959可包括至少将处理器组件950通信地耦合到储存器960的一个或多个总线、点到点互连、
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1