CN100570567C - 中断处理方法和装置 - Google Patents

中断处理方法和装置 Download PDF

Info

Publication number
CN100570567C
CN100570567C CNB2006101649965A CN200610164996A CN100570567C CN 100570567 C CN100570567 C CN 100570567C CN B2006101649965 A CNB2006101649965 A CN B2006101649965A CN 200610164996 A CN200610164996 A CN 200610164996A CN 100570567 C CN100570567 C CN 100570567C
Authority
CN
China
Prior art keywords
interruption
operating system
log
message
client
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.)
Active
Application number
CNB2006101649965A
Other languages
English (en)
Other versions
CN101201752A (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CNB2006101649965A priority Critical patent/CN100570567C/zh
Publication of CN101201752A publication Critical patent/CN101201752A/zh
Application granted granted Critical
Publication of CN100570567C publication Critical patent/CN100570567C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了中断处理方法和装置。该中断处理方法,在虚拟机系统中存储多项注册信息,每项注册信息与一中断相对应,且包含对应中断的注册客户操作系统的标识、级别和等待标志;该方法包括步骤:当一中断发生时,向该中断的指定级别的注册客户操作系统分别直接注射中断,并将该中断的未注射注册客户操作系统的等待标志设置为等待状态;当调度到一个客户操作系统运行时,根据虚拟机系统中存储的注册信息中的等待标志确定是否存在需要向该客户操作系统注射的中断,如果存在,则将该中断注射到该客户操作系统,并将该客户操作系统与该中断对应的等待标志设置为初始状态。因此通过将多个注册中断一同写入虚拟中断控制器达到了提高中断处理效率的目的。

Description

中断处理方法和装置
技术领域
本发明涉及中断处理技术,特别涉及中断处理方法和装置。
背景技术
一般而言,在虚拟机环境中,会有多个客户操作系统(Guest OS)同时在运行。当客户操作系统需要硬件设备的服务时,通常需要在中断向量列表中进行注册。当硬件中断发生时,虚拟机监视器(VMM)获得中断向量列表中与该中断对应的所有注册客户操作系统,分别向它们注射该中断并将中断状态写入注册客户操作系统对应的虚拟中断控制器。现有技术中,将中断注射到客户操作系统的操作通常和将中断状态写入客户操作系统的虚拟中断控制器依次进行。所谓向客户操作系统注射中断,是指设置该客户操作系统的虚拟CPU结构的中断域。例如,虚拟CPU的数据结构在一些CPU产品中称为VMCS,该结构中域GUEST_INTERRUPTIBILITY_INFO和VM_ENTRY_INTR_INFO_FIELD是和中断相关的,通过将这两个中断域设置为预定值就可以让客户操作系统知道中断的发生并进行相应的处理。通常系统提供函数vmread/vmwrite用于读/写这个结构的内容。
目前,虚拟机监视器将中断注射到客户操作系统,每次注射中断前都需要进行资源加锁、测试APIC支持,测试虚拟CPU状态等准备工作,经过的过程较长。由于在中断发生时,对所有注册的客户操作系统都要注射中断,当注册的客户操作系统很多时,就会造成中断延时过大,对需要及时处理中断任务的客户操作系统无法提供及时的响应和处理。
发明内容
本发明要解决的一个技术问题是提供一种中断处理方法,通过该方法,可以提高中断的部分注册客户操作系统的中断注射效率。
本发明提供的一种应用于虚拟机系统的中断处理方法,虚拟机系统中存储多项注册信息,每项注册信息与一中断相对应,且包含对应中断的注册客户操作系统的标识、级别和等待标志;
该方法包括如下步骤:
当一个中断发生时,向该中断的指定级别的注册客户操作系统分别直接注射中断,并将该中断的未注射注册客户操作系统的等待标志设置为等待状态;
当调度到一个客户操作系统运行时,根据虚拟机系统中存储的注册信息中的等待标志确定是否存在需要向该客户操作系统注射的中断,如果存在,则将所述中断注射到该客户操作系统,并将该客户操作系统与所述中断对应的等待标志设置为初始状态。
进一步,CPU中包含一中断转换后备缓冲器TLB单元,该中断TLB单元中缓存所有具有指定级别的注册客户操作系统的中断的注册信息;
当一中断发生时,根据中断TLB单元缓存的注册信息确定需要直接注射该中断的指定级别注册客户操作系统,并向确定的注册客户操作系统分别直接注射该中断;并将未注射该中断的注册客户操作系统的等待标志设置为等待状态。
进一步,注册信息还包括注册客户操作系统的写入标志,该方法还包括如下步骤:
当一个中断发生时,将该中断对应的注册信息中的注册客户操作系统的写入标志设置为等待状态;
当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息中的写入标志确定需要向该虚拟中断控制器写入中断状态的中断,将所确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
本发明提供的中断处理方法,当中断发生时,只对指定级别的注册客户操作系统直接注射中断,对于其它的注册客户操作系统的中断注射在调度到该客户操作系统运行时才执行,因此减小了指定级别的注册客户操作系统从中断发生到中断注射的延时,提高了指定级别的注册客户操作系统对中断的注射效率,从而加快了对这些注册客户操作系统中断的处理。
中断TLB单元的采用,进一步提高了对指定级别的注册客户操作系统的中断注射效率。
而将中断状态写入虚拟中断控制器的操作只有在捕获到客户操作系统对虚拟中断控制器的访问时一起进行,减少了对虚拟中断控制器写入的频率,进一步提高了虚拟机系统中断处理的效率。
本发明要解决的另外一个技术问题是提供一种中断处理装置,通过该装置,可以提高中断的部分注册客户操作系统的中断注射效率。
本发明提供的中断处理装置,包括:
注册信息存储模块,用于存储与中断对应的注册信息;注册信息中包含中断号,注册客户操作系统的标识、级别和等待标志;
第一中断注射模块,用于监听发生的中断;当监听到中断发生时,还用于根据注册信息存储模块中的注册信息确定是否存在需要注射该中断的客户操作系统,如果存在,则向确定的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态;
第二中断注射模块,用于监听客户操作系统的调度;还用于当调度到一个客户操作系统运行时,根据注册信息存储模块中的注册信息确定是否存在需要向该客户操作系统注射的中断,如果存在,则将确定的中断注射到该客户操作系统,并将注册信息存储模块中该客户操作系统与注射的中断对应的等待标志设置为初始状态。
进一步,上述注册信息存储模块还可以包括一位于CPU的中断转换后备缓冲器TLB单元,该中断TLB单元中缓存所有具有指定级别的注册客户操作系统的中断的注册信息;
第一中断注射模块用于当监听到中断发生时,根据中断TLB单元缓存的注册信息获得需要注射该中断的客户操作系统,向获得的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态。
进一步,本发明提供的中断处理装置还可以包括中断状态写入模块;上述注册信息存储模块存储的注册信息还包括注册客户操作系统的写入标志;上述第一中断注射模块还用于当监听到中断发生时,将注册信息存储模块中该中断的注册客户操作系统的写入标志设置为等待状态;
中断状态写入模块用于截获客户操作系统对虚拟中断控制器的访问,从注册信息存储模块储获得需要向该虚拟中断控制器写入中断状态的中断,将中断的中断状态写入该虚拟中断控制器,并将注册信息存储模块中该客户操作系统的对应写入标志设为初始状态。
本发明提供的中断处理装置,注册信息存储模块中存储中断的注册客户操作系统级别信息,第一中断注射模块根据注册客户操作系统的级别,在接收到中断时直接注射中断的指定级别的注册客户操作系统,而其它客户操作系统的中断在调度到该客户操作系统运行时由第二中断注射模块注射,从而加快对指定级别的注册客户操作系统的的中断注射的效率。
中断TLB单元的设置,可以进一步加快对指定级别的注册客户操作系统的的中断注射。
而中断状态写入模块的设置,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器的时候一同写入虚拟中断控制器,提高中断处理的效率,进一步提高了虚拟机系统中断处理的整体性能。
本发明要解决的另外一个技术问题是提供一种中断处理方法,通过该方法,可以提高虚拟机系统中断处理的整体效率。
本发明提供的一种中断处理方法,应用于虚拟机系统。该方法在系统中存储多项注册信息,每项注册信息与一中断相对应,且包含对应中断的注册客户操作系统的标识和写入标志;该方法包括如下步骤:
当一中断发生时,将该中断的注册客户操作系统的写入标志设置为等待状态;
当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息确定需要向该虚拟中断控制器写入中断状态的中断,将所确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
本发明提供的中断处理方法,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器的时一起写入虚拟中断控制器,提高了虚拟机系统中断处理的整体效率。
本发明要解决的另外一个技术问题是提供一种中断处理装置,通过该装置,可以提高虚拟机系统中断处理的整体效率。
本发明提供的一种中断处理装置,应用于虚拟机系统,包括:
注册信息存储模块,用于存储与中断对应的注册信息,注册信息中包含一中断号,注册客户操作系统的标识和写入标志;
中断监听模块,用于监听产生的中断,当监听到中断产生时,还用于查找注册信息存储模块中与该中断对应的注册信息,并将对应注册信息中注册客户操作系统的写入标志设置为等待状态;
中断状态写入模块,用于监听客户操作系统对虚拟中断控制器的访问,当监听到访问发生时,根据注册信息存储模块存储的注册信息查询需要将中断状态写入该虚拟中断控制器的中断,并将查询获得的中断的中断状态写入该虚拟中断控制器,并将该客户操作系统在注册信息存储模块中的对应写入标志设置为初始状态。
本发明的中断处理装置,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器的时一同写入虚拟中断控制器,提高中断处理的效率,并进一步提高了虚拟机系统中断处理的整体性能。
附图说明
图1所示为本发明的一种中断处理方法的流程图;
图2所示为本发明的另一种中断处理方法的流程图;
图3所示为包含本发明提供的一种中断处理装置的虚拟机系统的结构示意图;
图4所示为包含本发明提供的另一种中断处理装置的虚拟机系统的结构示意图。
具体实施方式
在下面的描述中,将对一个中断注册了服务请求的客户操作系统称为该中断的注册客户操作系统,并称该中断为该客户操作系统的注册中断。
本发明提供的中断处理方法,首先在虚拟机系统中存储多项注册信息。每项注册信息分别与一个中断相对应,且每项注册信息包含对应中断的注册客户操作系统的标识、级别和等待标志。具体的实现时,可以用一个中断描述符(Interrupt descriptor)来存储一项注册信息。每个中断描述符中包含一个中断号,以及对应中断的注册客户操作系统的标识、级别和等待标志信息。根据中断描述符中的中断号可以确定该中断描述符对应的中断,中断描述符中注册客户操作系统的级别用来表明其需要注射中断的优先级,而客户操作系统的等待标志用来表明该客户操作系统是否已经注射该中断。
中断描述符可以通过下面的数据结构实现:
{
  IRQ,
  Domain_1,level_1,pending_flag_1,
  ......
  Domain_n,level_n,pending_flag_n
}
其中,IRQ为中断描述符包含的中断号,domain_i为第i个注册客户操作系统的标识,level_i为第i个注册客户操作系统的级别,pending_flag_i为第i个注册客户操作系统的等待标志(i=1,...,n)。
或者,中断描述符可以通过如下的数据结构实现:
{
  IRQ,
  Pending_flag_mask,
  Level_mask_1,
  ......
  Level_mask_n
}
其中,IRQ为中断描述符包含的中断号,pending_flag_mask为等待标志掩码,level_mask_i为注册客户操作系统对应于i级别的级别掩码(i=1,...,n)。其中,虚拟机系统的每一个客户操作系统在每个级别掩码中有一个对应的比特位;在等待标志掩码内也有一个对应的比特位。级别掩码的个数和注册客户操作系统的级别数相同。
级别掩码和等待标志掩码的比特位的个数可以根据虚拟机系统中包含的客户操作系统的个数确定的。根据虚拟机系统中客户操作系统的个数,每一个级别掩码和等待标志掩码可能分别需要1个、2个或者n个字节来表示。
级别掩码的各个比特位通常处于初始状态,当一个客户操作系统是一中断的级别为m的注册客户操作系统时,则该中断对应的中断描述符中m级别掩码中的该客户操作系统的对应比特位设为注册状态,而其它级别掩码中与该客户操作系统的对应比特位仍保持初始状态。等待掩码的各个比特位通常处于初始状态,并在需要对其对应的客户操作系统注射中断时,将其更改为等待状态。
本发明提供的中断处理方法,需要预先指定中断发生时可以优先注射中断的注册客户操作系统的级别。例如可以设定优先注射最高级别的注册客户操作系统。而指定的优先注射级别可以包括一个级别,也可以包含多个级别。
如图1所示,本发明的中断处理方法还包括如下步骤:
步骤101,当一中断发生时,向该中断的指定级别的注册客户操作系统分别注射中断,并将该中断的未注射注册客户操作系统的等待标志设置为等待状态。
当一中断发生时,虚拟机监视器根据该中断的中断号获得对应的中断描述符,并从该中断描述符中获得所有的注册客户操作系统的标识、级别和等待标志等信息。对于该中断的指定级别的注册客户操作系统,分别向其直接注射该中断。对于该中断的没有直接注射该中断的注册客户操作系统,将其在该中断描述符中的等待标志设置为等待状态,以表明这些客户操作系统尚未注射该中断。
步骤102,当调度到一客户操作系统运行时,根据虚拟机系统中存储的注册信息中的等待标志确定是否存在需要向该客户操作系统注射的中断,如果存在需要向该客户操作系统注射的中断,则将这些中断注射到该客户操作系统,并将该客户操作系统与这些中断对应的等待标志设置为初始状态。
当调度到一客户操作系统运行时,遍历虚拟机系统中存储的所有中断描述符,查询该客户操作系统在中断描述符中的等待标志是否为等待状态,如果是,则表明该中断描述符对应的中断是需要向该客户操作系统注射的中断。对于这些中断,可以将它们全部注射到该客户操作系统,将该客户操作系统在注射中断对应的中断描述符中的等待标志设置为初始状态。
通过上述的步骤,当中断发生时,只对指定级别的注册客户操作系统直接注射中断,对于其它的注册客户操作系统的中断注射在调度到该客户操作系统运行时才执行,因此减小了指定级别的注册客户操作系统从中断发生到中断注射的延时,提高了指定级别的注册客户操作系统对中断的注射效率,从而加快了对这些注册客户操作系统中断的处理。
为了进一步提高指定级别的注册客户操作系统对中断的注射效率,可以在CPU中增加一个中断转换后备缓冲器(TLB)单元,该中断TLB单元中缓存所有含有指定级别的注册客户操作系统的中断描述符。对应于步骤101,当一中断发生时,CPU直接从中断TLB单元缓存的中断描述符中,根据中断号查询匹配的中断描述符,即包含匹配中断号的中断描述符,然后对匹配中断描述符中指定级别的注册客户操作系统直接注射该中断,并将该中断描述符中未注射中断的注册客户操作系统的等待标志设置为等待状态。如果在中断TLB单元中缓存的中断描述符中没有查询到匹配的中断描述符,则继续从虚拟机系统中存储的中断描述符中查询匹配的中断描述符,并将查询到的匹配中断描述符中注册客户操作系统的等待标志设置为等待状态,在执行步骤102时,对这些未注射中断的注册客户操作系统注射该中断。
现有技术中,将中断状态写入虚拟中断控制器通常在注射中断时进行。本发明提供的一种实现方式,将虚拟中断控制器的属性定义为写访问(Writeon Access),只有客户操作系统对虚拟中断控制器进行I/O访问时,虚拟机监视器才进行写虚拟中断控制器操作。下面对本发明的将中断状态写入虚拟中断控制器的实现进行具体的描述。
如图2所示,本发明提供的另一种中断处理方法的流程图。
首先与中断对应的注册信息中包括注册客户操作系统的写入标志,该写入标志开始处于初始状态。该方法包括如下步骤:
步骤201,当一中断发生时,将存储在虚拟机系统中该中断的中断描述符中所有注册客户操作系统的写入标志设置为等待状态。将写入标志置为等待状态,可以在注射中断发生前进行,也可以在对需要直接注射中断的注册客户操作系统注射中断后进行。
步骤202,当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息中的写入标志确定需要向该虚拟中断控制器写入中断状态的中断,将确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
当客户操作系统对虚拟中断控制器进行I/O访问时,被虚拟机监视器截获。虚拟机监视器遍历系统中存储的各个中断描述符,查询该客户操作系统的注册中断中该客户操作系统的写入标志为等待状态的中断,这些中断就是需要将其中断状态写入该客户操作系统的虚拟中断控制器的中断。将这些中断的中断状态写入虚拟中断控制器,并将对应中断描述符中该客户操作系统的写入标志设置为初始状态。
通过上述中断处理方法,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器时一起写入虚拟中断控制器,提高了虚拟机系统中断处理的效率。
需要指出的是,图1所示的本发明提供的中断处理方法和图2所示的本发明提供的中断处理方法,可以结合在一起作为一种中断处理方法使用。相应的,虚拟机系统中存储的每项注册信息包含对应中断的注册客户操作系统的标识、级别、等待标志和写入标志。
结合后的中断处理方法包括如下步骤:
步骤A,在中断发生时,向该中断的指定级别的注册客户操作系统分别注射中断,将该中断的未注射注册客户操作系统的等待标志设置为等待状态;将该中断的所有注册客户操作系统的写入标志设置为等待状态。
步骤B,当调度到一客户操作系统运行时,根据虚拟机系统中存储的注册信息中的等待标志确定需要向该客户操作系统注射的中断,如果存在需要向该客户操作系统注射的中断,则将这些中断注射到该客户操作系统,并将该客户操作系统的对应等待标志设置为初始状态。
步骤C,当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息中的写入标志确定需要向该虚拟中断控制器写入中断状态的中断,将确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
进一步,在将一中断描述符中一个注册客户操作系统的写入标志设置为初始状态后,虚拟机监视器还可以检查所述中断的注册信息中该客户操作系统的等待标志是否为初始状态,如果是,则说明已经完成了对该客户操作系统关于该中断的注射和中断状态写入操作,在客户操作系统对该中断进行处理后,对该中断进行中断应答,即对虚拟中断控制器写入中断结束(EOI)指令。
虚拟机监视器还可以根据是否存在已注射的中断来调度客户操作系统的运行。即当一个客户操作系统存在已经注射的中断时,虚拟机监视器可以优先调度该客户操作系统运行,以及时对该中断进行处理。
本发明提供的上述的中断处理方法,中断的注册客户操作系统具有不同的级别,并在中断发生时根据注册客户操作系统的级别决定直接注射中断的客户操作系统,从而指定级别的注册客户操作系统可以获得更快的中断注射。而将中断状态写入虚拟中断控制器的操作只有在捕获到客户操作系统对虚拟中断控制器的访问时一起进行,减少了对虚拟中断控制器写入的频率,进一步提高了虚拟机系统中断处理的效率。
如图3所示,本发明提供的一种应用于虚拟机系统的中断处理装置,包括如下模块:
注册信息存储模块,用于存储与中断对应的注册信息。注册信息中包含一中断号,注册客户操作系统的标识、级别和等待标志。其中,根据注册信息中的中断号可以确定该注册信息和中断的对应关系,注册信息中注册客户操作系统的级别用来表明其需要注射中断的优先级,而客户操作系统的等待标志用来表明该客户操作系统是否已经注射该中断。
第一中断注射模块,用于监听发生的中断,还用于当监听到中断发生时,根据注册信息存储模块中存储的注册信息获得该中断的注册信息,进一步获得需要注射该中断的客户操作系统,即该中断的指定级别的注册客户操作系统,向获得的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态;
第二中断注射模块,用于监听客户操作系统的调度,还用于当调度到一个客户操作系统运行时,从注册信息存储模块查询包含该客户操作系统为注册客户操作系统、且等待标志为等待状态的各项注册信息,从而确定是否存在需要向该客户操作系统注射的中断。如果存在满足条件的中断,则将确定的中断注射到该客户操作系统,并将注册信息存储模块中该客户操作系统与注射的中断对应的等待标志设置为初始状态。
进一步,注册信息存储模块还可以包括一位于CPU的中断转换后备缓冲器TLB单元,该中断TLB单元中缓存所有具有指定级别的注册客户操作系统的中断的注册信息。
在包含中断TLB单元的情况下,第一中断注射模块用于当监听到中断发生时,根据中断TLB单元缓存的注册信息获得需要注射该中断的客户操作系统,向获得的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态。
本发明提供的中断处理装置还可以包括中断状态写入模块。注册信息存储模块存储的注册信息中还包括注册客户操作系统的写入标志。
第一中断注射模块还用于在监听到中断发生时,将注册信息存储模块中该中断的注册客户操作系统的写入标志设置为等待状态。
中断状态写入模块用于截获客户操作系统对虚拟中断控制器的访问,从注册信息存储模块获得需要向该虚拟中断控制器写入中断状态的中断,即包含该客户操作系统为注册客户操作系统且其写入标志为等待状态的注册信息对应的中断。将中断的中断状态写入该虚拟中断控制器,并将注册信息存储模块中该客户操作系统的对应写入标志设为初始状态。
本发明提供的中断处理装置还可以进一步包括中断应答模块。中断应答模块用于监测注册信息存储模块中客户操作系统的写入标志和等待标志的状态,如果监测到一客户操作系统对应于一中断的写入标志和等待标志都被置为初始状态,对中断进行处理,并在处理结束后进行中断应答。
本发明提供的中断处理装置,注册信息存储模块中存储中断的注册客户操作系统级别信息,第一中断注射模块根据注册客户操作系统的级别决定接收到中断时直接注射中断的注册客户操作系统并注射中断,而其它客户操作系统的中断在调度到该客户操作系统运行时由第二中断注射模块注射,从而加快对指定级别的注册客户操作系统的的中断注射的效率。而中断TLB单元的设置,可以进一步加快对指定级别的注册客户操作系统的的中断注射。而中断状态写入模块的设置,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器的时候一同写入虚拟中断控制器,提高中断处理的效率,进一步提高了虚拟机系统中断处理的整体性能。
本发明还提供另一种中断处理装置,可以应用于虚拟机系统,包括注册信息存储模块、中断监听模块和中断状态写入模块。
注册信息存储模块,用于存储与中断对应的注册信息,注册信息中包含一中断号,注册客户操作系统的标识和写入标志。其中,根据注册信息中的中断号可以确定该注册信息和中断的对应关系,客户操作系统的写入标志用来表明是否已经将该中断状态写入该客户操作系统对应的虚拟中断控制器。
中断监听模块,用于监听产生的中断,当监听到中断产生时,还用于查找注册信息存储模块中与该中断对应的注册信息,并将对应注册信息中注册客户操作系统的写入标志设置为等待状态。
中断状态写入模块,用于监听客户操作系统对虚拟中断控制器的访问,当监听到访问发生时,遍历注册信息存储模块存储的注册信息,查询包含该客户操作系统的标识、且该客户操作系统的写入标志为等待状态的注册信息,然后将满足条件的注册信息对应的中断的中断状态写入该客户操作系统的虚拟中断控制器,同时将该客户操作系统在注册信息存储模块中的对应写入标志设置为初始状态。
通过上述中断处理装置,可以将一客户操作系统的多个注册中断在客户操作系统访问虚拟中断控制器的时一同写入虚拟中断控制器,提高中断处理的效率,并进一步提高了虚拟机系统中断处理的整体性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (11)

1.一种中断处理方法,应用于虚拟机系统,其特征在于,虚拟机系统中存储多项注册信息,每项注册信息与一个中断相对应,且包含对应中断的注册客户操作系统的标识、级别和等待标志;
该方法包括如下步骤:
当一个中断发生时,向该中断的指定级别的注册客户操作系统分别直接注射中断,并将该中断的未注射注册客户操作系统的等待标志设置为等待状态;
当调度到一个客户操作系统运行时,根据虚拟机系统中存储的注册信息中的等待标志确定是否存在需要向该客户操作系统注射的中断,如果存在,则将所述中断注射到该客户操作系统,并将该客户操作系统与所述中断对应的等待标志设置为初始状态。
2.如权利要求1所述的方法,其特征在于,虚拟机系统的CPU中包含一个中断转换后备缓冲器TLB单元,该中断TLB单元中缓存所有具有指定级别的注册客户操作系统的中断的注册信息;
当一中断发生时,所述向该中断的指定级别的注册客户操作系统分别直接注射中断为:根据中断TLB单元缓存的注册信息确定需要直接注射该中断的指定级别的注册客户操作系统,并向所确定的注册客户操作系统分别直接注射该中断。
3.如权利要求1或2所述的方法,其特征在于,所述注册信息还包括注册客户操作系统的写入标志,该方法还包括如下步骤:
当一个中断发生时,将该中断对应的注册信息中的注册客户操作系统的写入标志设置为等待状态;
当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息中的写入标志确定需要向该虚拟中断控制器写入中断状态的中断,将所确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
4.如权利要求3所述的方法,其特征在于,还包括如下步骤:
检查所述中断的注册信息中该客户操作系统的等待标志和写入标志是否都为初始状态,如果是,则对所述中断进行处理和中断应答。
5.如权利要求1或2所述的方法,其特征在于,还包括如下步骤:虚拟机监视器在调度客户操作系统的运行时,优先调度存在已注射的中断的客户操作系统。
6.一种中断处理装置,应用于虚拟机系统,其特征在于,包括:
注册信息存储模块,用于存储与中断对应的注册信息;注册信息中包含中断号,注册客户操作系统的标识、级别和等待标志;
第一中断注射模块,用于监听发生的中断;当监听到中断发生时,还用于根据注册信息存储模块中的注册信息确定是否存在需要注射该中断的客户操作系统,如果存在,则向确定的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态;
第二中断注射模块,用于监听客户操作系统的调度;还用于当调度到一个客户操作系统运行时,根据注册信息存储模块中的注册信息确定是否存在需要向该客户操作系统注射的中断,如果存在,则将确定的中断注射到该客户操作系统,并将注册信息存储模块中该客户操作系统与注射的中断对应的等待标志设置为初始状态。
7.如权利要求6所述的中断处理装置,其特征在于,所述注册信息存储模块还包括一位于CPU的中断转换后备缓冲器TLB单元,该中断TLB单元中缓存所有具有指定级别的注册客户操作系统的中断的注册信息;
第一中断注射模块用于当监听到中断发生时,根据中断TLB单元缓存的注册信息获得需要注射该中断的客户操作系统,向获得的客户操作系统注射该中断,并将注册信息存储模块中没有注射该中断的注册客户操作系统的对应等待标志设置为等待状态。
8.如权利要求6或7所述的中断处理装置,其特征在于,还包括中断状态写入模块;
所述注册信息存储模块存储的注册信息还包括注册客户操作系统的写入标志;
所述第一中断注射模块还用于当监听到中断发生时,将注册信息存储模块中该中断的注册客户操作系统的写入标志设置为等待状态;
所述中断状态写入模块用于截获客户操作系统对虚拟中断控制器的访问,根据注册信息存储模块中的注册信息确定需要向该虚拟中断控制器写入中断状态的中断,将中断的中断状态写入该虚拟中断控制器,并将注册信息存储模块中该客户操作系统的对应写入标志设为初始状态。
9.如权利要求8所述的中断处理装置,其特征在于,还包括中断应答模块,所述中断应答模块用于监测注册信息存储模块中客户操作系统的写入标志和等待标志的状态,如果监测到一客户操作系统对应于一中断的写入标志和等待标志都被置为初始状态,则对所述中断进行处理和中断应答。
10.一种中断处理方法,应用于虚拟机系统,其特征在于,虚拟机系统中存储多项注册信息,每项注册信息与一个中断相对应,且包含对应中断的注册客户操作系统的标识和写入标志;该方法包括如下步骤:
当一中断发生时,将该中断的注册客户操作系统的写入标志设置为等待状态;
当截获到客户操作系统对虚拟中断控制器的访问时,根据虚拟机系统存储的注册信息确定需要向该虚拟中断控制器写入中断状态的中断,将所确定的中断的中断状态写入该虚拟中断控制器,并将该中断的注册信息中该客户操作系统的写入标志设为初始状态。
11.一种中断处理装置,应用于虚拟机系统,其特征在于,包括:
注册信息存储模块,用于存储与中断对应的注册信息,注册信息中包含中断号、注册客户操作系统的标识和写入标志;
中断监听模块,用于监听产生的中断,当监听到中断产生时,还用于查找注册信息存储模块中与该中断对应的注册信息,并将对应注册信息中注册客户操作系统的写入标志设置为等待状态;
中断状态写入模块,用于监听客户操作系统对虚拟中断控制器的访问,当监听到访问发生时,根据注册信息存储模块存储的注册信息查询需要将中断状态写入该虚拟中断控制器的中断,将对应的中断状态写入该虚拟中断控制器,并将该客户操作系统在注册信息存储模块中的对应写入标志设置为初始状态。
CNB2006101649965A 2006-12-11 2006-12-11 中断处理方法和装置 Active CN100570567C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101649965A CN100570567C (zh) 2006-12-11 2006-12-11 中断处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101649965A CN100570567C (zh) 2006-12-11 2006-12-11 中断处理方法和装置

Publications (2)

Publication Number Publication Date
CN101201752A CN101201752A (zh) 2008-06-18
CN100570567C true CN100570567C (zh) 2009-12-16

Family

ID=39516926

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101649965A Active CN100570567C (zh) 2006-12-11 2006-12-11 中断处理方法和装置

Country Status (1)

Country Link
CN (1) CN100570567C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335222B (zh) * 2014-06-04 2019-03-19 华为技术有限公司 中断信息的处理方法、虚拟机监控器及中断控制器
CN110399324A (zh) * 2019-06-28 2019-11-01 苏州浪潮智能科技有限公司 中断转换器及中断转换方法

Also Published As

Publication number Publication date
CN101201752A (zh) 2008-06-18

Similar Documents

Publication Publication Date Title
US9594521B2 (en) Scheduling of data migration
US7657694B2 (en) Handling access requests in a data processing apparatus
EP3376380B1 (en) Architecture and method for managing interrupts in a virtualized environment
US7823131B2 (en) Debugger for a hardware-implemented operating system
JP5737050B2 (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
WO2020244369A1 (zh) 进程间通信的方法、装置以及计算机设备
US20140379956A1 (en) Managing a translation lookaside buffer
US10922153B2 (en) Communication method and device for virtual base stations
CN101859258A (zh) 系统管理模式处理器间中断重定向
JPH0658650B2 (ja) 仮想計算機システム
CN101681269A (zh) 多虚拟化技术的自适应动态选择与应用
EP4195020A1 (en) Computer device, abnormality processing method and interrupt processing method
US20160224484A1 (en) Transmitting inter-processor interrupt messages by privileged virtual machine functions
US10089247B2 (en) System and method for coupling a host device to secure and non-secure devices
US9898307B2 (en) Starting application processors of a virtual machine
US9921875B2 (en) Zero copy memory reclaim for applications using memory offlining
JPH0594317A (ja) 仮想計算機の入出力割り込み処理方式
CN100570567C (zh) 中断处理方法和装置
US20140244951A1 (en) Live snapshotting of multiple virtual disks in networked systems
WO2024007934A1 (zh) 中断处理方法、电子设备和存储介质
US9098461B2 (en) Live snapshots of multiple virtual disks
US20150212841A1 (en) Delayed population of advanced configuration and power interface (acpi) tables by hypervisor
US9852100B2 (en) Guest-programmable location of advanced configuration and power interface (ACPI) tables in virtualized systems
US11650747B2 (en) High throughput memory page reclamation
CN112559120B (zh) 定制化pcie总线io虚拟化支撑方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant