CN115225194A - 时间跳变检测方法、装置、存储介质及计算机设备 - Google Patents

时间跳变检测方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN115225194A
CN115225194A CN202210826576.8A CN202210826576A CN115225194A CN 115225194 A CN115225194 A CN 115225194A CN 202210826576 A CN202210826576 A CN 202210826576A CN 115225194 A CN115225194 A CN 115225194A
Authority
CN
China
Prior art keywords
function
system time
time
called
jump
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.)
Pending
Application number
CN202210826576.8A
Other languages
English (en)
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.)
Guangzhou Weride Technology Co Ltd
Original Assignee
Guangzhou Weride Technology Co Ltd
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 Guangzhou Weride Technology Co Ltd filed Critical Guangzhou Weride Technology Co Ltd
Priority to CN202210826576.8A priority Critical patent/CN115225194A/zh
Publication of CN115225194A publication Critical patent/CN115225194A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/14Monitoring arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种时间跳变检测方法、装置、存储介质及计算机设备,所述方法包括:基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。采用本申请的方案,可以实现时间跳变检测,并有效保障自动驾驶系统中各类型感知数据的正确融合。同时,基于程序插桩技术在系统时间修改函数中插入检测函数,具有实施简易及开销低的优点。

Description

时间跳变检测方法、装置、存储介质及计算机设备
技术领域
本申请涉及自动驾驶技术领域,尤其涉及一种时间跳变检测方法、装置、存储介质及计算机设备。
背景技术
目前,自动驾驶车辆上部署有主机和多个传感器单元,主机及每个传感器单元都有内部时钟。每个传感器单元在采集到感知数据的情况下,需要根据该传感器单元的内部时钟,为该感知数据标记时间戳,并将标记后的感知数据发送至主机。主机在接收到各个传感器单元发送的感知数据后,会根据主机时钟(即主机的内部时钟)和各个感知数据的时间戳来进行后续处理,例如,可进行数据融合处理。
为确保后续处理的顺利进行,需要保证主机时钟与各个传感器内部时钟之间的差异保持在一定范围内。然而,由于主机上会配置有应用程序,一些应用程序可能会对主机时钟进行修改,导致主机时钟和传感器时钟的差异超出该范围,进而影响后续的数据处理过程。为避免这种情况,亟需提供一种能够检测主机时间是否发生跳变的方案。
发明内容
基于此,有必要针对上述技术问题,提供一种能够检测主机时间是否发生跳变的时间跳变检测方法、装置、存储介质及计算机设备。
第一方面,本申请实施例提供了一种时间跳变检测方法,所述方法包括:
基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;
在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;
根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
在其中一个实施例中,当本次被调用的系统时间修改函数为second_overflow函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长;其中,所述第一时长为执行所述second_overflow函数前,单个时钟滴答所对应的时间长度;所述第二时长为执行所述second_overflow函数后,单个时钟滴答所对应的时间长度;
将所述第一时长与所述第二时长之间的差值作为所述系统时间调整量;
所述根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变的步骤,包括:
获取内核运行频率,并基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量;
根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变。
在其中一个实施例中,所述基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量的步骤,包括:
将所述最大允许跳变时间值左移N位,以得到第一左移结果;所述N为预先配置的正整数;
将所述第一左移结果与所述内核运行频率之间的比值作为所述最大允许时长调整量。
在其中一个实施例中,所述根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变的步骤,包括:
计算标准时长,并将所述第二时长与所述标准时长之间的差值作为偏离差值,所述标准时长为单个内核运行周期的标准周期时长;
若所述系统时间调整量的绝对值大于所述最大允许时长调整量,或所述偏离差值的绝对值大于所述最大允许时长调整量,则确定系统时间发生跳变;
若所述系统时间调整量的绝对值小于或等于所述最大允许时长调整量,且所述偏离差值的绝对值小于或等于所述最大允许时长调整量,则确定系统时间未发生跳变。
在其中一个实施例中,所述计算标准时长的步骤,包括:将109左移N位以得到第二左移结果,并将所述第二左移结果与所述内核运行频率之间的比值作为所述标准时长,所述N为预先配置的正整数。
在其中一个实施例中,所述在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以在所述second_overflow函数的本次调用中,获取kallsyms_lookup_name函数的函数地址,根据所述函数地址调用所述kallsyms_lookup_name函数以获取时长存储变量所对应的变量地址,并在执行所述second_overflow函数前从存储器中读取所述变量地址对应的第一存储数据,将所述第一存储数据作为所述第一时长,以及在执行所述second_overflow函数后从所述存储器中读取所述变量地址对应的第二存储数据,将所述第二存储数据作为所述第二时长。
在其中一个实施例中,当本次调用的系统时间修改函数为do_adjtimex函数或者do_sys_settimeofday64函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括所述系统时间调整量的情况下,从所述入参中提取所述系统时间调整量;
或者
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以通过所述目标检测函数获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括调整后的系统时间的情况下,从所述入参中提取所述调整后的系统时间,并获取调整前的系统时间,将所述调整后的系统时间与所述调整前的系统时间之差值作为所述系统时间调整量。
在其中一个实施例中,所述方法还包括:在确定系统时间发生跳变时,获取当前执行进程的进程标识,并将所述进程标识与所述进程标识对应的进程名称写入日志中。
第二方面,本申请实施例提供了一种时间跳变检测装置,所述装置包括:
函数插入模块,用于基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;
系统时间调整量获取模块,用于在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;
跳变检测模块,用于根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
第三方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述时间跳变检测方法的步骤。
第四方面,本申请实施例提供了一种计算机设备,包括:一个或多个处理器,以及存储器;所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行上述任一实施例所述时间跳变检测方法的步骤。
本申请实施例提供的时间跳变检测方法、装置、存储介质及计算机设备中,可以基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数,当某个系统时间修改函数被调用时,该系统时间修改函数所对应的检测函数(即目标检测函数)即可开始执行,从而可通过目标检测函数获取该系统时间修改函数在本次调用中所对应的系统时间调整量,并根据该系统时间调整量与预设的最大允许时间调整量确定系统时间是否发生跳变,进而实现时间跳变检测,并有效保障自动驾驶系统中各类型感知数据的正确融合。同时,基于程序插桩技术在系统时间修改函数中插入检测函数,具有实施简易及开销低的优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中时间跳变检测方法的完整流程示意图;
图2为一个实施例中时间跳变检测方法的初始化流程示意图;
图3为一个实施例中时间跳变检测方法的检测流程示意图;
图4为一个实施例中时间跳变检测装置的结构框图;
图5为一个实施例中计算机设备的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在一个实施例中,本申请提供了一种时间跳变检测方法,下述实施例以该方法应用于自动驾驶车辆的主机为例进行说明,其中,自动驾驶车辆的主机可以是自动驾驶车辆的总控制系统或与之等同的器件设备,主机可包括处理器。如图1所示,该方法具体包括如下步骤:
S102,基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数。
系统时间修改函数是指用于对系统时间进行修改的函数,例如可以是用于调整时间变化快慢的函数以及对当前时间进行调整的函数。在其中一个实施例中,系统时间修改函数可以是second_overflow函数、do_adjtimex函数或者do_sys_settimeofday64函数,前述second_overflow函数、do_adjtimex函数以及do_sys_settimeofday64函数均为Linux系统中的内核函数,也即,前述各函数是Linux内核中的固定函数,可被直接调用。
程序插桩技术是指在保证被测程序原有逻辑完整性的基础上,在被测程序中插入探针,而后通过探针的执行获取被测程序的控制流和/或数据流信息的技术。本申请中,可基于程序插桩技术分别在每一个系统时间修改函数中插入对应的检测函数,该检测函数即为前述探针。如此,对于每一个系统时间修改函数而言,插入至该系统时间修改函数中的检测函数会在该系统时间修改函数被调用的情况下触发执行,也即,当主机调用该系统时间修改函数时,插入至该系统时间修改函数中的检测函数将会执行。
可以理解,本申请可以采用任意类型的程序插桩技术来实现检测函数的插入,本申请对此不作具体限制。在其中一个实施例中,本申请可以采用kprobe作为程序插桩技术来实现步骤S102。
S104,在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数。
当系统时间修改函数被调用时,表明主机上有应用程序通过调用系统时间修改函数来尝试修改系统时间。因此,当任意一个系统时间修改函数被调用时,主机需要获取被调用的系统时间修改函数在本次调用过程中所对应的系统时间调整量。该系统时间调整量是指在本次系统时间修改函数的调用过程中对于系统时间的改变量,可以但不限于是用于反映本次系统时间修改函数的调用过程中时间变化快慢在调用前后的改变量,或者用于反映系统时间在本次系统时间修改函数调用前后的变化量。
具体而言,每当任意一个系统时间修改函数被调用,主机可执行插入至该被调用的系统时间函数中的检测函数(即目标检测函数),以通过目标检测函数来获取本次系统时间修改函数调用过程中的系统时间调整量,也即系统时间因系统时间修改函数的本次调用而出现的变化量。
S106,根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
其中,最大允许跳变时间值可以是预先配置的,其具体数值可以依照实际因素确定,本申请对此不作具体限制。主机可根据系统时间调整量与该预先配置的最大允许跳变时间值确定主机时钟是否发生跳变,例如,若该系统时间调整量用于反映系统时间本次系统时间修改函数调用前后的变化量,则主机可以在该系统时间调整量大于最大允许跳变时间值的情况下,确定系统时间发生跳变,否则,确定系统时间未发生跳变。在其中一个实施例中,在确定系统时间发生跳变时,主机可以推送告警信息。
在其中一个实施例中,本申请的时间跳变检测方法还包括:在确定系统时间发生跳变时,获取当前执行进程的进程标识,并将所述进程标识与所述进程标识对应的进程名称写入日志中。如此,可自动地定位出引发时间跳变的应用程序,以便于后续的优化与维护。进一步地,进程标识可以是唯一的,换言之,两个不同进程分别对应的进程标识可以不同,使得主机可以更为准确地根据进程标识得到对应的进程名称。
本申请实施例提供的时间跳变检测方法、装置、存储介质及计算机设备中,可以基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数,当某个系统时间修改函数被调用时,该系统时间修改函数所对应的检测函数即可开始执行,从而可通过目标检测函数获取该系统时间修改函数在本次调用中所对应的系统时间调整量,并根据该系统时间调整量与预设的最大允许时间调整量确定系统时间是否发生跳变,进而实现时间跳变检测,并有效保障自动驾驶系统中各类型感知数据的正确融合。同时,基于程序插桩技术在系统时间修改函数中插入检测函数,具有实施简易及开销低的优点。
在一个实施例中,当本次被调用的系统时间修改函数为second_overflow函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长;其中,所述第一时长为执行所述second_overflow函数前,单个时钟滴答所对应的时间长度;所述第二时长为执行所述second_overflow函数后,单个时钟滴答所对应的时间长度;
将所述第一时长与所述第二时长之间的差值作为所述系统时间调整量。
所述根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变的步骤,包括:
获取内核运行频率,并基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量;
根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变。
其中,second_overflow函数可用于设置单个时钟滴答(tick)的物理时间长度,例如,当单个时钟滴答的物理时间长度被设置为T1时,每经过T1时长后,主机会将时钟滴答的计数值加1,并根据当前的计数值来判断是否调整系统时间。由此可见,应用程序可通过调用second_overflow函数来调整单个时钟滴答的物理时间长度,以调整主机时钟的时间变化快慢。
若当前被调用的系统时间修改函数为second_overflow函数,则主机可以执行插入至second_overflow函数中的检测函数。该插入至second_overflow函数中的检测函数可用于获取本次执行second_overflow函数前,单个时钟滴答所对应的物理时间长度,即第一时长;以及,用于获取本次执行second_overflow函数后,单个时钟滴答所对应的物理时间长度,即第二时长。在得到第一时长和第二时长后,主机可以计算第一时长与第二时长的差值,并将计算所得的差值作为系统时间调整量。
在其中一个实施例中,主机可以基于程序插桩技术在second_overflow函数的主体函数之前插入第一目标检测函数,以通过第一目标检测函数获取该第一时长。主机还可在second_overflow函数的主体函数之后插入第二目标检测函数,以通过该第二目标检测函数获取该第二时长。
主机可获取处理器的内核运算频率,该内核运算频率可以是处理器在1秒内的调度总次数。在得到内核运算频率后,主机可基于最大允许跳变时间值与内核运算频率,计算最大允许时长调整量。该最大允许时长调整量为可接受的单个时钟滴答的最大物理时间长度变化量。
主机可以根据系统时间调整量与该最大允许时长调整量之间的大小关系,确定系统时间是否发生时间跳变。在其中一个实施例中,当系统时间调整量大于最大允许时长调整量时,主机可确定系统时间发生跳变。
本申请实施例中,在当前被调用的系统时间修改函数为second_overflow函数的情况下,通过目标检测函数分别获取second_overflow函数执行前后,单个时钟滴答的物理时间长度,并根据second_overflow函数执行前后所对应的物理时间长度之差与最大允许时长调整量之间的大小关系来判断系统时间是否发生调整,从而可更为准确地检测系统时间是否发生跳变,进而有效保障自动驾驶系统中各类型感知数据的正确融合。
在一个实施例中,所述基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量的步骤,包括:
将所述最大允许跳变时间值左移N位,以得到第一左移结果;所述N为预先配置的正整数;
将所述第一左移结果与所述内核运行频率之间的比值作为所述最大允许时长调整量。
具体而言,主机可依照下式计算最大允许时长调整量:
max_tick_step=(X<<NTP_SCALE_SHIFT)/NTP_INTERVAL_FREQ
式中,max_tick_step为最大允许时长调整量;X为最大允许跳变时间值;<<为左移操作;NTP_SCALE_SHIFT为左移位数N,其具体数值可以依据实际需求确定,在一个示例中,NTP_SCALE_SHIFT可以为32;NTP_INTERVAL_FREQ为内核运行频率。
考虑到所获取的第一时长和第二时长为纳秒级别的数值,为准确判断系统时钟是否发生跳变,实现微秒级时间跳变检测,主机可以将最大允许跳变时间值左移N位,并将左移得到的第一左移结果与内核运算频率之间的比值作为最大允许时长调整量,以提高最大允许时长调整量的计算精度,进而更为准确地检测系统时间是否发生跳变,进而有效保障自动驾驶系统中各类型感知数据的正确融合。
在一个实施例中,所述根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变的步骤,包括:
计算标准时长,并将所述第二时长与所述标准时长之间的差值作为偏离差值,所述标准时长为单个内核运行周期的标准周期时长;
若所述系统时间调整量的绝对值大于所述最大允许时长调整量,或所述偏离差值的绝对值大于所述最大允许时长调整量,则确定系统时间发生跳变;
若所述系统时间调整量的绝对值小于或等于所述最大允许时长调整量,且所述偏离差值的绝对值小于或等于所述最大允许时长调整量,则确定系统时间未发生跳变。
其中,标准时长为单个内核运行周期的标准周期时长,也即,单个时钟滴答的标准物理时间长度,其值可为内核运行频率的倒数。换言之,若将单个时钟滴答的物理时间长度设置为该标准时长,则系统时钟将会按照标准时间来变化,而不会相较于标准时间快或者慢。
具体而言,主机可计算标准时长,并将第二时长与标准时长之间的差值作为偏离差值,该偏离差值反映了本次调用second_overflow函数之后,单个时钟滴答的物理时间长度相对于标准物理时间长度的偏离程度。在系统时间调整量的绝对值及偏离差值的绝对值中的至少一个大于最大允许时长调整量,则可确定系统时间发生跳变。若系统时间调整量的绝对值以及偏离差值的绝对值均小于或等于最大允许时长调整量,则可认为系统时钟未发生时间跳变。
本申请实施例中,主机可以依据系统时间调整量与最大允许时长调整量之间的大小关系,以及偏离差值与最大允许时长调整量之间的大小关系,来综合判断系统时钟是否发生跳变,从而可更为准确地检测系统时间是否发生跳变,进而有效保障自动驾驶系统中各类型感知数据的正确融合。
在一个实施例中,所述计算标准时长的步骤,包括:将109左移N位以得到第二左移结果,并将所述第二左移结果与所述内核运行频率之间的比值作为所述标准时长,所述N为预先配置的正整数。换言之,主机可按照下式计算标准时长:
standard_tick_length=(1000000000<<NTP_SCALE_SHIFT)/NTP_INTERVAL_FREQ
式中,standard_tick_length为标准时长;109即将1秒换算为纳秒的数值;<<为左移操作;NTP_SCALE_SHIFT为左移位数N,其具体数值可以依据实际需求确定,在一个示例中,NTP_SCALE_SHIFT可以为32;NTP_INTERVAL_FREQ为内核运行频率。
考虑到所获取的第一时长和第二时长为纳秒级别的数值,因此,系统时间调整量也为纳秒级别。为准确判断系统时钟是否发生跳变,实现微秒级时间跳变检测,主机可以将最大允许跳变时间值左移N位,并将左移得到的第一左移结果与内核运算频率之间的比值作为最大允许时长调整量,以提高最大允许时长调整量的计算精度,进而更为准确地检测系统时间是否发生跳变。
在一个实施例中,所述在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以在所述second_overflow函数的本次调用中,获取kallsyms_lookup_name函数的函数地址,根据所述函数地址调用所述kallsyms_lookup_name函数以获取时长存储变量所对应的变量地址,并在执行所述second_overflow函数前从存储器中读取所述变量地址对应的第一存储数据,将所述第一存储数据作为所述第一时长,以及在执行所述second_overflow函数后从所述存储器中读取所述变量地址对应的第二存储数据,将所述第二存储数据作为所述第二时长。
其中,kallsyms_lookup_name函数为Linux系统中的内核函数,也即,kallsyms_lookup_name函数是Linux内核中的固定函数,可被直接调用。
具体而言,单个时钟滴答所对应的物理时间长度是由内核计算得出的,但是,由于内核并没有将该数值暴露给外部使用,因此主机无法直接通过数值读取来获取单个时间滴答所对应的物理时间长度。为解决这一问题,本申请可以通过程序插桩技术获取kallsyms_lookup_name函数的函数地址,并基于该函数地址调用kallsyms_lookup_name函数,以查找并获取时长存储变量所对应的变量地址。该时长存储变量是指用于存储单个时钟滴答所对应的物理时间长度的变量。在得到时长存储变量所对应的变量地址后,主机可从存储器中读取该时长存储变量的值,该值即为单个时钟滴答所对应的物理时间长度。
本申请中,在当前被调用的系统时间修改函数为second_overflow函数时,主机可以执行目标检测函数,以在本次调用过程中,执行second_overflow函数之前,根据变量地址从存储器中获取单个时钟滴答所对应的物理时间长度,该物理时间长度即为第一时长。以及,在本次调用过程中,执行second_overflow函数之后,根据变量地址从存储器中获取单个时钟滴答所对应的物理时间长度,该物理时间长度即为第二时长。
通过本实施例所述方式,主机可以获取到由内核计算的单个时钟滴答所对应的物理时间长度,以便于后续根据单个时钟滴答所对应的物理时间长度进行时间跳变检测。
在一个实施例中,当本次调用的系统时间修改函数为do_adjtimex函数或者do_sys_settimeofday64函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括所述系统时间调整量的情况下,从所述入参中提取所述系统时间调整量;
或者
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以通过所述目标检测函数获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括调整后的系统时间的情况下,从所述入参中提取所述调整后的系统时间,并获取调整前的系统时间,将所述调整后的系统时间与所述调整前的系统时间之差值作为所述系统时间调整量。
具体而言,当应用程序调用do_adjtimex函数或者do_sys_settimeofday64函数时,将会直接指明目标系统时间,do_adjtimex函数或者do_sys_settimeofday64函数将系统时间修改为该目标系统时间。或者,应用程序会直接指明系统时间调整量,do_adjtimex函数或者do_sys_settimeofday64函数可将当前系统时间与系统时间调整量进行相加或者相减,并得到对应的计算结果,且将系统时间修改为该计算结果,实现系统时间的修改。
因此,若当前被调用的系统时间调用函数为do_adjtimex函数或者do_sys_settimeofday64函数,则主机可以从系统时间修改函数的入参中获取目标系统时间(即调整后的系统时间)或者系统时间调整量。若入参中包括系统时间调整量,则可从入参中直接提取。若入参中包括调整后的系统时间,则可将调整前后的系统时间之差作为系统时间调整量。在得到系统时间调整量之后,主机可根据系统时间调整量与预设的最大允许时间调整值,确定系统时间是否发生跳变。
本申请实施例中,在当前被调用的系统时间修改函数为do_adjtimex函数或者do_sys_settimeofday64函数的情况下,主机可以根据入参确定系统时间修改函数本次调用过程中的系统时间调整量,从而可更为准确地检测系统时间是否发生跳变,进而有效保障自动驾驶系统中各类型感知数据的正确融合。
为便于理解本申请的方案,下面通过一个具体的示例来说明,本示例采用kprobe作为程序插桩技术来实现。图2示出了本申请的初始化流程,如图2所示,该初始化流程包括如下步骤:
S202,加载内核模块;
S204,计算标准时长及计算最大允许时长调整量,其中,计算标准时长的具体方式可如上述实施例所述,计算最大允许时长调整量的具体方式也可如上述实施例所述;
S206,利用kprobe机制勾住(hook)second_overflow函数、do_adjtimex函数和do_sys_settimeofday64函数3个内核函数,也即,在前述3个内核函数中插入检测函数;
S208,初始化完成,开始进行后台监控。
当second_overflow函数被调用时,主机可通过图3示出的流程图确定系统时钟是否发生跳变,图3具体包括如下步骤:
S302,监测second_overflow函数是否被触发,若是,则进入步骤S304,若否,则持续监测;
S304,获取第一时长及第二时长,其中,第一时长的参数含义及具体获取方式均可参照上述实施例,第二时长的参数含义及具体获取方式也均可参照上述实施例;
S306,,该差值即为系统时间调整量;
S308,判断该系统时间调整量是否大于最大允许时长调整量,若是,进入步骤S310,否则,进入步骤S312;
S310,确定系统时钟发生跳变;
S312,确定系统时钟正常,未发生跳变。
下面对本申请实施例提供的时间跳变检测装置进行描述,下文描述的时间跳变检测装置与上文描述的时间跳变检测方法可相互对应参照。
在一个实施例中,本申请提供了一种时间跳变检测装置400,如图4所示,该装置400具体包括函数插入模块410、系统时间调整量获取模块420和跳变检测模块430。其中:
函数插入模块410,用于基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;
系统时间调整量获取模块420,用于在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;
跳变检测模块430,用于根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
在一个实施例中,当本次被调用的系统时间修改函数为second_overflow函数时,系统时间调整量获取模块420包括时长获取单元及第一作差单元。其中,该时长获取单元用于在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长;其中,所述第一时长为执行所述second_overflow函数前,单个时钟滴答所对应的时间长度;所述第二时长为执行所述second_overflow函数后,单个时钟滴答所对应的时间长度;第一作差单元用于将所述第一时长与所述第二时长之间的差值作为所述系统时间调整量。
跳变检测模块430包括最大允许时长调整量获取单元及第一检测单元。其中,最大允许时长调整量获取单元用于获取内核运行频率,并基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量。第一检测单元用于根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变。
在一个实施例中,最大允许时长调整量获取单元包括第一左移单元及比值求取单元。其中,第一左移单元用于将所述最大允许跳变时间值左移N位,以得到第一左移结果,所述N为预先配置的正整数。比值求取单元用于将所述第一左移结果与所述内核运行频率之间的比值作为所述最大允许时长调整量。
在一个实施例中,第一检测单元包括偏离差值计算单元、第一判断单元及第二判断单元。其中,偏离差值计算单元用于计算标准时长,并将所述第二时长与所述标准时长之间的差值作为偏离差值,所述标准时长为单个内核运行周期的标准周期时长。第一判断单元用于在所述系统时间调整量的绝对值大于所述最大允许时长调整量,或所述偏离差值的绝对值大于所述最大允许时长调整量的情况下,确定系统时间发生跳变。第二判断单元用于在所述系统时间调整量的绝对值小于或等于所述最大允许时长调整量,且所述偏离差值的绝对值小于或等于所述最大允许时长调整量的情况下,确定系统时间未发生跳变。
在一个实施例中,偏离差值计算单元包括第二左移单元,该第二左移单元用于将109左移N位以得到第二左移结果,并将所述第二左移结果与所述内核运行频率之间的比值作为所述标准时长,所述N为预先配置的正整数。
在一个实施例中,时长获取单元包括变量值获取单元,该变量值获取单元用于在所述second_overflow函数被调用的情况下执行所述目标检测函数,以在所述second_overflow函数的本次调用中,获取kallsyms_lookup_name函数的函数地址,根据所述函数地址调用所述kallsyms_lookup_name函数以获取时长存储变量所对应的变量地址,并在执行所述second_overflow函数前从存储器中读取所述变量地址对应的第一存储数据,将所述第一存储数据作为所述第一时长,以及在执行所述second_overflow函数后从所述存储器中读取所述变量地址对应的第二存储数据,将所述第二存储数据作为所述第二时长。
在一个实施例中,当本次调用的系统时间修改函数为do_adjtimex函数或者do_sys_settimeofday64函数时,系统时间调整量获取模块420包括调整量提取单元或者第二作差单元,其中,调整量提取单元用于在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括所述系统时间调整量的情况下,从所述入参中提取所述系统时间调整量。
第二作差单元用于在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以通过所述目标检测函数获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括调整后的系统时间的情况下,从所述入参中提取所述调整后的系统时间,并获取调整前的系统时间,将所述调整后的系统时间与所述调整前的系统时间之差值作为所述系统时间调整量。
在一个实施例中,时间跳变检测装置400还包括进程标识获取模块。该进程标识获取模块用于在确定系统时间发生跳变时,获取当前执行进程的进程标识,并将所述进程标识与所述进程标识对应的进程名称写入日志中。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述时间跳变检测方法的步骤。
在一个实施例中,本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一实施例中所述的时间跳变检测方法的步骤。
示意性地,如图5所示,图5为本申请实施例提供的一种计算机设备的内部结构示意图,该计算机设备900可以被提供为一服务器。参照图5,计算机设备900包括处理组件902,其进一步包括一个或多个处理器,以及由存储器901所代表的存储器资源,用于存储可由处理组件902的执行的指令,例如应用程序。存储器901中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件902被配置为执行指令,以执行上述任意实施例的时间跳变检测方法。
计算机设备900还可以包括一个电源组件903被配置为执行计算机设备900的电源管理,一个有线或无线网络接口904被配置为将计算机设备900连接到网络,和一个输入输出(I/O)接口905。计算机设备900可以操作基于存储在存储器901的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,本申请示出的计算机设备的内部结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域技术人员可以理解,本申请示出的计算机设备的内部结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本文中,“一”、“一个”、“所述”、“该”和“其”也可以包括复数形式,除非上下文清楚指出另外的方式。多个是指至少两个的情况,如2个、3个、5个或8个等。“和/或”包括相关所列项目的任何及所有组合。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种时间跳变检测方法,其特征在于,所述方法包括:
基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;
在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;
根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
2.根据权利要求1所述的时间跳变检测方法,其特征在于,当本次被调用的系统时间修改函数为second_overflow函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长;其中,所述第一时长为执行所述second_overflow函数前,单个时钟滴答所对应的时间长度;所述第二时长为执行所述second_overflow函数后,单个时钟滴答所对应的时间长度;
将所述第一时长与所述第二时长之间的差值作为所述系统时间调整量;
所述根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变的步骤,包括:
获取内核运行频率,并基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量;
根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变。
3.根据权利要求2所述的时间跳变检测方法,其特征在于,所述基于所述最大允许跳变时间值与所述内核运行频率确定最大允许时长调整量的步骤,包括:
将所述最大允许跳变时间值左移N位,以得到第一左移结果;所述N为预先配置的正整数;
将所述第一左移结果与所述内核运行频率之间的比值作为所述最大允许时长调整量。
4.根据权利要求2所述的时间跳变检测方法,其特征在于,所述根据所述系统时间调整量和所述最大允许时长调整量之间的大小关系,确定系统时间是否发生跳变的步骤,包括:
计算标准时长,并将所述第二时长与所述标准时长之间的差值作为偏离差值,所述标准时长为单个内核运行周期的标准周期时长;
若所述系统时间调整量的绝对值大于所述最大允许时长调整量,或所述偏离差值的绝对值大于所述最大允许时长调整量,则确定系统时间发生跳变;
若所述系统时间调整量的绝对值小于或等于所述最大允许时长调整量,且所述偏离差值的绝对值小于或等于所述最大允许时长调整量,则确定系统时间未发生跳变。
5.根据权利要求4所述的时间跳变检测方法,其特征在于,所述计算标准时长的步骤,包括:
将109左移N位以得到第二左移结果,并将所述第二左移结果与所述内核运行频率之间的比值作为所述标准时长,所述N为预先配置的正整数。
6.根据权利要求2至5任一项所述的时间跳变检测方法,其特征在于,所述在所述second_overflow函数被调用的情况下执行所述目标检测函数,以获取所述second_overflow函数在本次调用中所对应的第一时长和第二时长的步骤,包括:
在所述second_overflow函数被调用的情况下执行所述目标检测函数,以在所述second_overflow函数的本次调用中,获取kallsyms_lookup_name函数的函数地址,根据所述函数地址调用所述kallsyms_lookup_name函数以获取时长存储变量所对应的变量地址,并在执行所述second_overflow函数前从存储器中读取所述变量地址对应的第一存储数据,将所述第一存储数据作为所述第一时长,以及在执行所述second_overflow函数后从所述存储器中读取所述变量地址对应的第二存储数据,将所述第二存储数据作为所述第二时长。
7.根据权利要求1所述的时间跳变检测方法,其特征在于,当本次调用的系统时间修改函数为do_adjtimex函数或者do_sys_settimeofday64函数时,所述在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量的步骤,包括:
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括所述系统时间调整量的情况下,从所述入参中提取所述系统时间调整量;
或者
在所述do_adjtimex函数或者所述do_sys_settimeofday64函数被调用的情况下执行所述目标检测函数,以通过所述目标检测函数获取所述do_adjtimex函数或者所述do_sys_settimeofday64函数在本次调用中的入参,在所述入参包括调整后的系统时间的情况下,从所述入参中提取所述调整后的系统时间,并获取调整前的系统时间,将所述调整后的系统时间与所述调整前的系统时间之差值作为所述系统时间调整量。
8.根据权利要求1至5、7任一项所述的时间跳变检测方法,其特征在于,所述方法还包括:
在确定系统时间发生跳变时,获取当前执行进程的进程标识,并将所述进程标识与所述进程标识对应的进程名称写入日志中。
9.一种时间跳变检测装置,其特征在于,所述装置包括:
函数插入模块,用于基于程序插桩技术分别在每个系统时间修改函数中插入对应的检测函数;
系统时间调整量获取模块,用于在任一所述系统时间修改函数被调用的情况下执行目标检测函数,以获取被调用的系统时间修改函数在本次调用中所对应的系统时间调整量;所述目标检测函数为插入至被调用的系统时间修改函数中的检测函数;
跳变检测模块,用于根据所述系统时间调整量与预设的最大允许跳变时间值,确定系统时间是否发生跳变。
10.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至8中任一项所述时间跳变检测方法的步骤。
11.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;
所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如权利要求1至8中任一项所述时间跳变检测方法的步骤。
CN202210826576.8A 2022-07-14 2022-07-14 时间跳变检测方法、装置、存储介质及计算机设备 Pending CN115225194A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210826576.8A CN115225194A (zh) 2022-07-14 2022-07-14 时间跳变检测方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210826576.8A CN115225194A (zh) 2022-07-14 2022-07-14 时间跳变检测方法、装置、存储介质及计算机设备

