CN107436797A - 一种基于虚拟化环境的指令数据处理方法及装置 - Google Patents
一种基于虚拟化环境的指令数据处理方法及装置 Download PDFInfo
- Publication number
- CN107436797A CN107436797A CN201710693445.6A CN201710693445A CN107436797A CN 107436797 A CN107436797 A CN 107436797A CN 201710693445 A CN201710693445 A CN 201710693445A CN 107436797 A CN107436797 A CN 107436797A
- Authority
- CN
- China
- Prior art keywords
- director data
- shared drive
- director
- processing
- thread
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于虚拟化环境的指令数据处理方法,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。可见,与现有技术中处理线程一直轮询共享内存的方式相比,在本方案中则需要在共享内存中的指令数据满足预定条件之后,才会触发处理线程对指令数据进行处理,在保证了系统性能的基础上,减少了CPU的开销,从而避免系统出现卡顿现象,增加用户体验;本发明还公开了一种基于虚拟化环境的指令数据处理装置,同样能实现上述技术效果。
Description
技术领域
本发明涉及数据处理技术领域,更具体地说,涉及一种基于虚拟化环境的指令数据处理方法及装置。
背景技术
随着服务器和网络的发展,桌面虚拟化技术的应用越来越广泛,但是,在推广过程中,虚拟化技术也带来了新的问题。大量办公环境和娱乐场所都需要用到3D的软件,无论是设计行业的Autocad,Solidworks还是娱乐游戏的CS、Dota2等都是3D软件,3D软件都离不开3D渲染技术,渲染可以有多种方法实现,但是实现后,要让3D软件运行时达到同等配置个人电脑的效果是比较困难的。当前3D渲染,在虚拟机内使用的都是OpenGL,OpenGL在绘图时有大量的函数调用,这些函数有如下两种:①只需要执行完成,无返回值的。②执行完成后,需要得到返回值的。这些作为指令的OpenGL函数和参数会被虚拟机内的应用程序打包为消息,写入到共享内存,然后宿主机的Host_Render进程从共享内存读取消息,解释后让显卡硬件处理这些指令和参数。如果有返回值,宿主机的Host_Render进程将函数返回值写回共享内存。最后Qemu会从共享内存读取返回值,返回给OpenGL。
在该过程中,中断通知的时间远大于函数本身的执行,例如函数执行只需要1ms,中断可能需要50甚至更多倍的时间,不能很好的控制包的粒度,即不能确定数据什么时候发往Host-Render,这样,Host_Render进程需要一直通过轮询的方法来确认是否有消息写入了共享内存,同样虚拟机内部的应用程序也需要一直通过轮询的方式来确认共享内容中是否存在处理结果。这样两边都轮询的方式对cpu浪费比较严重,因为在不绘图的时候,两边的cpu也一直在轮询。
因此,如何减少CPU消耗,避免系统出现卡顿现象是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种基于虚拟化环境的指令数据处理方法及装置,以实现减少CPU消耗,避免系统出现卡顿现象,增加用户体验。
为实现上述目的,本发明实施例提供了如下技术方案:
一种基于虚拟化环境的指令数据处理方法,包括:
接收虚拟机发送的指令数据;
将所述指令数据存入第一共享内存;
判断所述第一共享内存存储的指令数据是否满足预定条件;
若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中,是否存在需要返回值的指令数据;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
确定所述第一共享内存存储的指令数据中的最长存储时长;
判断所述最长存储时长是否超过第三预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
其中,所述通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,还包括:
触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
若在所述第二共享内存内检测到处理结果,则将所述处理结果发送至虚拟机。
一种基于虚拟化环境的指令数据处理装置,包括:
接收模块,用于接收虚拟机发送的指令数据;
存储模块,用于将所述指令数据存入第一共享内存;
判断模块,用于判断所述第一共享内存存储的指令数据是否满足预定条件;
指令数据处理模块,用于在所述第一共享内存存储的指令数据满足预定条件时,调用处理线程对所述第一共享内存存储的指令数据进行处理。
其中,所述判断模块包括:
第一判断单元,用于判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则触发所述指令数据处理模块。
其中,所述判断模块包括:
第二判断单元,用于判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则触发所述指令数据处理模块。
其中,所述判断模块包括:
第三判断单元,用于判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则触发所述指令数据处理模块。
其中,所述判断模块包括:
确定单元,用于确定所述第一共享内存存储的指令数据中的最长存储时长;
第四判断单元,用于判断所述最长存储时长是否超过第三预定阈值;若是,则触发所述指令数据处理模块。
其中,所述指令数据处理模块,具体用于:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
其中,指令数据处理装置还包括:
处理结果检测模块,用于在所述指令数据处理模块通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
处理结果发送模块,用于在所述第二共享内存内检测到处理结果时,将所述处理结果发送至虚拟机。
通过以上方案可知,本发明实施例提供的一种基于虚拟化环境的指令数据处理方法,包括:接收虚拟机发送的指令数据;将所述指令数据存入第一共享内存;判断所述第一共享内存存储的指令数据是否满足预定条件;若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
可见,与现有技术中处理线程一直轮询共享内存的方式相比,在本方案中则需要在共享内存中的指令数据满足预定条件之后,才会触发处理线程对指令数据进行处理,在保证了系统性能的基础上,减少了CPU的开销,从而避免系统出现卡顿现象,增加用户体验;本发明还公开了一种基于虚拟化环境的指令数据处理装置,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于虚拟化环境的指令数据处理方法流程示意图;
图2为本发明实施例公开的另一种基于虚拟化环境的指令数据处理方法流程示意图;
图3为本发明实施例公开的另一种基于虚拟化环境的指令数据处理方法流程示意图;
图4为本发明实施例公开的一种具体的指令数据处理方法流程示意图;
图5为本发明实施例公开的一种基于虚拟化环境的指令数据处理装置结构示意图;
图6为本发明实施例公开的一种基于虚拟化环境的指令数据处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种基于虚拟化环境的指令数据处理方法及装置,以实现减少CPU消耗,避免系统出现卡顿现象,增加用户体验。
参见图1,本发明实施例提供的一种基于虚拟化环境的指令数据处理方法,包括:
S101、接收虚拟机发送的指令数据;
S102、将所述指令数据存入第一共享内存;
在本实施例中,2D、3D绘图软件运行在虚拟机中,当需要重绘图片的时候,就会调用OpenGL或者其它绘图的接口,将指令数据打包后写入共享内存中;需要说明的是,本实施例中的指令数据包括OpenGL函数指令和参数,OpenGL函数指令包括两种,一种是只需要执行完成,无返回值的;另一种是执行完成后,需要得到返回值的。需要说明的是,指令数据中的指令并不局限于OpenGL函数指令,还可以是其他指令集,例如:Direct X、VulKan等指令均可。
S103、判断所述第一共享内存存储的指令数据是否满足预定条件;
若是,则执行S104,若否,则继续执行S103;
需要说明的是,本实施例中的预定条件是根据指令数据的数量、类型、数据量、时间等条件设置的,通过事先对不同条件的设定,便可针对不同情况多方位的处理共享内存中的指令数据,避免出现数据处理延时的现象。
S104、调用处理线程对所述第一共享内存存储的指令数据进行处理。
具体的,在本实施例中的处理线程与现有技术方案中的处理线程不同的地方在于,现有技术方案中的线程需要一直轮询共享内存中是否存在虚拟机发送的指令数据,以及需要一直轮询是否存在处理结果,因此会消耗CPU,造成系统卡顿。而本方案中的处理线程不需要一直轮询共享内存,因为在本方案中,可以通过对共享内存中的数据进行检测,来判断是否需要触发处理线程对指令数据进行处理,从而在虚拟机不发送指令数据时不需要启动处理线程轮询数据,减少了无用的开销,保证虚拟机正常流畅的运行2D、3D绘图软件。
参见图2,本发明实施例提供的另一种基于虚拟化环境的指令数据处理方法,在本实施例中,针对指令数据的数量、类型、数据量、时间对预定条件进行说明,具体包括:
S201、接收虚拟机发送的指令数据;
S202、将所述指令数据存入第一共享内存;
S203、判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则执行S208,若否,则继续执行S204;
S204、判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则执行S208,若否,则继续执行S205;
S205、判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则执行S208,若否,则继续执行S206;
S206、确定所述第一共享内存存储的指令数据中的最长存储时长;
S207、判断所述最长存储时长是否超过第三预定阈值;
若是,则执行S208,若否,则继续执行S203;
S208、调用处理线程对所述第一共享内存存储的指令数据进行处理。
需要说明的是,S203是针对指令数据的数量所设置的条件,这里的第一预定阈值为第一共享内存中存储的指令数据数量的最大值,若检测到第一共享内存中存储的指令数据的数量大于第一预定阈值,这时便需要调用处理线程对第一共享内存中的指令数据进行处理。S204是针对指令数据的类型所设置的条件,在本实施例中的指令数据的类型包括:需要返回值的指令数据,以及不需要返回值的指令数据;若在S204中检测到第一共享内存中存在需要返回值的指令数据,这时便调用处理线程对第一共享内存中的指令数据进行处理,避免对用户操作造成延时影响。
S205是针对指令数据的总数据量所设置的条件,这里的第二预定阈值为第一共享内存中存储的指令数据的数据量的最大值,若检测到第一共享内存中存储的指令数据的数据量大于该第二预定阈值,这时便需要调用处理线程对第一共享内存中的指令数据进行处理。S206-S207是针对指令数据的存储时长所设置的条件,第三预定阈值是存储指令数据的最大时长,若检测到最长存储时长大于第三预定阈值,则调用处理线程对第一共享内存中的指令数据进行处理,避免由于指令数据的减少而造成指令数据处理超时,对用户操作造成影响。
可以理解的是,在本实施例中的S203、S204、S205、S206-S207这四个判断条件的执行顺序并不局限于本实施例中的顺序,在对指令数据进行判断时,可以以任意顺序对指令数据进行判断,在本实施例中仅通过这种顺序对本方案进行描述。
参见图3,本发明实施例提供的另一种基于虚拟化环境的指令数据处理方法,在本实施例中,对S104进行说明,具体包括:
S301、接收虚拟机发送的指令数据;
S302、将所述指令数据存入第一共享内存;
S303、判断所述第一共享内存存储的指令数据是否满足预定条件;
若是,则执行S304,若否,则继续执行S303;
S304、通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据;
S305、触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;若在所述第二共享内存内检测到处理结果,则将所述处理结果发送至虚拟机。
具体的,在本实施例中,判定第一共享内存中的指令数据满足预定条件后,会调用处理线程对指令数据进行处理,具体包括:通过第一处理线程读取第一共享内存中的指令数据,并调用显卡硬件对指令数据进行处理,并将处理结果写入第二共享内存;以及通过第二处理线程轮询第二共享内存中是否存在处理结果。
可以理解的是,本实施例中的第二处理线程可以在通过中断加速机制触发第一处理线程读取第一共享内存中存储的指令数据之后,便开始轮询第二共享内存中是否存在处理结果,也可以是在第一处理线程读取第一共享内存中存储的指令数据的时候,首先判断在该指令数据中是否存在需要返回结果的指令数据;若存在,则触发第二处理线程轮询第二共享内存,若不存在,则可以不触发第二处理线程进行轮询。
参见图4,为本实施例提供的一种具体的指令数据处理方法流程图,在本实施例中,若虚拟机窗口图像需要重画时,在通过虚拟机打包模块将指令和参数数据打包,作为指令数据通过虚拟机内的应用程序写入第一共享内存,并判断写入的指令数据是否满足策略,该策略即为本实施例提供的预定条件;若满足,则使用中断的方式通知host上的第一处理线程Host-Render程序,同时调用第二处理线程,即虚拟机内的应用程序开始轮询第二共享内存,等待指令执行的返回结果;中断的通知采用虚拟化平台的中断加速机制,如kvm的IOeventfd机制。
第一处理线程Host_Render读取第一共享内存的指令和参数数据,并调用本地接口,例如OpenGL,通过显卡硬件处理指令数据中的指令和参数。若存在处理结果,则Host_Render调用显卡硬件处理完这些指令和数据后,就将返回结果写入到第二共享内存。若虚拟机内的应用程序轮询第二共享内存发现处理结果,则读取返回结果,并将返回结果转给虚拟机的绘图软件,进行渲染显示结果。
下面对本发明实施例提供的指令数据处理装置进行介绍,下文描述的指令数据处理装置与上文描述的指令数据处理方法可以相互参照。
参见图5,本发明实施例提供的一种基于虚拟化环境的指令数据处理装置,包括:
接收模块100,用于接收虚拟机发送的指令数据;
存储模块200,用于将所述指令数据存入第一共享内存;
判断模块300,用于判断所述第一共享内存存储的指令数据是否满足预定条件;
指令数据处理模块400,用于在所述第一共享内存存储的指令数据满足预定条件时,调用处理线程对所述第一共享内存存储的指令数据进行处理。
基于上述实施例,所述判断模块300包括:
第一判断单元,用于判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则触发所述指令数据处理模块。
基于上述实施例,所述判断模块300包括:
第二判断单元,用于判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则触发所述指令数据处理模块。
基于上述实施例,所述判断模块300包括:
第三判断单元,用于判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则触发所述指令数据处理模块。
基于上述实施例,所述判断模块300包括:
确定单元,用于确定所述第一共享内存存储的指令数据中的最长存储时长;
第四判断单元,用于判断所述最长存储时长是否超过第三预定阈值;若是,则触发所述指令数据处理模块。
基于上述任意实施例,所述指令数据处理模块400,具体用于:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
参见图6,在本实施例中,指令数据处理装置还包括:
处理结果检测模块500,用于在所述指令数据处理模块通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
处理结果发送模块600,用于在所述第二共享内存内检测到处理结果时,将所述处理结果发送至虚拟机。
综上可见,本实施例提供的指令数据处理方法及装置,虚拟机内的应用程序将打包后的消息写入共享内存后,可以通过基于kvm的中断加速机制IOeventfd通知第一处理线程Host_Render。虚拟机发出通知后,立刻调用第二处理线程启用轮询机制来等待结果。Host_Render收到中断通知后,就开始读取共享内存的消息,执行指令,将结果写入虚拟机在轮询等待的共享内存中,对于其他平台,也可以利用平台自身的中断加速机制,降低通知带来的延迟,提升性能。可见,通过这种方式,可以提升并发,并且保证了性能;在不需要渲染的时候,又不需要启用CPU轮询消息,避免了无用的开销,并且在实际测试中,有300万+的PPS,也能让虚拟机正常流畅运行3D绘图软件,实现效果良好,从而避免系统出现卡顿现象。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种基于虚拟化环境的指令数据处理方法,其特征在于,包括:
接收虚拟机发送的指令数据;
将所述指令数据存入第一共享内存;
判断所述第一共享内存存储的指令数据是否满足预定条件;
若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
2.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
3.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中,是否存在需要返回值的指令数据;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
4.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
5.根据权利要求1所述的指令数据处理方法,其特征在于,所述判断所述第一共享内存存储的指令数据是否满足预定条件,若满足,则调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
确定所述第一共享内存存储的指令数据中的最长存储时长;
判断所述最长存储时长是否超过第三预定阈值;
若是,则调用处理线程对所述第一共享内存存储的指令数据进行处理。
6.根据权利要求1-5中任意一项所述的指令数据处理方法,其特征在于,所述调用处理线程对所述第一共享内存存储的指令数据进行处理,包括:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
7.根据权利要求6所述的指令数据处理方法,其特征在于,所述通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,还包括:
触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
若在所述第二共享内存内检测到处理结果,则将所述处理结果发送至虚拟机。
8.一种基于虚拟化环境的指令数据处理装置,其特征在于,包括:
接收模块,用于接收虚拟机发送的指令数据;
存储模块,用于将所述指令数据存入第一共享内存;
判断模块,用于判断所述第一共享内存存储的指令数据是否满足预定条件;
指令数据处理模块,用于在所述第一共享内存存储的指令数据满足预定条件时,调用处理线程对所述第一共享内存存储的指令数据进行处理。
9.根据权利要求8所述的指令数据处理装置,其特征在于,所述判断模块包括:
第一判断单元,用于判断所述第一共享内存存储的指令数据的数量是否超过第一预定阈值;若是,则触发所述指令数据处理模块。
10.根据权利要求8所述的指令数据处理装置,其特征在于,所述判断模块包括:
第二判断单元,用于判断所述第一共享内存中,是否存在需要返回值的指令数据;若是,则触发所述指令数据处理模块。
11.根据权利要求8所述的指令数据处理装置,其特征在于,所述判断模块包括:
第三判断单元,用于判断所述第一共享内存中所有指令数据的总数据量是否超过第二预定阈值;若是,则触发所述指令数据处理模块。
12.根据权利要求8所述的指令数据处理装置,其特征在于,所述判断模块包括:
确定单元,用于确定所述第一共享内存存储的指令数据中的最长存储时长;
第四判断单元,用于判断所述最长存储时长是否超过第三预定阈值;若是,则触发所述指令数据处理模块。
13.根据权利要求8-12中任意一项所述的指令数据处理装置,其特征在于,所述指令数据处理模块,具体用于:
通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据,并通过所述第一处理线程调用显卡硬件执行所述第一共享内存中的指令数据。
14.根据权利要求13所述的指令数据处理装置,其特征在于,指令数据处理装置还包括:
处理结果检测模块,用于在所述指令数据处理模块通过中断加速机制触发第一处理线程读取所述第一共享内存中存储的指令数据之后,触发第二处理线程轮询第二共享内存,检测所述第二共享内存是否存在所述第一处理线程写入的处理结果;
处理结果发送模块,用于在所述第二共享内存内检测到处理结果时,将所述处理结果发送至虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693445.6A CN107436797A (zh) | 2017-08-14 | 2017-08-14 | 一种基于虚拟化环境的指令数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693445.6A CN107436797A (zh) | 2017-08-14 | 2017-08-14 | 一种基于虚拟化环境的指令数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107436797A true CN107436797A (zh) | 2017-12-05 |
Family
ID=60460417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710693445.6A Pending CN107436797A (zh) | 2017-08-14 | 2017-08-14 | 一种基于虚拟化环境的指令数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107436797A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343837A (zh) * | 2018-09-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 游戏渲染方法及相关设备 |
CN110471701A (zh) * | 2019-08-12 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110502312A (zh) * | 2019-08-15 | 2019-11-26 | 东软集团股份有限公司 | 一种数据读取方法、数据存储方法及装置 |
CN111114320A (zh) * | 2019-12-27 | 2020-05-08 | 深圳市众鸿科技股份有限公司 | 一种车载智能座舱共享显示方法及系统 |
CN111265876A (zh) * | 2020-01-20 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 虚拟环境中的道具使用方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064545A1 (en) * | 2004-09-23 | 2006-03-23 | Michael Wintergerst | Centralized cache storage for runtime systems |
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN102141928A (zh) * | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 虚拟环境下的数据处理方法、系统以及系统的部署方法 |
CN104679486A (zh) * | 2013-11-28 | 2015-06-03 | 华为技术有限公司 | 一种图形数据的处理方法、装置及系统 |
US20160292816A1 (en) * | 2014-12-24 | 2016-10-06 | Yao Zu Dong | Hybrid on-demand graphics translation table shadowing |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN106991057A (zh) * | 2017-04-11 | 2017-07-28 | 深信服科技股份有限公司 | 一种共享显卡虚拟化中内存的调用方法及虚拟化平台 |
CN107003892A (zh) * | 2016-12-29 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品 |
-
2017
- 2017-08-14 CN CN201710693445.6A patent/CN107436797A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064545A1 (en) * | 2004-09-23 | 2006-03-23 | Michael Wintergerst | Centralized cache storage for runtime systems |
CN101419558A (zh) * | 2008-11-13 | 2009-04-29 | 湖南大学 | Cuda图形子系统虚拟化方法 |
CN102141928A (zh) * | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 虚拟环境下的数据处理方法、系统以及系统的部署方法 |
CN104679486A (zh) * | 2013-11-28 | 2015-06-03 | 华为技术有限公司 | 一种图形数据的处理方法、装置及系统 |
US20160292816A1 (en) * | 2014-12-24 | 2016-10-06 | Yao Zu Dong | Hybrid on-demand graphics translation table shadowing |
CN106775940A (zh) * | 2016-12-06 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种图形处理系统及虚拟化方法 |
CN107003892A (zh) * | 2016-12-29 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品 |
CN106991057A (zh) * | 2017-04-11 | 2017-07-28 | 深信服科技股份有限公司 | 一种共享显卡虚拟化中内存的调用方法及虚拟化平台 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343837A (zh) * | 2018-09-12 | 2019-02-15 | Oppo广东移动通信有限公司 | 游戏渲染方法及相关设备 |
US10866818B2 (en) | 2018-09-12 | 2020-12-15 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Game rendering method, terminal device, and non-transitory computer-readable storage medium |
CN110471701A (zh) * | 2019-08-12 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110471701B (zh) * | 2019-08-12 | 2021-09-10 | Oppo广东移动通信有限公司 | 图像渲染的方法、装置、存储介质及电子设备 |
CN110502312A (zh) * | 2019-08-15 | 2019-11-26 | 东软集团股份有限公司 | 一种数据读取方法、数据存储方法及装置 |
CN111114320A (zh) * | 2019-12-27 | 2020-05-08 | 深圳市众鸿科技股份有限公司 | 一种车载智能座舱共享显示方法及系统 |
CN111265876A (zh) * | 2020-01-20 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 虚拟环境中的道具使用方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436797A (zh) | 一种基于虚拟化环境的指令数据处理方法及装置 | |
CN101996073B (zh) | 一种组件渲染方法及装置 | |
US9766707B2 (en) | Method for using the GPU to create haptic friction maps | |
CN111488196B (zh) | 渲染方法及装置、存储介质、处理器 | |
US9176646B2 (en) | Suppressing dialog boxes | |
US9269122B2 (en) | First and second software stacks and discrete and integrated graphics processing units | |
US9164646B2 (en) | Method and apparatus for accommodating display migration among a plurality of physical displays | |
CN101227421B (zh) | 全屏图形模式下的即时通讯方法和装置 | |
US20120075314A1 (en) | Prevention of DOS Attack by a Rogue Graphics Application | |
TW201937332A (zh) | 提供經由使用欺騙時脈及細粒度頻率控制實現之向後相容性的方法、系統以及非暫態電腦可讀取媒體 | |
EP2737410A2 (en) | On-demand tab rehydration | |
WO2013004118A1 (zh) | 一种图形绘制引擎及其实现方法 | |
CN108897489A (zh) | 页面返回的交互方法、系统、设备和存储介质 | |
CN111773704B (zh) | 游戏数据处理方法、装置、存储介质、处理器及电子装置 | |
CN115686758B (zh) | 一种基于帧统计的VirtIO-GPU性能可控方法 | |
CN106991057B (zh) | 一种共享显卡虚拟化中内存的调用方法及虚拟化平台 | |
US9331869B2 (en) | Input/output request packet handling techniques by a device specific kernel mode driver | |
EP3113015B1 (en) | Method and apparatus for data communication in virtualized environment | |
US10561949B2 (en) | Systems and methods for ordered array processing | |
KR20160021202A (ko) | 임베디드 웹 콘텐츠 실행의 애플리케이션 제어 | |
CN110290058A (zh) | 一种在应用中呈现会话消息的方法与设备 | |
CN104035820B (zh) | 显示终端的数据加载方法和装置 | |
CN115212556A (zh) | 与虚拟对象交互的方法、装置、设备和存储介质 | |
CN115098272A (zh) | Gpu资源调度方法、调度器、电子设备和存储介质 | |
CN107291559A (zh) | 一种控制cpu线程和gpu线程同步的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171205 |