IP Library › Granted Patent US 11,544,148
Granted Patent B2
US 11,544,148 · App. 17/221,751 · Granted Jan 3, 2023

Preserving error context during a reboot of a computing device

Inventors: Mallik Bulusu (Bellevue, WA); Muhammad Ashfaq Ahmed (Redmond, WA); Tom Long Nguyen (Auburn, WA); Neeraj Ladkani (Bothell, WA); Ravi Mysore Shantamurthy (Bothell, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F11/1417G06F11/0784G06F11/0787G06F11/1438
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,544,148
App. No.
17/221,751
Granted
Jan 3, 2023
Kind
B2
Abstract

To preserve error context during a reboot of a computing device, firmware within the computing device can be configured to implement a method that includes determining where the error context is stored in volatile memory. The method can also include identifying a plurality of recorder regions in non-volatile memory that have been assigned to store the error context. The plurality of recorder regions can be disaggregated across a plurality of distinct non-volatile memory regions. The method can also include flushing the error context from a plurality of different volatile memory locations to the plurality of recorder regions in response to detecting a trigger. The flushing can occur prior to the reboot of the computing device. The method can also include restoring at least some of the error context to the volatile memory after the computing device has been rebooted.

Claims (61)

1. A method for preserving error context during a reboot of a computing device, the method being implemented by firmware within the computing device, the method comprising:

determining where the error context is stored in volatile memory;

identifying a plurality of recorder regions in non-volatile memory that has been assigned to store the error context, wherein the plurality of recorder regions is disaggregated across a plurality of distinct non-volatile memory regions;

communicating an indication of a recorder region of the plurality of recorder regions to an operating system of the computing device;

causing the error context from the volatile memory to be saved to the plurality of recorder regions in the non-volatile memory in response to detecting a trigger, wherein the error context is saved to the plurality of recorder regions prior to the reboot of the computing device; and

restoring at least some of the error context to the volatile memory after reboot of the computing device.

2. The method of claim 1 , wherein the plurality of recorder regions comprises at least one of:

a first recorder region in a firmware region of the non-volatile memory;

a second recorder region in a non-volatile memory partition that is created during a boot process of the computing device; or

a third recorder region in an auxiliary service processor.

3. The method of claim 1 , wherein the error context includes operating system context for the operating system within the volatile memory.

4. The method of claim 1 ,

wherein a location of the error context in the volatile memory is assigned during a boot process of the computing device.

5. The method of claim 4 , further comprising receiving a notification from the operating system about at least one additional region of the volatile memory that the operating system has assigned to store the error context.

6. The method of claim 1 , wherein the at least some of the error context is included in one or more registers within one or more hardware devices that are part of the computing device.

7. The method of claim 6 , wherein determining where the error context is stored in the volatile memory comprises determining that the one or more registers have been assigned to store the error context when the one or more hardware devices are initialized during a boot process of the computing device.

8. The method of claim 1 , wherein:

the firmware comprises system management mode (SMM) code that is executed by a processor of the computing device when the processor enters a SMM; and

causing the error context to be saved to the plurality of recorder regions comprises executing at least a part of the SMM code.

9. The method of claim 1 , wherein detecting the trigger comprises detecting a system management interrupt (SMI) signal.

10. The method of claim 9 , wherein:

the computing device is part of a cloud computing system that comprises a management entity;

the computing device comprises an auxiliary service processor; and

the auxiliary service processor causes the SMI signal to be generated in response to a command from the management entity.

11. The method of claim 1 , further comprising causing the at least some of the error context to be transmitted to a remote location for analysis.

12. A computing device, comprising:

one or more processors; and

firmware that is executable by the one or more processors to:

determine where error context is stored in volatile memory;

identify a plurality of recorder regions in non-volatile memory that has been assigned to store the error context, wherein the plurality of recorder regions is disaggregated across a plurality of distinct non-volatile memory regions;

communicate an indication of a recorder region of the plurality of recorder regions to an operating system of the computing device;

cause the error context from the volatile memory to be saved to the plurality of recorder regions in the volatile memory in response to detecting a trigger, wherein the error context is saved to the plurality of recorder regions prior to the reboot of the computing device; and

restore at least some of the error context to the volatile memory after reboot of the computing device.

13. The computing device of claim 12 , wherein the plurality of recorder regions comprises at least two of:

a first recorder region in a firmware region of the non-volatile memory;

a second recorder region in a non-volatile memory partition that is created during a boot process of the computing device; or

a third recorder region in an auxiliary service processor.

14. The computing device of claim 12 , wherein at least some of the error context is included in at least one of:

an operating system context within the volatile memory; or

one or more hardware registers within one or more hardware devices that are part of the computing device.

15. The computing device of claim 12 , wherein:

detecting the trigger comprises detecting a system management interrupt (SMI) signal;

the computing device is part of a cloud computing system that comprises a management entity;

the computing device further comprises an auxiliary service processor; and

the auxiliary service processor causes the SMI signal to be generated in response to a command from the management entity.

16. The computing device of claim 12 , wherein the firmware is additionally executable by the one or more processors to cause the at least some of the error context to be transmitted to a remote location for analysis.

17. A cloud computing system, comprising:

a management entity; and

a plurality of servers, each server among the plurality of servers comprising one or more processors, an auxiliary service processor, and firmware that is executable by the one or more processors to:

identify a plurality of recorder regions in non-volatile memory that has been assigned to store the error context, wherein the plurality of recorder regions is disaggregated across a plurality of distinct non-volatile memory regions;

communicate an indication of a recorder region of the plurality of recorder regions to an operating system of the computing device

cause the error context from the volatile memory to be saved to the plurality of recorder regions in the non-volatile memory in response to detecting a trigger, wherein the error context is saved to the plurality of recorder regions prior to the reboot of the computing device; and

transmit at least some of the error context to a remote location for analysis.

18. The cloud computing system of claim 17 , wherein the plurality of recorder regions comprises:

a first recorder region in a firmware region of the non-volatile memory;

a second recorder region in a non-volatile memory partition that is created during a boot process of a computing device; and

a third recorder region in an auxiliary service processor.

19. The cloud computing system of claim 17 ,

wherein the error context includes operating system context for the operating system within the volatile memory; and

wherein the at least some of the error context is included in one or more registers within one or more hardware devices that are part of the computing device.

20. The cloud computing system of claim 17 , wherein the firmware is implemented in a server and is additionally executable by the one or more general purpose processors to restore at least some of the error context to volatile memory after reboot of the server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: LADKANI, NEERAJ; NGUYEN, TOM LONG; AHMED, MUHAMMAD ASHFAQ
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060811/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2022
From: BULUSU, MALLIK; MYSORE SHANTAMURTHY, RAVI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 059270/0015 →
Continuity (1)
Related Publication 20220318093A1 · Oct 6, 2022