Publications (1)

Publication Number Publication Date
CN115225194A true CN115225194A (zh) 2022-10-21

Family

ID=83610988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210826576.8A Pending CN115225194A (zh) 2022-07-14 2022-07-14 时间跳变检测方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN115225194A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104426600A (zh) * 2013-09-04 2015-03-18 成都泰富通信有限公司 光纤传输时延自动锁定及均衡补偿方法
CN105388751A (zh) * 2015-11-26 2016-03-09 株洲南车时代电气股份有限公司 一种用于动车组中防时钟跳变的方法与系统
WO2016115975A1 (zh) * 2015-01-20 2016-07-28 中兴通讯股份有限公司 一种用于mips架构cpu的热补丁的方法和设备
CN109558325A (zh) * 2018-12-03 2019-04-02 浪潮电子信息产业股份有限公司 一种时延统计方法、装置和计算机可读存储介质
CN111122941A (zh) * 2019-12-04 2020-05-08 国网湖南综合能源服务有限公司 基于Kaiser窗函数改进S变换的电压暂降特征量检测方法、系统及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104426600A (zh) * 2013-09-04 2015-03-18 成都泰富通信有限公司 光纤传输时延自动锁定及均衡补偿方法
WO2016115975A1 (zh) * 2015-01-20 2016-07-28 中兴通讯股份有限公司 一种用于mips架构cpu的热补丁的方法和设备
CN105388751A (zh) * 2015-11-26 2016-03-09 株洲南车时代电气股份有限公司 一种用于动车组中防时钟跳变的方法与系统
CN109558325A (zh) * 2018-12-03 2019-04-02 浪潮电子信息产业股份有限公司 一种时延统计方法、装置和计算机可读存储介质
CN111122941A (zh) * 2019-12-04 2020-05-08 国网湖南综合能源服务有限公司 基于Kaiser窗函数改进S变换的电压暂降特征量检测方法、系统及介质

