IP Library Granted Patent US 10,437,623
Granted Patent B2
US 10,437,623 · App. 14/757,958 · Granted Oct 8, 2019

Fast switching between virtual machines without interrupt virtualization for high-performance, secure trusted-execution environment

Inventors: Prashant Dewan (Hillsboro, OR); Vedvyas Shanbhogue (Austin, TX)
Assignee: INTEL IP CORPORATION
G06F9/45558G06F9/485G06F9/4831G06F9/5077G06F2009/45579G06F2009/45583G06F2009/45587G06F2009/45591G06F2209/542G06F2209/548
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,437,623
App. No.
14/757,958
Granted
Oct 8, 2019
Kind
B2
Abstract

Various embodiments are generally directed to an apparatus, method, and other techniques to handle interrupts directed to secure virtual machines. Work is added to a work queue in a shared memory buffer in accordance with a received request, and a task-priority register is updated to block interrupts not directed toward the secure virtual machine. A timer that expires after a number of cycles of the computer processor have elapsed is started. The secure virtual machine is launched on the computer processor, and a work queue in a shared memory buffer is polled for work to be executed by the secure virtual machine until the work queue is empty or until the timer expires.

Claims (42)

1. An apparatus for secure virtual-machine interrupt handling comprising:

a computer processor;

a computer memory in electrical communication with the computer processor and comprising a shared memory, the shared memory comprising a work queue configured to add work in accordance with a received work request for a secure virtual machine configured to execute on the computer processor;

a timer configured to start when the work request is received and to expire after a number of cycles of the computer processor have elapsed thereafter;

a task-priority register configured to filter interrupts directed toward the computer processor, wherein updated contents are stored in the task-priority register based on the received work request, the updated contents to cause the task-priority register to block interrupts not directed toward the secure virtual machine; and

a secure virtual-machine interrupt manager component configured to launch the secure virtual machine on the computer processor, to poll the work queue in the shared memory for work to be executed by the secure virtual machine until the work queue becomes empty or until the timer expires, and, when the work queue becomes empty, to lower the number of elapsed cycles of the computer processor after which the timer expires or, when the timer expires, to increase the number of elapsed cycles of the computer processor after which the timer expires.

2. The apparatus of claim 1 , wherein current contents of the task-priority register are stored in the computer memory as previous contents before the contents of the task-priority register are updated.

3. The apparatus of claim 2 , wherein the updated contents of the task-priority register are replaced with the previous contents stored in the computer memory when the work queue becomes empty or when the timer expires.

4. The apparatus of claim 1 , the secure virtual-machine interrupt manager being further configured to schedule the secure virtual machine on the computer processor.

5. The apparatus of claim 1 , the task-priority register being further configured to update by setting a priority threshold higher than a current priority threshold such that interrupts having a lower priority than the priority threshold are blocked.

6. The apparatus of claim 1 , the task-priority register comprises being further configured to update by setting a first priority threshold higher than a current priority threshold and a second priority threshold higher than the first priority threshold such that interrupts having a lower priority than the first priority threshold and interrupts having a higher priority than the second priority threshold are blocked.

7. The apparatus of claim 1 , wherein the updated contents of the task-priority register comprises a bitmap, the task-priority register configured to filter interrupts directed toward the computer processor by masking the interrupts with the bitmap.

8. The apparatus of claim 1 , further comprising a SECURE_VM_RUNNING flag that is set when the secure virtual machine is started.

9. The apparatus of claim 1 , the number of cycles comprising 5,000, 10,000, or 50,000 cycles.

10. A computer-implemented method for secure virtual-machine interrupt handling comprising:

adding work to a work queue in a shared memory in accordance with a received request;

storing updated contents in a task-priority register based on the received request, the updated contents to cause the task-priority register to block interrupts not directed toward a secure virtual machine;

starting a timer that expires after a number of cycles of a computer processor have elapsed;

launching the secure virtual machine on the computer processor;

