P
US8453149B2ActiveUtilityPatentIndex 82

Efficient multi-core processing of events

Assignee: BEN YEHUDA SHMUELPriority: Jan 21, 2010Filed: Jan 21, 2010Granted: May 28, 2013
Est. expiryJan 21, 2030(~3.5 yrs left)· nominal 20-yr term from priority
Inventors:BEN-YEHUDA SHMUELGORDON ABELWASSERMAN ORIT LUBAYASSOUR BEN-AMI
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-modified
What 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.