CN114461371A - 一种服务器系统中断优化方法、装置、设备及介质 - Google Patents

一种服务器系统中断优化方法、装置、设备及介质 Download PDF

Info

Publication number
CN114461371A
CN114461371A CN202210381524.4A CN202210381524A CN114461371A CN 114461371 A CN114461371 A CN 114461371A CN 202210381524 A CN202210381524 A CN 202210381524A CN 114461371 A CN114461371 A CN 114461371A
Authority
CN
China
Prior art keywords
event
target
hardware
interrupt
target software
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.)
Granted
Application number
CN202210381524.4A
Other languages
English (en)
Other versions
CN114461371B (zh
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210381524.4A priority Critical patent/CN114461371B/zh
Publication of CN114461371A publication Critical patent/CN114461371A/zh
Priority to PCT/CN2022/118850 priority patent/WO2023197521A1/zh
Application granted granted Critical
Publication of CN114461371B publication Critical patent/CN114461371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种服务器系统中断优化方法、装置、设备及介质,涉及服务器领域。该方法应用于服务器系统,包括:当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件,然后利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中,通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。这样一来本方案通过采用硬件中断合并和软件事件合并技术,既可以降低中断处理开销,又可以减少处理器使用率。

Description

一种服务器系统中断优化方法、装置、设备及介质
技术领域
本发明涉及服务器领域,特别涉及一种服务器系统中断优化方法、装置、设备及介质。
背景技术
软硬件协同设计是一种软硬件结合的设计方法,该方法充分利用硬件电路并行性和软件灵活性,将业务功能按照处理流程特点进行划分,将适合并行执行并且与业务基本无关联的模块交给硬件实现从而提高传输性能并降低处理器的使用率,将适合串行执行并且不同业务流程差异较大的模块交给软件实现,从而根据实际业务编制特定软件处理流程。
现有技术中,中断是一种硬件通知软件某种操作完成或者异常从而实现软硬件同步的方法,常见的中断方式有MSI(即Message Signaled Interrupt)、MSI-X、电平中断等。但是在服务器的硬件外设较多时,可能会导致服务器系统的高频率中断,会给系统造成较大的软件上下文切换开销。
现有技术中还有对于系统处理器的轮询工作模式,该模式一般是通过操作系统虚拟文件系统内存映射接口,将硬件设备寄存器和内核空间物理内存映射到用户空间,在操作系统用户空间初始化硬件设备并启动数据传输,通过轮询硬件状态寄存器判断硬件数据传输操作是否完成,当硬件数据传输操作完成时继续启动下一轮数据传输。由于该方法完全没有引入中断,因此可降低系统中断处理造成的上下文切换开销,但对于系统处理器的使用率较高,且系统响应实时性较差。
由上可见,在软硬件协同使用的过程中,如何避免出现纯中断模式中断处理开销较大、纯轮询模式处理器使用率较高的情况是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种服务器系统中断优化方法、装置、设备及介质,能够通过硬件中断合并和软件事件合并技术,既可以降低中断处理开销,又可以减少处理器使用率。其具体方案如下:
第一方面,本申请公开了一种服务器系统中断优化方法,应用于服务器系统,包括:
当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号;
利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中;
通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
可选的,所述的服务器系统中断优化方法,还包括:
为所述内核空间的字符设备驱动设置信号量机制,并将当前所述字符设备驱动的信号值设置为用于表征当前进程状态为阻塞状态的信号值;
相应的,所述将所述目标软件事件写入预设的全局事件队列中之后,还包括:
当所述字符设备驱动检测到所述目标软件事件被写入到所述全局事件队列,则将当前所述字符设备驱动的信号值切换为用于表征当前进程状态为非阻塞状态的信号值,然后将进程的阻塞状态解除。
可选的,所述将进程的阻塞状态解除之后,还包括:
利用所述字符设备驱动向所述用户空间发送用于表征进程阻塞状态解除的内核事件;
相应的,所述通过用户空间读取所述全局事件队列中的目标软件事件,包括:
通过所述用户空间接收由所述字符设备驱动发送的所述内核事件,然后读取所述全局事件队列中的目标软件事件。
可选的,所述将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理,包括:
判断所述目标软件事件的目标事件类型;
基于预设的事件类型与事件回调函数链表的对应关系,并利用所述目标事件类型确定所述目标软件事件对应的目标事件回调函数链表;
利用所述目标事件回调函数链表确定对应的目标业务进程,并将所述目标软件事件转发至所述目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
可选的,所述通过用户空间读取所述全局事件队列中的目标软件事件,包括:
获取所述全局事件队列在所述字符设备驱动中的物理地址;
将所述物理地址映射至所述用户空间,以得到相应的所述全局事件队列的虚拟地址;
通过所述用户空间并利用所述全局事件队列的虚拟地址读取所述全局事件队列中的目标软件事件。
第二方面,本申请公开了一种服务器系统中断优化方法,应用于服务器系统,包括:
通过预设中断事件接收接口获取中断事件,并在所述中断事件完成时基于所述中断事件生成中断信息;
将所述中断信息以事件形式添加至预设的硬件事件队列;
判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,并将所述中断请求信号发送至服务器系统的内核空间,以便当所述内核空间的外设驱动监测到所述中断请求信号,则通过所述服务器系统将从所述硬件事件队列中读取的目标硬件事件转换为目标软件事件并写入至预设全局事件队列,然后通过用户空间将从所述全局事件队列中读取到的所述目标软件事件转发至相应的目标业务进程进行处理。
可选的,所述判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,包括:
计算当前时间与上次中断请求发送时间之间的时间差,并将所述时间差作为当前中断间隔;
判断所述当前中断间隔是否不小于预设的最小中断间隔;
若所述当前中断间隔不小于所述最小中断间隔,则判断所述硬件事件队列是否不为空;
若所述硬件事件队列不为空,则生成中断请求信号。
第三方面,本申请公开了一种服务器系统中断优化装置,应用于服务器系统,包括:
事件获取模块,用于当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号;
事件写入模块,用于利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中;
事件处理模块,用于通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
第四方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的服务器系统中断优化方法。
第五方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的服务器系统中断优化方法的步骤。
本申请当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号,利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中,通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。这样一来,服务器系统通过接收到硬件外设在满足预设的中断请求信号发送规则后生成的中断请求信号后,对硬件外设中的目标硬件事件进行读取,并转化为系统可以处理的目标软件事件,最后在用户空间中将目标软件事件转发给目标业务进程进行处理,本方法通过硬件中断合并和软件事件合并技术,既可以降低中断处理开销,又可以减少处理器使用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种服务器系统中断优化方法流程图;
图2为本申请提供的一种软硬件事件转化示意图;
图3为本申请提供的一种具体的服务器系统中断优化方法流程图;
图4为本申请提供的一种事件注册示意图;
图5为本申请提供的一种具体的服务器系统中断优化方法流程图;
图6为本申请提供的一种硬件外设的中断合并与中断请求流程示意图;
图7为本申请提供的一种服务器系统中断优化的整体流程图;
图8为本申请提供的一种服务器系统中断优化装置结构示意图;
图9为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,纯中断模式对于中断处理的开销较大、纯轮询模式对于处理器的使用率较高。在本申请中,提出了一种通过硬件中断合并和软件事件合并的方法,既可以降低中断处理开销、又可用降低处理器使用率。
本发明实施例公开了一种服务器系统中断优化方法,应用于服务器系统,参见图1所述,该方法包括:
步骤S11:当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号。
可以理解的是,所述服务器系统中包括用户空间与内核空间,所述外设驱动位于所述内核空间,所述硬件外设中保存有硬件事件队列,且所述硬件事件队列中保存有目标硬件事件,所述目标硬件事件是所述硬件事件队列中待处理的事件。进一步的,本步骤中所述硬件外设在满足预设的中断请求信号发送规则后生成所述中断请求信号,当服务器系统中的内核空间中的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件。
步骤S12:利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中。
在一种具体的实施方式中,本实施例中将目标硬件事件转换为目标软件事件过程可以采用将硬件事件信息转换为软件事件信息的方式,以便对硬件事件进行更细粒度的控制。如图2为一种软硬件事件转化示意图,硬件事件中包括操作完成信息、操作异常信息以及其他异常信息,软件事件信息中包含信息总长度、事件的类型、优先级、是否广播、是否屏蔽、校验算法、硬件事件数据、校验和等字段。
本实施例中,所述服务器系统中断优化方法,还可以包括:为所述内核空间的字符设备驱动设置信号量机制,并将当前所述字符设备驱动的信号值设置为用于表征当前进程状态为阻塞状态的信号值;相应的,所述将所述目标软件事件写入预设的全局事件队列中之后,还包括:当所述字符设备驱动检测到所述目标软件事件被写入到所述全局事件队列,则将当前所述字符设备驱动的信号值切换为用于表征当前进程状态为非阻塞状态的信号值,然后将进程的阻塞状态解除。
本实施例中为所述内核空间中的字符设备驱动建立信号量机制,在一种具体的实施方式中,用户空间中可以添加用于进行事件读取与转发的事件转发模块,用户空间可以通过调用内核空间虚拟文件系统的文件控制接口,进一步转为调用内核空间字符设备驱动的文件控制接口,通过信号量机制,阻塞用户空间事件转发模块的运行,使得事件转发模块转换为等待事件的阻塞状态;当内核空间的全局事件队列写入事件时,则解除用户空间内事件转发模块的阻塞状态,使其继续运行;当事件转发模块将所有软件事件信息转发完毕后,重新调用内核空间虚拟文件系统的文件控制接口,进一步转为调用内核空间字符设备驱动的文件控制接口,通过内核空间信号量机制,重新进入阻塞状态。在一种可能的实施方式中,字符设备驱动中的信号值为0表示当前进程状态为阻塞状态;信号值为1表示当前进程状态为非阻塞状态。
步骤S13:通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
本实施例中,所述将进程的阻塞状态解除之后,还可以包括:利用所述字符设备驱动向所述用户空间发送用于表征进程阻塞状态解除的内核事件;相应的,所述通过用户空间读取所述全局事件队列中的目标软件事件,包括:通过所述用户空间接收由所述字符设备驱动发送的所述内核事件,然后读取所述全局事件队列中的目标软件事件。
可以理解的是,所述内核事件为用于表征进程阻塞状态解除的事件,在用户空间接收由字符设备驱动发送的内核事件后,则表明进程处于非阻塞状态,则可以对全局事件队列中的目标软件事件进行读取与转发。
本实施例中,所述通过用户空间读取所述全局事件队列中的目标软件事件,可以包括:获取所述全局事件队列在所述字符设备驱动中的物理地址;将所述物理地址映射至所述用户空间,以得到相应的所述全局事件队列的虚拟地址;通过所述用户空间并利用所述全局事件队列的虚拟地址读取所述全局事件队列中的目标软件事件。
在一种具体的实施方式中,用户空间中的事件转发模块在初始化阶段时,调用内核空间虚拟文件系统的内存映射接口,进一步转为调用内核空间字符设备驱动的内存映射接口,将内核空间全局事件队列的物理地址映射到用户空间“事件转发模块”的虚拟地址,并在事件转发时利用虚拟地址读取全局事件队列中的目标软件事件,并将目标软件事件转发至相应的业务进程中。
本实施例中所述利用用户空间中的事件转发模块对所述全局事件队列进行读取目标软件事件,将目标软件事件转发至相应的业务进程中体现了本发明中软件事件合并的功能。
本实施例中当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件,所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号,利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中,通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。这样一来,服务器系统通过接收到硬件外设在满足预设的中断请求信号发送规则后生成的中断请求信号后,对硬件外设中的目标硬件事件进行读取,并转化为系统便于处理的目标软件事件,最后将目标软件事件转发给目标业务进程进行处理,本方法通过硬件中断合并和软件事件合并技术,既可以降低中断处理开销,又可以减少处理器使用率。
图3为本申请实施例提供的一种具体的服务器系统中断优化方法流程图,该方法应用于服务器系统。参见图3所示,该方法包括:
步骤S21:当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号。
其中,关于步骤S21的更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S22:利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中。
其中,关于步骤S22的更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S23:通过用户空间读取所述全局事件队列中的目标软件事件,并判断所述目标软件事件的目标事件类型。
可以理解的是,在用户空间获取到目标软件事件后会将所述目标软件事件转发至相应的目标进程中,本步骤先确定目标软件事件的目标事件类型,然后根据目标软件类型完成后续的事件转发过程。
步骤S24:基于预设的事件类型与事件回调函数链表的对应关系,并利用所述目标事件类型确定所述目标软件事件对应的目标事件回调函数链表。
在本实施例中,可以根据目标软件事件的事件类型确定对应的目标事件回调函数链表,并根据目标事件回调函数链表中的回调函数确定相应的目标业务进程,并将目标软件事件转发给目标业务进程进行处理。
需要指出的是,在用户空间中的事件转发模块处于初始化阶段时,会定义事件转发模块中的全局事件与事件回调函数链表,此时各业务进程会向事件回调函数链表注册本模块的事件回调函数,事件回调函数链表与业务进程模块之间可以是多对多映射关系,即一个链表可接收多个模块注册的回调函数、一个模块也可向多个链表注册回调函数,在初始化阶段结束后,根据上述函数的注册过程便形成了事件类型与事件回调函数链表之间的对应关系,以及事件回调函数链表与业务进程之间的对应关系。
步骤S25:利用所述目标事件回调函数链表确定对应的目标业务进程,并将所述目标软件事件转发至所述目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
在本实施例中,可以根据目标软件事件的事件类型确定对应的目标事件回调函数链表后,根据目标事件回调函数链表中的回调函数确定相应的目标业务进程,并将目标软件事件转发给目标业务进程进行处理。
图4为本申请提出的一种事件注册示意图,图中虚线表示各业务进程模块在初始化阶段时,向各事件回调函数链表中注册事件回调函数而形成的链表与进程模块之间的对应关系。在步骤S23中获取目标软件事件的目标事件类型后,则会根据预设的事件类型与事件回调函数链表的对应关系确定各目标软件事件对应的目标事件回调函数链表,最后根据事件回调函数链表中的事件回调函数确定对应的业务进程模块,并根据对应的业务进程对目标软件事件进行处理。
本实施例中可以通过用户空间读取所述全局事件队列中的目标软件事件,并判断所述目标软件事件的目标事件类型,然后根据目标软件事件的目标事件类型确定目标事件回调函数链表,最后根据事件回调函数链表中的事件回调函数确定对应的业务进程模块,并根据对应的业务进程对目标软件事件进行处理。本方法通过将软件事件一次性转发到所有的业务进程中,减少了各业务进程单独从内核空间获取软件事件时引入的用户空间和内核空间上下文切换次数,进一步减少了上下文切换导致的处理器占用。上下文切换次数减少导致的处理器缓存失效减少,还提高了硬件外设的数据处理和传输性能,硬件中断合并和软件事件合并导致处理器使用率降低,使得服务器系统可分配更多处理器资源给其他软硬件模块,因此服务器整体数据处理和传输性能相比传统方案更高,还可以使服务器系统对于事件处理更加有序化,以提升服务器系统对于事件处理的效率。
本发明实施例公开了另一种具体的服务器系统中断优化方法,应用于硬件外设,参见图5所述,该方法包括:
步骤S31:通过预设中断事件接收接口获取中断事件,并在所述中断事件完成时基于所述中断事件生成中断信息。
可以理解的是,本实施例可以通过预设中断事件接收接口获取中断事件,所述中断事件可以是硬件操作,则在硬件外设完成对应的硬件操作后,将会生成相应的中断信息。在另一种具体的实施方式中,所述硬件外设在设备异常或所述中断事件对应的硬件操作的操作异常时也可以产生相应的中断信息。
步骤S32:将所述中断信息以事件形式添加至预设的硬件事件队列。
步骤S33:判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,并将所述中断请求信号发送至服务器系统的内核空间,以便当所述内核空间的外设驱动监测到所述中断请求信号,则通过所述服务器系统将从所述硬件事件队列中读取的目标硬件事件转换为目标软件事件并写入至预设全局事件队列,然后通过用户空间将从所述全局事件队列中读取到的所述目标软件事件转发至相应的目标业务进程进行处理。
本实施例中,所述判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,可以包括:计算当前时间与上次中断请求发送时间之间的时间差,并将所述时间差作为当前中断间隔;判断所述当前中断间隔是否不小于预设的最小中断间隔;若所述当前中断间隔不小于所述最小中断间隔,则判断所述硬件事件队列是否不为空;若所述硬件事件队列不为空,则生成中断请求信号。
可以理解的是,在硬件外设向服务器系统发送中断请求信号后,服务器系统对于硬件事件的更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
需要指出的是,本方案中利用预设的最小中断间隔与硬件队列实现硬件中中断事件的合并技术,本方案适用于多种中断,包括但不限于MSI、MSI-X、传统中断,且当系统中有多个硬件外设时,所有硬件外设均可提供与上述过程类似的中断事件合并流程。
如图6为一种硬件外设的中断合并与中断请求流程示意图,图中展示了硬件设备中配置了用于获取最小中断间隔的最小中断间隔寄存器接口与用于供服务器系统读取硬件事件的事件读取寄存器接口,在硬件外设内部配置了实时计数模块、中断合并模块、其他功能模块、硬件事件队列与中断通知模块,其中定是技术模块会定时更新当前事件,并将当前时间传输至中断合并模块,有其他功能模块实时判断当前硬件外设的是否满足生成中断信息的条件,若在中断世家操作完成或产生其他异常时,生成中断信息,并将中断信息以事件形式添加到硬件事件队列,并实时记录队列长度,将队列长度发送至中断合并模块,当终端模式接收到当前时间时,将会判断当前时间条件是否满足当前中断间隔大于等于最小间隔,若当前中断间隔大于等于最小间隔,则判断硬件队列是否为非空,若硬件队列非空,则判定为此时需要向软件发送中断请求,并将计数器中的上次中断时间进行更新,以完成中断合并过程。最后向中断通知模块发送中断请求,中断通知模块在接收到中断合并模块产生中断请求信号后将中断请求信号发送至服务器系统中相应的中断控制器,以完成整个中断请求过程。
本实施例中硬件外设通过预设中断事件接收接口获取中断事件,并在所述中断事件完成时基于所述中断事件生成中断信息,将所述中断信息以事件形式添加至预设的硬件事件队列,然后判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,并将所述中断请求信号发送至服务器系统的内核空间,以便当所述内核空间的外设驱动监测到所述中断请求信号,则通过所述服务器系统将从所述硬件事件队列中读取的目标硬件事件转换为目标软件事件并写入至预设全局事件队列,然后通过用户空间将从所述全局事件队列中读取到的所述目标软件事件转发至相应的目标业务进程进行处理。本实施例中对于本发明中提出的硬件合并技术进行详细展开,本方法摒弃了传统方案中对于中断技术的应用中将每次产生的中断信息均转化为中断信号发送至服务器系统,而导致服务器系统频繁中断的方法,采用最小中断间隔与硬件事件队列来完成中断事件的合并,便更加合理化的使用中断技术。
图7为本申请提出的一种服务器系统中断优化的整体流程图,图中展示了服务器操作系统的用户空间进程模块与内核空间进程模块、服务器硬件外设的内部工作流程,图下方的服务器硬件外设1中,当功能模块产生中断信息时,将中断信息发送至中断合并模块,并由中断合并模块将中断信息以事件格式添加至硬件事件队列中,并在中断合并模块产生中断请求后,将中断请求发送至中断通知模块,并最终由中断通知模块将相应的中断请求信号发送至服务器操作系统中。服务器操作系统内核驱动中的外设驱动中的中断监控模块在获取到硬件外设发送的中断请求信号后,会对硬件外设中的事件队列进行读取,并将硬件事件转化为软件事件后,将软件事件写入全局事件队列中,相应的,当全局事件队列中存在事件写入时,字符设备驱动中的进程阻塞会进行解除,事件转发模块在初始化阶段会进行事件的注册,用于完成事件回调链表与业务进程的注册过程与虚拟地址的映射,其中虚拟地址的映射过程具体是利用虚拟文件系统与字符设备驱动的内存硬件接口将字符设备驱动中的全局事件队列的物理地址映射至事件转发模块中的虚拟地址,然后通过虚拟地址读取全局事件队列中的软件事件,并根据软件事件确定相应的事件回调函数链表,最后利用链表与业务进程模块的多对多映射关系确定软件事件对应的业务进程模块,并将软件事件转发至相应的业务进程模块中进行事件的处理。
参见图8所示,本申请实施例公开了一种服务器系统中断优化装置,应用于服务器系统,具体可以包括:
事件获取模块11,用于当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号;
事件写入模块12,用于利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中;
事件处理模块13,用于通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
本申请当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号,利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中,通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。这样一来,服务器系统通过接收到硬件外设在满足预设的中断请求信号发送规则后生成的中断请求信号后,对硬件外设中的目标硬件事件进行读取,并转化为系统可以处理的目标软件事件,最后在用户空间中将目标软件事件转发给目标业务进程进行处理,本方法通过硬件中断合并和软件事件合并技术,既可以降低中断处理开销,又可以减少处理器使用率。
在一些具体实施例中,所述服务器系统中断优化方法,包括:
进程阻塞单元,用于为所述内核空间的字符设备驱动设置信号量机制,并将当前所述字符设备驱动的信号值设置为用于表征当前进程状态为阻塞状态的信号值;
阻塞解除单元,用于当所述字符设备驱动检测到所述目标软件事件被写入到所述全局事件队列,则将当前所述字符设备驱动的信号值切换为用于表征当前进程状态为非阻塞状态的信号值,然后将进程的阻塞状态解除。
在一些具体实施例中,所述服务器系统中断优化方法,包括:
内核事件发送单元,用于利用所述字符设备驱动向所述用户空间发送用于表征进程阻塞状态解除的内核事件;
相应的,事件获取模块11,还包括:
内核事件获取单元,用于通过所述用户空间接收由所述字符设备驱动发送的所述内核事件,然后读取所述全局事件队列中的目标软件事件。
在一些具体实施例中,所述事件处理模块13,包括:
类型判断单元,用于判断所述目标软件事件的目标事件类型;
链表确定单元,用于基于预设的事件类型与事件回调函数链表的对应关系,并利用所述目标事件类型确定所述目标软件事件对应的目标事件回调函数链表;
进程确定单元,用于利用所述目标事件回调函数链表确定对应的目标业务进程,并将所述目标软件事件转发至所述目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
在一些具体实施例中,所述事件处理模块13,包括:
地址获取单元,用于获取所述全局事件队列在所述字符设备驱动中的物理地址;
地址映射单元,用于将所述物理地址映射至所述用户空间,以得到相应的所述全局事件队列的虚拟地址;
事件读取单元,用于通过所述用户空间并利用所述全局事件队列的虚拟地址读取所述全局事件队列中的目标软件事件。
进一步的,本申请实施例还公开了一种电子设备,图9是根据示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图9为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、显示屏24、输入输出接口25、通信接口26和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的服务器系统中断优化方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口26能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的服务器系统中断优化方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-OnlyMemory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述公开的服务器系统中断优化方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的服务器系统中断优化方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种服务器系统中断优化方法,其特征在于,应用于服务器系统,包括:
当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号;
利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中;
通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
2.根据权利要求1所述的服务器系统中断优化方法,其特征在于,还包括:
为所述内核空间的字符设备驱动设置信号量机制,并将当前所述字符设备驱动的信号值设置为用于表征当前进程状态为阻塞状态的信号值;
相应的,所述将所述目标软件事件写入预设的全局事件队列中之后,还包括:
当所述字符设备驱动检测到所述目标软件事件被写入到所述全局事件队列,则将当前所述字符设备驱动的信号值切换为用于表征当前进程状态为非阻塞状态的信号值,然后将进程的阻塞状态解除。
3.根据权利要求2所述的服务器系统中断优化方法,其特征在于,所述将进程的阻塞状态解除之后,还包括:
利用所述字符设备驱动向所述用户空间发送用于表征进程阻塞状态解除的内核事件;
相应的,所述通过用户空间读取所述全局事件队列中的目标软件事件,包括:
通过所述用户空间接收由所述字符设备驱动发送的所述内核事件,然后读取所述全局事件队列中的目标软件事件。
4.根据权利要求1所述的服务器系统中断优化方法,其特征在于,所述将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理,包括:
判断所述目标软件事件的目标事件类型;
基于预设的事件类型与事件回调函数链表的对应关系,并利用所述目标事件类型确定所述目标软件事件对应的目标事件回调函数链表;
利用所述目标事件回调函数链表确定对应的目标业务进程,并将所述目标软件事件转发至所述目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
5.根据权利要求1至4任一项所述的服务器系统中断优化方法,其特征在于,所述通过用户空间读取所述全局事件队列中的目标软件事件,包括:
获取所述全局事件队列在字符设备驱动中的物理地址;
将所述物理地址映射至所述用户空间,以得到相应的所述全局事件队列的虚拟地址;
通过所述用户空间并利用所述全局事件队列的虚拟地址读取所述全局事件队列中的目标软件事件。
6.一种服务器系统中断优化方法,其特征在于,应用于硬件外设,包括:
通过预设中断事件接收接口获取中断事件,并在所述中断事件完成时基于所述中断事件生成中断信息;
将所述中断信息以事件形式添加至预设的硬件事件队列;
判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,并将所述中断请求信号发送至服务器系统的内核空间,以便当所述内核空间的外设驱动监测到所述中断请求信号,则通过所述服务器系统将从所述硬件事件队列中读取的目标硬件事件转换为目标软件事件并写入至预设全局事件队列,然后通过用户空间将从所述全局事件队列中读取到的所述目标软件事件转发至相应的目标业务进程进行处理。
7.根据权利要求6所述的服务器系统中断优化方法,其特征在于,所述判断当前是否满足预设的中断请求信号发送规则,若满足则生成中断请求信号,包括:
计算当前时间与上次中断请求发送时间之间的时间差,并将所述时间差作为当前中断间隔;
判断所述当前中断间隔是否不小于预设的最小中断间隔;
若所述当前中断间隔不小于所述最小中断间隔,则判断所述硬件事件队列是否不为空;
若所述硬件事件队列不为空,则生成中断请求信号。
8.一种服务器系统中断优化装置,其特征在于,应用于服务器系统,包括:
事件获取模块,用于当内核空间的外设驱动监测到由硬件外设发送的中断请求信号,则对所述硬件外设中的硬件事件队列进行读取,以获取所述硬件事件队列中的目标硬件事件;所述中断请求信号为所述硬件外设在满足预设的中断请求信号发送规则后生成,并向所述内核空间发送的信号;
事件写入模块,用于利用所述外设驱动将所述目标硬件事件转换为目标软件事件,并将所述目标软件事件写入预设的全局事件队列中;
事件处理模块,用于通过用户空间读取所述全局事件队列中的目标软件事件,并将所述目标软件事件转发至相应的目标业务进程中,以便所述目标业务进程对所述目标软件事件进行处理。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的服务器系统中断优化方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的服务器系统中断优化方法。
CN202210381524.4A 2022-04-13 2022-04-13 一种服务器系统中断优化方法、装置、设备及介质 Active CN114461371B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210381524.4A CN114461371B (zh) 2022-04-13 2022-04-13 一种服务器系统中断优化方法、装置、设备及介质
PCT/CN2022/118850 WO2023197521A1 (zh) 2022-04-13 2022-09-15 一种服务器系统中断优化方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210381524.4A CN114461371B (zh) 2022-04-13 2022-04-13 一种服务器系统中断优化方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN114461371A true CN114461371A (zh) 2022-05-10
CN114461371B CN114461371B (zh) 2023-02-28

Family

ID=81418493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210381524.4A Active CN114461371B (zh) 2022-04-13 2022-04-13 一种服务器系统中断优化方法、装置、设备及介质

Country Status (2)

Country Link
CN (1) CN114461371B (zh)
WO (1) WO2023197521A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023197521A1 (zh) * 2022-04-13 2023-10-19 苏州浪潮智能科技有限公司 一种服务器系统中断优化方法、装置、设备及介质
WO2024109624A1 (zh) * 2022-11-23 2024-05-30 华为技术有限公司 一种数据处理的方法以及计算机设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118193051B (zh) * 2024-05-16 2024-08-02 北京壁仞科技开发有限公司 程序效能优化方法与电子装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752370B2 (en) * 2007-04-12 2010-07-06 International Business Machines Corporation Splitting one hardware interrupt to multiple handlers
CN102246524A (zh) * 2008-12-09 2011-11-16 微软公司 使用单指令、多派遣指令的远程桌面协议压缩加速
US9378047B1 (en) * 2013-09-18 2016-06-28 Emc Corporation Efficient communication of interrupts from kernel space to user space using event queues
CN106339297A (zh) * 2016-09-14 2017-01-18 郑州云海信息技术有限公司 一种存储系统故障实时告警的方法及系统
CN108628782A (zh) * 2018-03-27 2018-10-09 天津麒麟信息技术有限公司 一种基于飞腾平台的中断转换机制的实现方法
CN109218227A (zh) * 2018-08-02 2019-01-15 武汉绿色网络信息服务有限责任公司 一种网络数据包处理方法和装置
CN111133417A (zh) * 2017-10-24 2020-05-08 英特尔公司 硬件辅助的虚拟交换机
US20210279097A1 (en) * 2018-07-24 2021-09-09 Mitsubishi Electric Corporation Interrupt handling method, computer system, and non-transitory storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953906B2 (en) * 2007-02-20 2011-05-31 Ati Technologies Ulc Multiple interrupt handling method, devices and software
CN114461371B (zh) * 2022-04-13 2023-02-28 苏州浪潮智能科技有限公司 一种服务器系统中断优化方法、装置、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752370B2 (en) * 2007-04-12 2010-07-06 International Business Machines Corporation Splitting one hardware interrupt to multiple handlers
CN102246524A (zh) * 2008-12-09 2011-11-16 微软公司 使用单指令、多派遣指令的远程桌面协议压缩加速
US9378047B1 (en) * 2013-09-18 2016-06-28 Emc Corporation Efficient communication of interrupts from kernel space to user space using event queues
CN106339297A (zh) * 2016-09-14 2017-01-18 郑州云海信息技术有限公司 一种存储系统故障实时告警的方法及系统
CN111133417A (zh) * 2017-10-24 2020-05-08 英特尔公司 硬件辅助的虚拟交换机
CN108628782A (zh) * 2018-03-27 2018-10-09 天津麒麟信息技术有限公司 一种基于飞腾平台的中断转换机制的实现方法
US20210279097A1 (en) * 2018-07-24 2021-09-09 Mitsubishi Electric Corporation Interrupt handling method, computer system, and non-transitory storage medium
CN109218227A (zh) * 2018-08-02 2019-01-15 武汉绿色网络信息服务有限责任公司 一种网络数据包处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023197521A1 (zh) * 2022-04-13 2023-10-19 苏州浪潮智能科技有限公司 一种服务器系统中断优化方法、装置、设备及介质
WO2024109624A1 (zh) * 2022-11-23 2024-05-30 华为技术有限公司 一种数据处理的方法以及计算机设备

Also Published As

Publication number Publication date
WO2023197521A1 (zh) 2023-10-19
CN114461371B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN114461371B (zh) 一种服务器系统中断优化方法、装置、设备及介质
CN111338785B (zh) 资源调度方法及装置、电子设备、存储介质
CN110740145B (zh) 消息消费方法、装置、存储介质及电子设备
CN109150662B (zh) 消息传输方法、分布式系统、设备、介质和无人车
US20050097226A1 (en) Methods and apparatus for dynamically switching between polling and interrupt to handle network traffic
CN111586140A (zh) 一种数据交互的方法及服务器
CN112333282A (zh) 一种基于混合云的服务提供方法、装置、介质及电子设备
JP4834622B2 (ja) ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム
CN111176577B (zh) 分布式块存储服务命令处理方法、装置、设备及介质
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN116339954A (zh) 进程迁移方法、装置、存储介质及电子设备
CN113590362A (zh) 进程间消息处理方法、装置、电子设备及存储介质
JP4516594B2 (ja) メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム
CN111596864A (zh) 一种数据延时删除的方法、装置、服务器及存储介质
CN112579323A (zh) 一种异构多核的异步通信方法及装置
CN111625344B (zh) 应用系统中的资源调度系统、方法及装置
US6772418B1 (en) Method and system for managing subscriptions using a publisher tree
EP4254207A1 (en) Data processing apparatus and method, and related device
US20120167119A1 (en) Low-latency communications
CN113806035A (zh) 分布式调度方法及业务服务器
CN116662267B (zh) 一种基于云原生的分布式应用快照系统和快照创建方法
JP4089506B2 (ja) ファイル共有システム及びサーバー並びにプログラム
JP2004348715A (ja) サービス管理システム、ならびにそれに用いられる方法、通信機器および集積回路
CN110825529B (zh) 业务消息管理系统及方法
CN116820430B (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
GR01 Patent grant
GR01 Patent grant