IP Library Granted Patent US 11,481,248
Granted Patent B2
US 11,481,248 · App. 16/985,977 · Granted Oct 25, 2022

Completing an SMI task across multiple SMI events

Inventors: Balasingh P. Samuel (Round Rock, TX); Richard M. Tonry (Austin, TX); Nicholas D. Grobelny (Austin, TX)
Assignee: Dell Products L.P.
G06F9/485G06F9/4812G06F9/4881G06F9/542
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 11,481,248
App. No.
16/985,977
Granted
Oct 25, 2022
Kind
B2
Abstract

An SMI task to be completed across multiple SMI events. An OS agent can be employed to determine a current load on a computing device. Based on the load, the OS agent can create an SMI message that specifies a maximum duration for an SMI event and that segments the SMI data for the SMI task. The OS agent can provide the SMI message to BIOS as part of requesting that the SMI task be performed. During the resulting SMI event, the BIOS can reassemble the segmented SMI data and then perform the SMI task. If this processing cannot be completed within the specified maximum duration for an SMI event, the BIOS can pause its processing and cause a subsequent SMI event to occur during which the processing can be resumed. In this way, the SMI task can be completed across multiple SMI events while ensuring that no single SMI event exceeds the specified maximum duration.

Claims (40)

1. A method, performed on a computing device that supports system management mode (SMM), for completing a system management interrupt (SMI) task across multiple SMI events, the method comprising:

in response to receiving an SMI message from an operating system (OS) agent, commencing, by BIOS during a first SMI event that is commenced upon entering SMM a first time, processing of an SMI task identified in the SMI message;

during the first SMI event, scheduling a subsequent SMI event;

pausing the processing of the SMI task;

causing SMM to be exited while the processing of the SMI task is paused; and

during the subsequent SMI event that is commenced upon entering SMM a second time, resuming the processing of the SMI task.

2. The method of claim 1 , wherein the SMI message includes SMI data, and wherein the processing of the SMI task includes processing the SMI data.

3. The method of claim 2 , wherein the SMI data is segmented in the SMI message, and wherein processing the SMI data includes reassembling the SMI data.

4. The method of claim 3 , wherein the OS agent segments the SMI data using a segment size that is based on a current load of the computing device.

5. The method of claim 2 , wherein processing the SMI data includes verifying the SMI data.

6. The method of claim 5 , wherein the SMI data is segmented in the SMI message, wherein processing the SMI data includes reassembling the SMI data, and wherein verifying the SMI data includes verifying the reassembled SMI data.

7. The method of claim 1 , wherein the SMI message defines a maximum duration for an SMI event, the method further comprising:

determining that an elapsed time of the first SMI event is approaching or has reached the maximum duration;

wherein pausing the processing of the SMI task is performed in response to the determination.

8. The method of claim 7 , wherein the maximum duration is based on a current load of the computing device.

9. The method of claim 1 , wherein the processing of the SMI task includes creating SMI data.

10. The method of claim 9 , wherein creating SMI data includes segmenting the SMI data.

11. The method of claim 10 , wherein pausing the processing of the SMI task comprise pausing the segmenting of the SMI data.

12. The method of claim 10 , further comprising:

sending, to the OS agent, an SMI response message that includes the segmented SMI data.

13. The method of claim 1 , wherein the processing of the SMI task comprises one or both of:

performing the SMI task using SMI data contained in the SMI message; or

performing the SMI task to generate SMI data.

14. One or more computer storage media storing computer executable instructions which when executed on a computing device implement the following components:

an OS agent that is configured to monitor a load of the computing device and that is configured to send an SMI message to BIOS to instruct the BIOS to perform an SMI task, wherein the OS agent includes segmented SMI data in the SMI message where a segment size of the SMI data is based on the load; and

the BIOS that is configured to receive the SMI message from the OS agent and, in response, perform the SMI task across multiple SMI events, wherein each of the multiple SMI events is commenced upon entering SMM in response to an SMI and ends when SMM is subsequently exited.

15. The one or more computer storage media of claim 14 , wherein the OS agent includes a maximum duration for an SMI event in the SMI message where the maximum duration is based on the load, and wherein the BIOS performs the SMI task across multiple SMI events by, at least one time, determining that processing of the SMI task in a current SMI event cannot be completed within the maximum duration and causing a subsequent SMI event to occur during which the BIOS resumes the processing of the SMI task.

16. The one or more computer storage media of claim 14 , wherein the OS agent is configured to send a second SMI message to the BIOS to instruct the BIOS to perform a second SMI task, the second SMI message including a second maximum duration for an SMI event that is based on the load of the computing device when the second SMI task is to be performed;

wherein the BIOS performs the second SMI task across multiple SMI events, the performance of the second SMI task including creating SMI data.

17. The one or more computer storage media of claim 16 , wherein creating SMI data includes creating an SMI response message corresponding to the second SMI message and segmenting the SMI data in the SMI response message.

18. A computing device comprising:

a central processing unit;

memory;

an OS on which an OS agent runs; and

BIOS;

wherein the OS agent and the BIOS are configured to cause an SMI task to be started during a first SMI event and completed during a subsequent SMI event, wherein the first SMI event and the subsequent SMI event are each commenced upon entering SMM in response to an SMI and end when SMM is subsequently exited, wherein causing an SMI task to be started during the first SMI event and completed during the subsequent SMI event comprises:

specifying, by the OS agent, a maximum duration for an SMI event that is based on a load of the computing device; and

pausing, by the BIOS, processing of the SMI task during the first SMI event when the processing of the SMI task cannot be completed within the specified maximum duration, causing the subsequent SMI event to occur and then resuming the processing of the SMI task during the subsequent SMI event.

19. The computing device of claim 18 , wherein one or both of the OS agent and the BIOS are configured to segment SMI data in SMI messages that are exchanged between the OS agent and the BIOS where a segment size is based on a load of the computing device.

20. The computing device of claim 18 , wherein one or both of the OS agent and the BIOS are configured to segment SMI data in SMI messages that are exchanged between the OS agent and the BIOS, wherein the SMI messages include SMI data, and wherein the processing of the SMI task includes processing the SMI data, wherein the SMI data is segmented in the SMI message, and wherein processing the SMI data includes reassembling the SMI data.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2020
From: SAMUEL, BALASINGH P.; TONRY, RICHARD M.; GROBELNY, NICHOLAS D.
To: DELL PRODUCTS L.P.
Reel/Frame 053412/0586 →