一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动驾驶系统的实时跟踪数据处理方法和装置与流程

2022-02-19 07:05:35 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,特别涉及一种自动驾驶系统的实时跟踪数据处理方法和装置。


背景技术:

2.ftrace是基于动态探测技术的linux内核事件跟踪工具,能够获取linux内核事件运行时的详细系统信息,以用于对linux的内核性能进行分析。现有技术方案通常是将指定内核事件作为跟踪事件,基于ftrace技术对跟踪事件的系统信息进行数据跟踪并产生对应的跟踪日志。在跟踪事件运行结束之后,基于跟踪日志进行离线性能分析。
3.然而,这种操作方式对于自动驾驶系统而言不太适用。自动驾驶系统运行之后,因为周围环境的差异,导致系统内同样的任务事件在不同地点、不同时间下输出的处理结果很难保持一致。这种情况下,若要基于跟踪日志对问题场景进行事后复现是很难实现的,更不可能进行有效分析。


技术实现要素:

4.本发明的目的,就是针对现有技术的缺陷,提供一种自动驾驶系统的实时跟踪数据处理方法、装置、电子设备及计算机可读存储介质,基于软件跟踪技术为自动驾驶系统的任务事件创建多个同步跟踪实例,一旦自动驾驶系统发生故障触发备份开关,则将同步的多个跟踪实例中的当前跟踪实例转为备份实例进行跟踪数据备份,并使其他同步跟踪实例继续执行跟踪任务。通过本发明,能在自动驾驶系统运行期间,对各个指定的系统任务事件在不同故障状态下的实时系统信息进行有效捕获,从而为后续或实时的故障分析和性能分析提供及时、准确的现场数据进行处理。通过本发明,可以减少数据准备时间,提高系统故障的定位效率和准确度。
5.为实现上述目的,本发明实施例第一方面提供了一种自动驾驶系统的实时跟踪数据处理方法,所述方法包括:
6.将指定的系统任务事件记为第一跟踪事件;
7.基于指定的软件跟踪技术,为所述第一跟踪事件创建多个配置参数相同的第一跟踪实例;每个所述第一跟踪实例对应一个第一实例索引;
8.为所述第一跟踪事件创建对应的实例切换标志和备份开关标志;所述实例切换标志包括当前实例索引和备份实例索引;
9.启动所有所述第一跟踪实例对所述第一跟踪事件的处理过程进行同步数据跟踪,产生对应的第一实时跟踪数据;在进行同步数据跟踪的过程中,将与所述当前实例索引对应的所述第一跟踪实例作为当前跟踪实例,并只根据所述当前跟踪实例的所述第一实时跟踪数据持续生成本地的跟踪日志文件,且当所述第一跟踪事件的事件类型为自动驾驶系统事件类型时,在所述第一跟踪事件开始运行时或结束运行时向所述当前跟踪实例的所述第一实时跟踪数据中写入对应的事件起始标记符或事件结束标记符;
10.当所述备份开关标志从关闭状态切换到启动状态时,根据所述当前实例索引设置所述备份实例索引,并选择所述备份实例索引之外的任一所述第一实例索引设置所述当前实例索引,并将与新设的所述备份实例索引对应的所述第一跟踪实例作为当前备份实例,将与新设的所述当前实例索引对应的所述第一跟踪实例作为新的当前跟踪实例,并停止所述当前备份实例对所述第一跟踪事件的同步数据跟踪使所述当前备份实例的所述第一实时跟踪数据不再发生变化;
11.对所述当前备份实例的所述第一实时跟踪数据进行备份生成对应的第一备份数据,并在备份完成后将所述备份开关标志重置为关闭状态;并将备份的系统时间作为第一物理时间,根据所述第一物理时间向所述第一备份数据中增加绝对时间戳生成对应的第二备份数据;
12.对所述第二备份数据进行数据修复处理生成对应的第三备份数据;
13.对所述第三备份数据进行数据页面转换生成对应的第一数据页面。
14.优选的,所述软件跟踪技术包括ftrace技术。
15.优选的,在所述为所述第一跟踪事件创建多个配置参数相同的第一跟踪实例之前,所述方法还包括:
16.若所述第一跟踪事件的事件类型为自动驾驶系统事件类型,则基于底层操作系统对多核cpu的核绑定技术,将所述第一跟踪事件与指定的一个或多个cpu核进行绑定。
17.优选的,所述为所述第一跟踪事件创建对应的实例切换标志和备份开关标志,具体包括:
18.为所述第一跟踪事件创建对应的所述实例切换标志;任选一个所述第一实例索引对所述当前实例索引进行初始化,并将所述备份实例索引初始化为空;
19.为所述第一跟踪事件创建对应的所述备份开关标志;将所述备份开关标志初始化为关闭状态。
20.优选的,所述第一备份数据由多个第一跟踪记录组成;所述第一跟踪记录中包括第一cpu核标识、第一相对时间戳和第一跟踪内容集合;
21.所述第二备份数据由多个第二跟踪记录组成;所述第二跟踪记录包括第一绝对时间戳、第二cpu核标识、第二相对时间戳和第二跟踪内容集合;所述第二跟踪记录的所述第二cpu核标识、所述第二相对时间戳、所述第二跟踪内容集合和对应的所述第一跟踪记录的所述第一cpu核标识、所述第一相对时间戳、所述第一跟踪内容集合保持一致;所述第二跟踪记录的所述第一绝对时间戳为对应的所述第一跟踪记录的所述第一相对时间戳与对应的所述第一物理时间的时间总和。
22.优选的,所述对所述第二备份数据进行数据修复处理生成对应的第三备份数据,具体包括:
23.对所述第二备份数据进行有效数据保留处理,生成对应的第一有效备份数据;
24.当所述第一跟踪事件的事件类型为内核事件类型时,将所述第一有效备份数据作为所述第三备份数据;
25.当所述第一跟踪事件的事件类型为自动驾驶系统事件类型时,对所述第一有效备份数据中是否缺失所述事件结束标记符进行检查;若检查结果为缺失,则在所述第一有效备份数据的尾部增加所述事件结束标记符生成所述第三备份数据;若检查结果为不缺失,
则将所述第一有效备份数据作为所述第三备份数据。
26.进一步的,所述对所述第二备份数据进行有效数据保留处理,生成对应的第一有效备份数据,具体包括:
27.按cpu核标识,对所述第二备份数据的所述第二跟踪记录进行分类,得到多个第一分类记录序列;每个所述第一分类记录序列的各个所述第二跟踪记录的所述第二cpu核标识相同;
28.提取各个所述第一分类记录序列中时间信息最早的所述第二相对时间戳作为对应的第一序列起始时间;并从得到的多个所述第一序列起始时间中选择距离当前最近的时间,作为有效记录参考时间;
29.从所述第二备份数据中,删除所述第二相对时间戳早于所述有效记录参考时间的所述第二跟踪记录,从而得到所述第一有效备份数据。
30.本发明实施例第二方面提供了一种用于执行上述第一方面所述的自动驾驶系统的实时跟踪数据处理方法的装置,所述装置包括:跟踪实例配置模块、第一跟踪实例处理模块、第二跟踪实例处理模块、跟踪数据处理模块和跟踪数据转换模块;
31.所述跟踪实例配置模块用于将指定的系统任务事件记为第一跟踪事件;并基于指定的软件跟踪技术,为所述第一跟踪事件创建多个配置参数相同的第一跟踪实例;每个所述第一跟踪实例对应一个第一实例索引;
32.所述第一跟踪实例处理模块用于为所述第一跟踪事件创建对应的实例切换标志和备份开关标志,其中,所述实例切换标志包括当前实例索引和备份实例索引;并启动所有所述第一跟踪实例对所述第一跟踪事件的处理过程进行同步数据跟踪,产生对应的第一实时跟踪数据;在进行同步数据跟踪的过程中,将与所述当前实例索引对应的所述第一跟踪实例作为当前跟踪实例,并只根据所述当前跟踪实例的所述第一实时跟踪数据持续生成本地的跟踪日志文件,且当所述第一跟踪事件的事件类型为自动驾驶系统事件类型时,在所述第一跟踪事件开始运行时或结束运行时向所述当前跟踪实例的所述第一实时跟踪数据中写入对应的事件起始标记符或事件结束标记符;
33.所述第二跟踪实例处理模块用于当所述备份开关标志从关闭状态切换到启动状态时,根据所述当前实例索引设置所述备份实例索引,并选择所述备份实例索引之外的任一所述第一实例索引设置所述当前实例索引,并将与新设的所述备份实例索引对应的所述第一跟踪实例作为当前备份实例,将与新设的所述当前实例索引对应的所述第一跟踪实例作为新的当前跟踪实例,并停止所述当前备份实例对所述第一跟踪事件的同步数据跟踪使所述当前备份实例的所述第一实时跟踪数据不再发生变化;
34.所述跟踪数据处理模块用于对所述当前备份实例的所述第一实时跟踪数据进行备份生成对应的第一备份数据,并在备份完成后将所述备份开关标志重置为关闭状态;并将备份的系统时间作为第一物理时间,根据所述第一物理时间向所述第一备份数据中增加绝对时间戳生成对应的第二备份数据;并对所述第二备份数据进行数据修复处理生成对应的第三备份数据;
35.所述跟踪数据转换模块用于对所述第三备份数据进行数据页面转换生成对应的第一数据页面。
36.本发明实施例第三方面提供了一种电子设备,包括:存储器、处理器和收发器;
37.所述处理器用于与所述存储器耦合,读取并执行所述存储器中的指令,以实现上述第一方面所述的方法步骤;
38.所述收发器与所述处理器耦合,由所述处理器控制所述收发器进行消息收发。
39.本发明实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被计算机执行时,使得所述计算机执行上述第一方面所述的方法的指令。
40.本发明实施例提供了一种自动驾驶系统的实时跟踪数据处理方法、装置、电子设备及计算机可读存储介质,基于软件跟踪技术为自动驾驶系统的任务事件创建多个同步跟踪实例,一旦自动驾驶系统发生故障触发备份开关,则将同步的多个跟踪实例中的当前跟踪实例转为备份实例进行跟踪数据备份,并使其他同步跟踪实例继续执行跟踪任务。通过本发明,能在自动驾驶系统运行期间,对各个指定的系统任务事件在不同故障状态下的实时系统信息进行有效捕获,从而为后续或实时的故障分析和性能分析提供及时、准确的现场数据进行处理。通过本发明,大大减少了故障数据的准备时间,提高了系统故障的定位效率和准确度。
附图说明
41.图1为本发明实施例一提供的一种自动驾驶系统的实时跟踪数据处理方法示意图;
42.图2为本发明实施例二提供的一种自动驾驶系统的实时跟踪数据处理装置的模块结构图;
43.图3为本发明实施例三提供的一种电子设备的结构示意图。
具体实施方式
44.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
45.本发明实施例一提供一种自动驾驶系统的实时跟踪数据处理方法,如图1为本发明实施例一提供的一种自动驾驶系统的实时跟踪数据处理方法示意图所示,本方法主要包括如下步骤:
46.步骤1,将指定的系统任务事件记为第一跟踪事件;
47.其中,每个第一跟踪事件对应一个事件名称和一个事件类型,事件类型包括内核事件类型和自动驾驶系统事件类型。
48.这里,系统任务事件可为操作系统或自动驾驶系统的类事件级对象,也可为函数级对象,还可以为具体的进程/线程级对象。事件类型为内核事件类型时,意味着对应任务事件与底层操作系统的事件类、函数、进程有关,对应的事件名称就是事件类、函数、进程的名称信息。事件类型为自动驾驶系统事件类型时,意味着对应任务事件与操作系统的上层应用也就是自动驾驶系统的事件类、函数、线程有关,对应的事件名称就是事件类、函数、线程的名称信息。
49.在第一跟踪事件的事件类型为自动驾驶系统事件类型时,基于其对应的事件类、函数、线程的运行资源限制,有的是需要对多核cpu进行一个或多个cpu核绑定的;因此,若第一跟踪事件的事件类型为自动驾驶系统事件类型,则本发明实施例需要基于底层操作系统对多核cpu的核绑定技术,将第一跟踪事件与指定的一个或多个cpu核进行绑定。这里的核绑定技术在不同操作系统上,诸如windows、unix、linux等,都有对应的绑核指令进行支持,这里不做进一步赘述。
50.步骤2,基于指定的软件跟踪技术,为第一跟踪事件创建多个配置参数相同的第一跟踪实例;
51.其中,每个第一跟踪实例对应一个第一实例索引。
52.这里,对应不同的操作系统有多种不同的软件跟踪技术框架和对应的api集合能实现步骤2要求的为指定系统任务事件创建多个配置相同的跟踪实例,例如在操作系统linux下的ftrace技术、在windows下的systrace技术等。
53.当指定的软件跟踪技术具体为ftrace技术时,每个第一跟踪实例实际就是一个ftrace实例,ftrace实例的配置参数可以参考其创建者stevenrostedt关于ftrace的技术资料,这里不做进一步赘述。常规情况下,本发明实施例需要对ftrace实例的各级文件指定目录路径进行配置;对ftrace实例进行第一跟踪事件的事件名称(诸如类事件/函数/进程/线程的名称信息)配置;对ftrace实例进行第一跟踪事件对应的/绑定的cpu核配置(只在第一跟踪事件的事件类型为自动驾驶系统事件类型时);对ftrace实例进行在不同cpu核上的缓存大小配置;对ftrace实例是否可对cpu核上占用缓存进行循环写进行配置;对ftrace实例的tracer类型进行配置,不同的类型跟踪的具体内容不同。需要说明的是,因为每个第一跟踪事件索要消耗的资源大小都是可以预先通过实验测算得到的,那么在对ftrace实例进行在不同cpu核上的缓存大小配置时,本发明实施例会根据已知的第一跟踪事件的实验资源大小设定一个总缓存大小,再基于与第一跟踪事件对应的/绑定的不同cpu核的片内内存比例对该总缓存大小进行分摊得到对应的cpu单核缓存大小,再根据得到的不同cpu单核缓存大小对对应的不同cpu核上的缓存大小进行设置。
54.这里,本发明实施例之所以为第一跟踪事件创建多个配置参数相同的第一跟踪实例,并在后续步骤中对多个第一跟踪实例进行同时启动,其目的就是使得对第一跟踪事件至少有两个及两个以上的第一跟踪实例同时对其进行跟踪,且获得的跟踪数据相同;在多个第一跟踪实例同步跟踪时,就可以通过后续提供的跟踪实例切换机制实现即能对实时跟踪数据进行及时的备份,又能不破坏整体跟踪数据的连续性、完整性。
55.步骤3,为第一跟踪事件创建对应的实例切换标志和备份开关标志;
56.其中,实例切换标志包括当前实例索引和备份实例索引;
57.具体包括:步骤31,为第一跟踪事件创建对应的实例切换标志;任选一个第一实例索引对当前实例索引进行初始化,并将备份实例索引初始化为空;
58.步骤32,为第一跟踪事件创建对应的备份开关标志;将备份开关标志初始化为关闭状态。
59.这里,本发明实施例给出一个跟踪实例切换机制,该机制会预先在多个同步数据跟踪的第一跟踪实例中任选一个作为当前跟踪实例;当需要进行实时跟踪数据备份时,将当前跟踪实例切换为备份实例,并冻结备份实例的跟踪数据不做继续更新,如此就能保证
获得的实时跟踪数据与备份时间点的符合度;与此同时,再从第一跟踪实例中任选一个继续作为当前跟踪实例,因为其他第一跟踪实例并未被冻结,所以其持续接收的实时跟踪数据前后仍是连续完整的。本步骤进行设置的实例切换标志即是用于实例切换机制确认当前跟踪实例和备份实例的标志,通过这个标志可以快速对当前跟踪实例和备份实例进行定位;本步骤进行设置的备份开关标志,一旦其被设为启动状态就启动上述实例切换机制中的实时跟踪数据备份操作。
60.步骤4,启动所有第一跟踪实例对第一跟踪事件的处理过程进行同步数据跟踪,产生对应的第一实时跟踪数据;在进行同步数据跟踪的过程中,将与当前实例索引对应的第一跟踪实例作为当前跟踪实例,并只根据当前跟踪实例的第一实时跟踪数据持续生成本地的跟踪日志文件,且当第一跟踪事件的事件类型为自动驾驶系统事件类型时,在第一跟踪事件开始运行时或结束运行时向当前跟踪实例的第一实时跟踪数据中写入对应的事件起始标记符或事件结束标记符。
61.这里,启动所有第一跟踪实例对第一跟踪事件的处理过程进行同步数据跟踪的目的是为了保证所有第一跟踪事件的实时跟踪数据的同步性,以便于随时在多个第一跟踪实例中进行当前跟踪实例的切换。
62.第一实时跟踪数据是第一跟踪实例在步骤2中设置的不同cpu核上的缓存的实时跟踪数据的总和;不同的软件跟踪技术会在本地创建一个对应的临时文件或文件接口与之对应,也就是说通过对应的临时文件或文件接口的内容就可以得到第一实时跟踪数据。第一实时跟踪数据的大小与预先设定的不同cpu核上的缓存总大小对应。当指定的软件跟踪技术具体为ftrace技术时,每个ftrace实例对应的可循环清空和重写的cpu核上的缓存称之为ringbuffer,每个ftrace实例的ringbuffer对应的文件接口称之为trace文件,也就是说当指定的软件跟踪技术具体为ftrace技术时第一实时跟踪数据实际就是对应的trace文件的内容,通过读取对应的trace文件内容即可得到第一实时跟踪数据,trace文件的内容也会随着ringbuffer的循环清空和重写发生内容变化,所以在每次ringbuffer进行循环清空和重写时本发明实施例会复制当前trace文件生成前一个trace文件,并对当前trace文件进行对应的内容重置,既保证了与ringbuffer的对应又保存了实时跟踪数据因缓冲有限导致的数据丢失。
63.需要说明的是,本发明实施例虽然同时运行多个第一跟踪实例会得到多个第一实时跟踪数据,但在进行同步数据跟踪的过程中只对当前跟踪实例产生的第一实时跟踪数据进行持续本地备份,从而产生本地的跟踪日志文件。当指定的软件跟踪技术具体为ftrace技术时,本发明实施例会持续将当前跟踪实例对应的ftrace实例最新的前一个trace文件的内容添加到本地预设的跟踪日志文件中从而产生完整的实时跟踪数据总和。
64.需要说明的是,在进行同步数据跟踪的过程中,本发明实施例针对事件类型为自动驾驶系统事件类型的第一跟踪事件,会强制在同步产生的第一实时跟踪数据中加入事件起始标记符或事件结束标记符,事件起始标记符对应的时间点是该第一跟踪事件的起始运行时间点,事件结束标记符对应的时间点是该第一跟踪事件的结束运行时间点。当指定的软件跟踪技术具体为ftrace技术时,每个ftrace实例的ringbuffer还对应一个trace_marker文件,通过修改trace_marker文件的内容可以同步修改缓存中ringbuffer的内容,因此本发明实施例此时会通过向trace_marker文件中添加事件起始标记符或事件结束标
记符来完成向ringbuffer中添加事件起始标记符或事件结束标记符,又已知trace文件与ringbuffer的内容同步,所以也同步向trace文件中完成了对应的事件起始标记符或事件结束标记符的添加操作;也即是说当指定的软件跟踪技术具体为ftrace技术时,本发明实施例通过向当前跟踪实例对应的ftrace实例的trace_marker文件中添加事件起始标记符或事件结束标记符来实现向当前跟踪实例的第一实时跟踪数据中写入事件起始标记符或事件结束标记符的操作。
65.步骤5,当备份开关标志从关闭状态切换到启动状态时,根据当前实例索引设置备份实例索引,并选择备份实例索引之外的任一第一实例索引设置当前实例索引,并将与新设的备份实例索引对应的第一跟踪实例作为当前备份实例,将与新设的当前实例索引对应的第一跟踪实例作为新的当前跟踪实例,并停止当前备份实例对第一跟踪事件的同步数据跟踪使当前备份实例的第一实时跟踪数据不再发生变化。
66.这里,备份开关标志默认为关闭状态,当备份开关标志从关闭状态切换到启动状态时说明系统可能发生故障,需要对当前跟踪的第一跟踪事件的实时跟踪数据也就是当前跟踪实例产生的第一实时跟踪数据进行及时备份作为分析数据,因为该分析数据最接近故障时间点,所以具有很高的及时性、准确度。备份开关标志从关闭状态切换到启动状态的操作,由底层操作系统或自动驾驶系统的其他功能模块进行设置,此处不做进一步赘述。
67.当备份开关标志从关闭状态切换到启动状态时,本发明实施例会执行以下操作:设置备份实例索引为当前实例索引,切换当前实例索引为新的第一实例索引,通过停止备份实例索引对应的当前备份实例对第一跟踪事件的同步数据跟踪来冻结当前备份实例的第一实时跟踪数据使之不再发生变化。这时,被冻结的第一实时跟踪数据即是最接近故障时间点的实时数据,具有很高的分析价值。与此同时,通过当前实例索引的设置完成了对当前跟踪实例的切换,因为其他持续同步运行的第一跟踪实例并未发生停止,所以完成当前跟踪实例切换之后,从本地的跟踪日志文件中是不会发生明显的时间中断现象的,从而达到了对实时跟踪数据备份、接收两不误的操作效果。
68.当指定的软件跟踪技术具体为ftrace技术时,停止当前备份实例对第一跟踪事件的同步数据跟踪可以使用对应的tracing_off指令完成,tracing_off指令执行之后当前备份实例对应的ftrace实例的ringbuffer处于只读状态,从而达到了对第一实时跟踪数据进行冻结的目的。
69.步骤6,对当前备份实例的第一实时跟踪数据进行备份生成对应的第一备份数据,并在备份完成后将备份开关标志重置为关闭状态;并将备份的系统时间作为第一物理时间,根据第一物理时间向第一备份数据中增加绝对时间戳生成对应的第二备份数据;
70.其中,所述第一备份数据由多个第一跟踪记录组成;第一跟踪记录中包括第一cpu核标识、第一相对时间戳和第一跟踪内容集合;
71.第二备份数据由多个第二跟踪记录组成;第二跟踪记录包括第一绝对时间戳、第二cpu核标识、第二相对时间戳和第二跟踪内容集合;第二跟踪记录的第二cpu核标识、第二相对时间戳、第二跟踪内容集合和对应的第一跟踪记录的第一cpu核标识、第一相对时间戳、第一跟踪内容集合保持一致;第二跟踪记录的第一绝对时间戳为对应的第一跟踪记录的第一相对时间戳与对应的第一物理时间的时间总和。
72.这里,第二备份数据就是复制第一备份数据的内容,并在其中的每条跟踪记录上
增加一个第一绝对时间戳。每条第一跟踪记录中的详细跟踪数据为第一跟踪内容集合,第一cpu核标识用于标识产生对应第一跟踪内容集合的多核cpu的具体cpu核的标识信息。若以第一备份数据的第1个第一跟踪记录的的第一相对时间戳为当前第一实时跟踪数据的起始时间0点,那么将第一相对时间戳 第一物理时间之后就可以得到每条跟踪记录的一个绝对时间参考点也即是第一绝对时间戳,这个绝对时间戳是为了在数据分析时能对多个系统或设备产生的备份数据进行与绝对时间相关的分析。
73.步骤7,对第二备份数据进行数据修复处理生成对应的第三备份数据;
74.具体包括:步骤71,对第二备份数据进行有效数据保留处理,生成对应的第一有效备份数据;
75.这里,因为可能预先在指定的各个cpu核上设置的缓存大小不相等,又或者第一跟踪事件在指定的各个cpu核上执行的进程数不等,所以可能造成针对同一个第一跟踪事件在不同cpu核上的实时跟踪数据总长度不一致,也就是说可能会出现某些时间点上部分cpu核上的实时跟踪数据为空,这种数据是没有分析价值的;在这种情况下,为保证数据的可分析性,本发明实施例会对所有指定cpu核上的实时跟踪数据的起始时间进行获取,并从中选择距离当前最近的起始时间作为有效数据的起始时间也就是有效记录参考时间,再将时间位于有效记录参考时间之前的实时跟踪数据进行删除,就能保证剩下数据对应的时间范围内,所有指定cpu核上的实时跟踪数据都不为空;
76.具体包括:步骤711,按cpu核标识,对第二备份数据的第二跟踪记录进行分类,得到多个第一分类记录序列;其中,每个第一分类记录序列的各个第二跟踪记录的第二cpu核标识相同;
77.这里,实际就是对每个指定cpu核上的实时跟踪数据进行统计,统计结果即是第一分类记录序列;
78.步骤712,提取各个第一分类记录序列中时间信息最早的第二相对时间戳作为对应的第一序列起始时间;并从得到的多个第一序列起始时间中选择距离当前最近的时间,作为有效记录参考时间;
79.这里,各个第一分类记录序列中时间信息最早的第二相对时间戳实际就是各个指定cpu核上的实时跟踪数据的起始时间;在有效记录参考时间之后,所有指定cpu核上的实时跟踪数据都不为空;
80.步骤713,从第二备份数据中,删除第二相对时间戳早于有效记录参考时间的第二跟踪记录,从而得到第一有效备份数据;
81.步骤72,当第一跟踪事件的事件类型为内核事件类型时,将第一有效备份数据作为第三备份数据;
82.这里,第一跟踪事件的事件类型为内核事件类型说明第一跟踪事件实际是底层操作系统的任务事件之一,因为在进行任务的同步数据跟踪时,并未对该类任务事件进行对应的事件起始、结束标记符添加,所以这里也无需进行事件起始、结束标记符识别,直接将由步骤71整理好的第一有效备份数据输出作为分析数据即可,这里的分析数据也就是第三备份数据;
83.步骤73,当第一跟踪事件的事件类型为自动驾驶系统事件类型时,对第一有效备份数据中是否缺失事件结束标记符进行检查;若检查结果为缺失,则在第一有效备份数据
的尾部增加事件结束标记符生成第三备份数据;若检查结果为不缺失,则将第一有效备份数据作为第三备份数据。
84.这里,第一跟踪事件的事件类型为自动驾驶系统事件类型说明第一跟踪事件实际是自动驾驶系统的任务事件之一,因为在进行任务的同步数据跟踪时,曾经对该类任务事件进行对应的事件起始、结束标记符添加,在对应的数据分析时需要分析数据至少具备其中的结束标记符才行,所以这里要对步骤71整理好的第一有效备份数据做事件结束标记符的检查,若有则直接输出作为分析数据也就是第三备份数据,若无则在尾部增加一个事件结束标记符后输出作为分析数据也就是第三备份数据。
85.步骤8,对第三备份数据进行数据页面转换生成对应的第一数据页面。
86.这里,在对第三备份数据进行数据页面转换时,使用预设的跟踪数据页面转换工具,生成对应的超文本标记语言(hyper text markup language,html)页面也就是第一数据页面。这里的跟踪数据页面转换工具常用的包括trace2html工具。如此一来,通过浏览器对第一数据页面进行文字、图形化展示,就能为用户提供一个便捷的数据分析界面。
87.图2为本发明实施例二提供的一种自动驾驶系统的实时跟踪数据处理装置的模块结构图,该装置为实现前述方法实施例的终端设备或者服务器,也可以为能够使得前述终端设备或者服务器实现前述方法实施例的装置,例如该装置可以是前述终端设备或者服务器的装置或芯片系统。如图2所示,该装置包括:跟踪实例配置模块101、第一跟踪实例处理模块102、第二跟踪实例处理模块103、跟踪数据处理模块104和跟踪数据转换模块105。
88.跟踪实例配置模块101用于将指定的系统任务事件记为第一跟踪事件;并基于指定的软件跟踪技术,为第一跟踪事件创建多个配置参数相同的第一跟踪实例;每个第一跟踪实例对应一个第一实例索引。
89.第一跟踪实例处理模块102用于为第一跟踪事件创建对应的实例切换标志和备份开关标志,其中,实例切换标志包括当前实例索引和备份实例索引;并启动所有第一跟踪实例对第一跟踪事件的处理过程进行同步数据跟踪,产生对应的第一实时跟踪数据;在进行同步数据跟踪的过程中,将与当前实例索引对应的第一跟踪实例作为当前跟踪实例,并只根据当前跟踪实例的第一实时跟踪数据持续生成本地的跟踪日志文件,且当第一跟踪事件的事件类型为自动驾驶系统事件类型时,在第一跟踪事件开始运行时或结束运行时向当前跟踪实例的第一实时跟踪数据中写入对应的事件起始标记符或事件结束标记符。
90.第二跟踪实例处理模块103用于当备份开关标志从关闭状态切换到启动状态时,根据当前实例索引设置备份实例索引,并选择备份实例索引之外的任一第一实例索引设置当前实例索引,并将与新设的备份实例索引对应的第一跟踪实例作为当前备份实例,将与新设的当前实例索引对应的第一跟踪实例作为新的当前跟踪实例,并停止当前备份实例对第一跟踪事件的同步数据跟踪使当前备份实例的第一实时跟踪数据不再发生变化。
91.跟踪数据处理模块104用于对当前备份实例的第一实时跟踪数据进行备份生成对应的第一备份数据,并在备份完成后将备份开关标志重置为关闭状态;并将备份的系统时间作为第一物理时间,根据第一物理时间向第一备份数据中增加绝对时间戳生成对应的第二备份数据;并对第二备份数据进行数据修复处理生成对应的第三备份数据。
92.跟踪数据转换模块105用于对第三备份数据进行数据页面转换生成对应的第一数据页面。
93.本发明实施例提供的一种自动驾驶系统的实时跟踪数据处理装置,可以执行上述方法实施例中的方法步骤,其实现原理和技术效果类似,在此不再赘述。
94.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,跟踪实例配置模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
95.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个或多个数字信号处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system

