IP Library Granted Patent US 11,301,312
Granted Patent B1
US 11,301,312 · App. 17/142,453 · Granted Apr 12, 2022

Error logging during system boot and shutdown

Inventors: Ashish Kaila (Palo Alto, CA); Tobias Stumpf (Munich, DE); Mukund Gunti (Mountain View, CA)
Assignee: VMware, Inc.
G06F11/0778G06F11/0751G06F11/0787
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,301,312
App. No.
17/142,453
Granted
Apr 12, 2022
Kind
B1
Abstract

Systems and methods are described for improved error logging during system boot and shutdown. A hardware initialization firmware on a computing device can include a logging module. When errors occur during early system booting or late system shutdown, the firmware can create error logs. The logging module can receive the error logs and prioritize them according to a set of rules. The logging module can select error logs of the highest priority up to a predetermined maximum amount. The logging module can modify the error logs using a shorthand form and write them to nonvolatile random-access memory. The firmware can initialize runtime services and launch an operating system. A system logger on the operating system can retrieve the error logs, save them to a file, and erase them from the memory.

Claims (43)

1. A method for improved error logging, comprising:

receiving, at a computing device, a plurality of error logs for operating system errors during shutdown or boot of the computing device, wherein the error logs are received when the operating system cannot access a memory associated with a hardware component of the computing device;

determining that the number of error logs received is greater than a predetermined maximum for logging in firmware;

selecting an error log from the plurality of error logs based on the error log having a highest priority of the plurality; and

writing the selected error log to a firmware interface of the computing device, wherein the selected error log persists in the firmware interface for access after a boot of the operating system.

2. The method of claim 1 , further comprising:

retrieving, by a system logger, the selected error log from the firmware interface;

writing, by the system logger, the selected error log to a file; and

erasing, by the system logger, the selected error log from the firmware interface.

3. The method of claim 1 , wherein the firmware interface is a Unified Extensive Firmware Interface (“UEFI”).

4. The method of claim 3 , wherein the selected error log is written to a non-volatile memory as a UEFI runtime variable.

5. The method of claim 1 , wherein the error log is written to the firmware interface using an identifier associated with the error log.

6. The method of claim 1 , wherein each of the error logs includes a criticality level and a timestamp, and the priority of the error logs is determined based on the criticality levels and timestamps.

7. The method of claim 1 , wherein selecting the error log includes selecting multiple error logs up to the predetermined maximum.

8. A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, performs stages for improved error logging, the stages comprising:

receiving, at a computing device, a plurality of error logs for operating system errors during shutdown or boot of the computing device, wherein the error logs are received when the operating system cannot access a memory associated with a hardware component of the computing device;

determining that the number of error logs received is greater than a predetermined maximum for logging in firmware;

selecting an error log from the plurality of error logs based on the error log having a highest priority of the plurality; and

writing the selected error log to a firmware interface of the computing device, wherein the selected error log persists in the firmware interface for access after a boot of the operating system.

9. The non-transitory, computer-readable medium of claim 8 , the stages further comprising:

retrieving, by a system logger, the selected error log from the firmware interface;

writing, by the system logger, the selected error log to a file; and

erasing, by the system logger, the selected error log from the firmware interface.

10. The non-transitory, computer-readable medium of claim 8 , wherein the firmware interface is a Unified Extensive Firmware Interface (“UEFI”).

11. The non-transitory, computer-readable medium of claim 10 , wherein the selected error log is written to a non-volatile memory as a UEFI runtime variable.

12. The non-transitory, computer-readable medium of claim 8 , wherein the error log is written to the firmware interface using an identifier associated with the error log.

13. The non-transitory, computer-readable medium of claim 8 , wherein each of the error logs includes a criticality level and a timestamp, and the priority of the error logs is determined based on the criticality levels and timestamps.

14. The non-transitory, computer-readable medium of claim 8 , wherein selecting the error log includes selecting multiple error logs up to the predetermined maximum.

15. A system for improved error logging, comprising:

a memory storage including a non-transitory, computer-readable medium comprising instructions; and

a computing device including a hardware-based processor that executes the instructions to carry out stages comprising:

receiving a plurality of error logs for operating system errors during shutdown or boot of the computing device, wherein the error logs are received when the operating system cannot access a memory associated with a hardware component of the computing device;

determining that the number of error logs received is greater than a predetermined maximum for logging in firmware;

selecting an error log from the plurality of error logs based on the error log having a highest priority of the plurality; and

writing the selected error log to a firmware interface, wherein the selected error log persists in the firmware interface for access after a boot of the operating system.

16. The system of claim 15 , the stages further comprising:

retrieving, by a system logger, the selected error log from the firmware interface;

writing, by the system logger, the selected error log to a file; and

erasing, by the system logger, the selected error log from the firmware interface.

17. The system of claim 15 , wherein the firmware interface is a Unified Extensive Firmware Interface (“UEFI”).

18. The system of claim 17 , wherein the selected error log is written to a non-volatile memory as a UEFI runtime variable.

19. The system of claim 15 , wherein the error log is written to the firmware interface using an identifier associated with the error log.

20. The system of claim 15 , wherein each of the error logs includes a criticality level and a timestamp, and the priority of the error logs is determined based on the criticality levels and timestamps.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2021
From: KAILA, ASHISH; STUMPF, TOBIAS; GUNTI, MUKUND
To: VMWARE, INC.
Reel/Frame 055259/0441 →
Cited By (1)
US 12,650,850