IP Library Granted Patent US 8,381,182
Granted Patent B2
US 8,381,182 · App. 12/715,315 · Granted Feb 19, 2013

Approaches for meeting SMI duration limits by time slicing SMI handlers

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 8,381,182
App. No.
12/715,315
Granted
Feb 19, 2013
Kind
B2
Abstract

Approaches that allow the context of an SMI task to be saved between SMIs. Upon entering an SMI handler for a task, a new task context stack is created. Thereafter, the SMI handler uses the task context, leaving the original stack unchanged. When the time limit for a single SMI is almost reached, the CPU is directed back to the original stack, and the task context stack persists in memory and retains the context of the task in hand. The soft SMI exits with an indication to signify that a new SMI should be invoked to continue processing. The entity that caused the first soft SMI then invokes another, passing in an indication to signify that this is a continuation of the prior task. On entering the SMI handler, the handler notes the request for continuation, switches to the saved task context stack and continues processing where it left off.

Claims (44)

1. A method for context-switching when processing a system management interrupt (SMI), comprising:

in response to receiving a first request to process a system management interrupt (SMI), creating, a second context stack that is different from a first context stack, wherein the first context stack comprises instructions currently being executed by a central processing unit (CPU);

after creating the second context stack, directing the CPU to execute instructions in the second context stack, instead of executing instructions in the first context stack, to process the system management interrupt (SMI);

upon determining that a time limit is about to expire, maintaining the state of the second context stack while directing the CPU to return to executing instructions in the first context stack; and

in response to (a) receiving a second request to process a system management interrupt (SMI) and (b) determining that the second request requests the continuation of the performance of the same task requested by the first request, directing the CPU to return to executing instructions in the second context stack while maintaining the state of the first context stack.

2. The method of claim 1 , wherein directing the CPU to return to executing instructions in the first context stack further comprises:

notifying a service requestor that issued the first request that the second request should be issued to continue processing of the task requested by the first request.

3. The method of claim 1 , wherein the second request comprises an indication that signifies that the system management interrupt (SMI), requested by the second request, was issued to continue the same task requested by the first request.

4. The method of claim 1 , wherein the second context stack is maintained in a data segment within the system management memory region.

5. The method of claim 1 , wherein directing the CPU to return to executing instructions in the first context stack comprises:

updating the CPU's stack pointer to reference the first context stack.

6. The method of claim 1 , further comprising:

upon receiving the second request, a system management interrupt (SMI) infrastructure inspects the second request to determine the correct SMI handler, from a plurality of SMI handlers, to process the second request, wherein the correct SMI handler switches a stack pointer to refer to the second context stack.

7. The method of claim 1 , wherein the first request is processed by a SMI handler that is configured to ensure that sensitive data is not visible outside the system management mode (SMM) memory during a yield back to a service requestor.

8. A machine-readable storage medium storing one or more sequences of instructions, which when executed, cause:

in response to receiving a first request to process a system management interrupt (SMI), creating, a second context stack that is different from a first context stack, wherein the first context stack comprises instructions currently being executed by a central processing unit (CPU);

after creating the second context stack, directing the CPU to execute instructions in the second context stack, instead of executing instructions in the first context stack, to process the system management interrupt (SMI);

upon determining that a time limit is about to expire, maintaining the state of the second context stack while directing the CPU to return to executing instructions in the first context stack; and

in response to (a) receiving a second request to process a system management interrupt (SMI) and (b) determining that the second request requests the continuation of the performance of the same task requested by the first request, directing the CPU to return to executing instructions in the second context stack while maintaining the state of the first context stack.

9. The machine-readable storage medium of claim 8 , wherein directing the CPU to return to executing instructions in the first context stack further comprises:

notifying a service requestor that issued the first request that the second request should be issued to continue processing of the task requested by the first request.

10. The machine-readable storage medium of claim 8 , wherein the second request comprises an indication that signifies that the system management interrupt (SMI), requested by the second request, was issued to continue the same task requested by the first request.

11. The machine-readable storage medium of claim 8 , wherein the second context stack is maintained in a data segment within the system management memory region.

12. The machine-readable storage medium of claim 8 , wherein directing the CPU to return to executing instructions in the first context stack comprises:

updating the CPU's stack pointer to reference the first context stack.

13. The machine-readable storage medium of claim 8 , wherein execution of the one or more sequences of instructions further causes:

upon receiving the second request, a system management interrupt (SMI) infrastructure inspects the second request to determine the correct SMI handler, from a plurality of SMI handlers, to process the second request, wherein the correct SMI handler switches a stack pointer to refer to the second context stack.

14. The machine-readable storage medium of claim 8 , wherein the first request is processed by a SMI handler that is configured to ensure that sensitive data is not visible outside the system management mode (SMM) memory during a yield back to a service requestor.

15. A device capable of context-switching when processing a system management interrupt (SMI), comprising:

one or more processors; and

a machine-readable storage medium storing one or more sequences of instructions, which when executed by the one or more processors, cause:

in response to receiving a first request to process a system management interrupt (SMI), creating, a second context stack that is different from a first context stack, wherein the first context stack comprises instructions currently being executed by a central processing unit (CPU);

after creating the second context stack, directing the CPU to execute instructions in the second context stack, instead of executing instructions in the first context stack, to process the system management interrupt (SMI);

upon determining that a time limit is about to expire, maintaining the state of the second context stack while directing the CPU to return to executing instructions in the first context stack; and

in response to (a) receiving a second request to process a system management interrupt (SMI) and (b) determining that the second request requests the continuation of the performance of the same task requested by the first request, directing the CPU to return to executing instructions in the second context stack while maintaining the state of the first context stack.

16. The device of claim 15 , wherein directing the CPU to return to executing instructions in the first context stack further comprises:

notifying a service requestor that issued the first request that the second request should be issued to continue processing of the task requested by the first request.

17. The device of claim 15 , wherein the second request comprises an indication that signifies that the system management interrupt (SMI), requested by the second request, was issued to continue the same task requested by the first request.

18. The device of claim 15 , wherein the second context stack is maintained in a data segment within the system management memory region.

19. The device of claim 15 , wherein directing the CPU to return to executing instructions in the first context stack comprises:

updating the CPU's stack pointer to reference the first context stack.

20. The device of claim 15 , wherein execution of the one or more sequences of instructions further causes:

upon receiving the second request, a system management interrupt (SMI) infrastructure inspects the second request to determine the correct SMI handler, from a plurality of SMI handlers, to process the second request, wherein the correct SMI handler switches a stack pointer to refer to the second context stack.

21. The device of claim 15 , wherein the first request is processed by a SMI handler that is configured to ensure that sensitive data is not visible outside the system management mode (SMM) memory during a yield back to a service requestor.

Assignments (6)
LIEN AND SECURITY INTEREST Recorded Jan 13, 2017
From: KINGLITE HOLDINGS INC.
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 041366/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: PHOENIX TECHNOLOGIES LTD.
To: KINGLITE HOLDINGS INC.
Reel/Frame 029339/0716 →
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2012
From: MEP PLP, LLC
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029307/0590 →
SECURITY AGREEMENT Recorded Nov 13, 2012
From: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC
To: MEP PLP, LLC
Reel/Frame 029291/0354 →
NUNC PRO TUNC ASSIGNMENT Recorded Oct 29, 2012
From: COTTRELL, ANDREW P
To: PHOENIX TECHNOLOGIES LTD.
Reel/Frame 029206/0094 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Nov 24, 2010
From: PHOENIX TECHNOLOGIES LTD.
To: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERAL AGENT
Reel/Frame 025406/0604 →