polling the work queue in the shared memory for work to be executed by the secure virtual machine until the work queue becomes empty or until the timer expires; and

when the work queue becomes empty, lowering the number of elapsed cycles of the computer processor after which the timer expires or, when the timer expires, increasing the number of elapsed cycles of the computer processor after which the timer expires.

11. The computer-implemented method of claim 10 , comprising storing current contents of the task-priority register in a computer memory as previous contents before the updated contents are stored in the task-priority register.

12. The computer-implemented method of claim 11 , comprising replacing the updated contents of the task-priority register with the previous contents stored in the computer memory when the work queue becomes empty or when the timer expires.

13. The computer-implemented method of claim 10 , further comprising scheduling the secure virtual machine on the computer processor.

14. The computer-implemented method of claim 10 , the task-priority register being further updated by setting a priority threshold higher than a current priority threshold such that interrupts having a lower priority than the priority threshold are blocked.

15. The computer-implemented method of claim 10 , the task-priority register further updated by setting a first priority threshold higher than a current priority threshold and a second priority threshold higher than the first priority threshold such that interrupts having a lower priority than the first priority threshold and interrupts having a higher priority than the second priority threshold are blocked.

16. The computer-implemented method of claim 10 , wherein the updated contents of the task-priority register comprise a bitmap, the task-priority register configured to filter interrupts directed toward the computer processor by masking the interrupts with the bitmap.

17. The computer-implemented method of claim 10 , further comprising a SECURE_VM_RUNNING flag that is set when the secure virtual machine is started.

18. A non-transitory machine-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

add work to a work queue in a shared memory in accordance with a received request;

store updated contents in a task-priority register based on the received request, the updated contents to cause the task-priority register to block interrupts not directed toward a secure virtual machine;

start a timer that expires after a number of cycles of a computer processor have elapsed;

launch the secure virtual machine on the computer processor;

poll the work queue in the shared memory for work to be executed by the secure virtual machine until the work queue becomes empty or until the timer expires; and

when the work queue becomes empty, lower the number of elapsed cycles of the computer processor after which the timer expires or, when the timer expires, increase the number of elapsed cycles of the computer processor after which the timer expires.

19. The non-transitory machine-readable storage medium of claim 18 , further comprising the instructions causing the processing device to store current contents of the task-priority register in a computer memory as previous contents before the updated contents are stored in the task-priority register.

20. The non-transitory machine-readable storage medium of claim 19 , further comprising the instructions causing the processing device to replace the updated contents of the task-priority register with the previous contents stored in the computer memory when the work queue becomes empty or when the timer expires.

21. The non-transitory machine-readable storage medium of claim 18 , further comprising the instructions causing the processing device to schedule the secure virtual machine on the computer processor.

22. The non-transitory machine-readable storage medium of claim 18 , further comprising the instructions causing the processing device to update the task-priority register by setting a priority threshold higher than a current priority threshold such that interrupts having a lower priority than the priority threshold are blocked.

23. The non-transitory machine-readable storage medium of claim 18 , further comprising the instructions causing the processing device to update the task-priority register by setting a first priority threshold higher than a current priority threshold and a second priority threshold higher than the first priority threshold such that interrupts having a lower priority than the first priority threshold and interrupts having a higher priority than the second priority threshold are blocked.

24. The non-transitory machine-readable storage medium of claim 18 , wherein the updated contents of the task-priority register comprise a bitmap, and further comprising the instructions causing the processing device to filter interrupts directed toward the computer processor with the bitmap.

25. The non-transitory machine-readable storage medium of claim 18 , further comprising the instructions causing the processing device to set a SECURE_VM_RUNNING flag when the secure virtual machine is started.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057060/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 057254/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2017
From: DEWAN, PRASHANT; SHANBHOGUE, VEDVYAS
To: INTEL IP CORPORATION
Reel/Frame 041916/0821 →
Continuity (1)
Related Publication 20170185435A1 · Jun 29, 2017