on

a

chip,soc)的形式实现。
96.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照前述方法实施例所描述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线路((digital subscriber line,dsl))或无线(例如红外、无线、蓝牙、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
97.图3为本发明实施例三提供的一种电子设备的结构示意图。该电子设备可以为前述的终端设备或者服务器,也可以为与前述终端设备或者服务器连接的实现本发明实施例方法的终端设备或服务器。如图3所示,该电子设备可以包括:处理器301(例如cpu)、存储器302、收发器303;收发器303耦合至处理器301,处理器301控制收发器303的收发动作。存储器302中可以存储各种指令,以用于完成各种处理功能以及实现前述方法实施例描述的处理步骤。优选的,本发明实施例涉及的电子设备还包括:电源304、系统总线305以及通信端口306。系统总线305用于实现元件之间的通信连接。上述通信端口306用于电子设备与其他外设之间进行连接通信。
98.在图3中提到的系统总线305可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non

volatile memory),例如至少一个磁盘存储器。
99.上述的处理器可以是通用处理器,包括中央处理器cpu、网络处理器(network processor,np)、图形处理器(graphics processing unit,gpu)等;还可以是数字信号处理器dsp、专用集成电路asic、现场可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
100.需要说明的是,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中提供的方法和处理过程。
101.本发明实施例还提供一种运行指令的芯片,该芯片用于执行前述方法实施例描述的处理步骤。
102.本发明实施例提供了一种自动驾驶系统的实时跟踪数据处理方法、装置、电子设备及计算机可读存储介质,基于软件跟踪技术为自动驾驶系统的任务事件创建多个同步跟踪实例,一旦自动驾驶系统发生故障触发备份开关,则将同步的多个跟踪实例中的当前跟踪实例转为备份实例进行跟踪数据备份,并使其他同步跟踪实例继续执行跟踪任务。通过本发明,能在自动驾驶系统运行期间,对各个指定的系统任务事件在不同故障状态下的实时系统信息进行有效捕获,从而为后续或实时的故障分析和性能分析提供及时、准确的现场数据进行处理。通过本发明,大大减少了故障数据的准备时间,提高了系统故障的定位效率和准确度。
103.专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
104.结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
105.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献