US8453149B2ActiveUtilityPatentIndex 82
Efficient multi-core processing of events
Est. expiryJan 21, 2030(~3.5 yrs left)· nominal 20-yr term from priority
G06F 9/542G06F 9/45533
82
PatentIndex Score
8
Cited by
9
References
10
Claims
Abstract
A computer implemented method for handling events in a multi-core processing environment is provided. The method comprises handling an event by a second application running on a second core, in response to determining that the event is initiated by a first application running on a first core; and running a third application on the first core, while the first application is waiting for the event to be handled by the second application.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A computer implemented method for handling events in a multi-core processing environment, the method comprising:
initiating a first event by a guest running on a first core in a multi-core processing environment;
placing the first event on a queue, in response to determining that the first event is to be handled asynchronously by a host running on a second core;
handling the first event by the host running on the second core, in response to determining that the first event is initiated by the guest running on the first core;
initiating a second event by the guest on the first core, while the guest is waiting for the first event to be handled by the host on the second core, wherein the second core removes the first event from the queue and triggers an event handler for the host to handle the first event; and
awakening the second core to handle the first event by the host running on the second core without placing the first event on the queue, in response to determining that the first event is to be handled synchronously by the host running on the second core, wherein the guest on the first core is suspended while the first event is being handled by the host running on the second core, and
wherein the guest running on the first core is a virtual machine supported by the host running on the second core, such that the host is configured to provide the operating environment for the execution of the host.
2. The method of claim 1 comprising:
initiating an event by the host on the first core; and
placing the host initiated event on a queue, in response to determining that the host initiated event is to be handled by a guest running on the second core,
wherein the second core removes the host initiated event from the queue and triggers an event handler for the guest to handle the host initiated event.
3. The method of claim 2 wherein the guest handles the host initiated event when the guest is in an idle mode.
4. The method of claim 2 wherein the host continues to run on the first core while the host initiated event is placed on the queue.
5. The method of claim 1 wherein the first event is categorized as either an event that is to be handled asynchronously or synchronously.
6. The method of claim 1 wherein a data structure is utilized to associate a first event with a synchronous or asynchronous category such that the first core may determine whether the first event is to be placed on the queue.
7. A system for handling events in a multi-core processing environment, the system comprising:
one or more processors for executing instructions loaded in memory of a computing machine;
a logic unit for initiating a first event by a guest running on a first core;
a logic unit for placing the first event on a queue, in response to determining that the guest initiated event is to be handled asynchronously by a host running on a second core;
a logic unit for handling the first event by the host running on the second core, in response to determining that the first event is initiated by the guest running on the first core;
a logic unit for initiating a second event by the guest on the first core, while the guest is waiting for the first event to be handled by the host on the second core, wherein the second core removes the first event from the queue and triggers an event handler for the host to handle the first event; and
a logic unit for awakening the second core to handle the first event by the host running on the second core without placing the first event on the queue, in response to determining that the first event is to be handled synchronously by the host running on the second core, wherein the guest on the first core is suspended while the first event is being handled by the host running on the second core, and
wherein the guest running on the first core is a virtual machine supported by the host running on the second core, such that the host is configured to provide the operating environment for the execution of the host.
8. The system of claim 7 wherein the first event is categorized as either an event that is to be handled asynchronously or synchronously.
9. The system of claim 7 wherein a data structure is utilized to associate the first event with a synchronous or asynchronous category such that the first core may determine whether the first event is to be placed on the queue.
10. A computer program product comprising a non-transitory data storage medium having a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:
initiate a first event by a guest running on a first core;
place the first event on a queue, in response to determining that the first event is to be handled asynchronously by a host running on a second core;
handle the first event by the host running on the second core, in response to determining that the first event is initiated by the guest running on the first core; and
initiate a second event by the guest on the first core, while the guest is waiting for the first event to be handled by the host on the second core, wherein the second core removes the first event from the queue and triggers an event handler for the host to handle the first event; and
awaken the second core to handle the event by the host running on the second core without placing the first event on the queue, in response to determining that the first event is to be handled synchronously by the host running on the second core, wherein the guest on the first core is suspended while the first event is being handled by the host running on the second core, and
wherein the guest running on the first core is a virtual machine supported by the host running on the second core, such that the host is configured to provide the operating environment for the execution of the host.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.