Similar Documents

Publication Publication Date Title
CN110244991B (zh) 一种微服务依赖分析方法及装置
US11422916B2 (en) Usage amount monitoring method and monitoring unit of electronic control unit for vehicle
CN109582907A (zh) 网页资源完整性的校验方法、装置、设备及可读存储介质
JP2008310748A (ja) タスク実行時間記録装置、タスク実行時間記録方法、及びタスク実行時間記録用プログラム
CN117519116B (zh) 待监测设备的性能数据确定方法、装置及电子设备
CN111352829A (zh) 一种内存泄漏的测试方法、装置及设备
CN109634822B (zh) 一种函数耗时统计方法、装置、存储介质及终端设备
US9170871B2 (en) Data polling method and digital instrumentation and control system for atomic power plant using the method
CN115225194A (zh) 时间跳变检测方法、装置、存储介质及计算机设备
CN111733572B (zh) 加热处理方法、装置及电子设备
CN113221042B (zh) 网页操作过程记录方法、装置、电子设备及计算机可读介质
US20080282248A1 (en) Electronic computing device capable of specifying execution time of task, and program therefor
CN109800146B (zh) 应用程序启动时间测试方法、装置、计算机设备及存储介质
CN111309475B (zh) 一种检测任务执行方法及设备
CN110572479B (zh) 一种电子秤的管理方法、电子秤及存储介质
JP4745904B2 (ja) 電子装置
CN208547562U (zh) 一种光学检测设备
CN113672917A (zh) 恶意代码检测方法、装置、存储介质及电子设备
CN116483678B (zh) 一种信息处理方法和相关装置
CN112699015B (zh) 日志输出方法、装置、服务器及计算机可读存储介质
CN114326670B (zh) 控制器执行任务的检测方法、装置、存储介质及电子装置
CN114048488B (zh) 漏洞检测方法及系统
CN117192343B (zh) 基于辅助系统的芯片测试方法、电子设备及介质
CN112665585B (zh) 消除车辆周期性震动干扰的方法、装置以及终端设备
CN115826681A (zh) 固件仿真的时间校准方法、设备以及计算机可读存储介质

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