IP Library Granted Patent US 11,789,801
Granted Patent B2
US 11,789,801 · App. 17/716,113 · Granted Oct 17, 2023

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,789,801
App. No.
17/716,113
Filed
Apr 8, 2022
Granted
Oct 17, 2023
Kind
B2
Art Unit
2114
USPC
714/25
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 (52)

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 hardware component of the computing device, and wherein the hardware component is not yet initialized or is shutdown;

determining that the error logs exceed a space or number threshold 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 of error logs; and

writing a log identifier for the selected error log to a firmware interface of the computing device, wherein the log identifier 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 log identifier from the firmware interface;

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

erasing, by the system logger, the log identifier from the firmware interface.

3. The method of claim 1 , further comprising:

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

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

erasing, by the system logger, the log identifier from the firmware interface.

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

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

6. The method of claim 1 , wherein writing the log identifier further comprises writing the selected error log corresponding to the log identifier.

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

8. A non-transitory, computer-readable medium containing instructions that, when executed by a hardware-based processor, cause the processor to perform 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 hardware component of the computing device, and wherein the hardware component is not yet initialized or is shutdown;

determining that the error logs exceed a space or number threshold 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 of error logs; and

writing a log identifier for the selected error log to a firmware interface of the computing device, wherein the log identifier 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 log identifier from the firmware interface;

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

erasing, by the system logger, the log identifier from the firmware interface.

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

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

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

erasing, by the system logger, the log identifier from the firmware interface.

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

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

13. The non-transitory, computer-readable medium of claim 8 , wherein writing the log identifier further comprises writing the selected error log corresponding to the log identifier.

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

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, 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 hardware component of the computing device, and wherein the hardware component is not yet initialized or is shutdown;

determining that the error logs exceed a space or number threshold 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 of error logs; and

writing a log identifier for the selected error log to a firmware interface of the computing device, wherein the log identifier 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 log identifier from the firmware interface;

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

erasing, by the system logger, the log identifier from the firmware interface.

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

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

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

erasing, by the system logger, the log identifier from the firmware interface.

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

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

20. The system of claim 15 , wherein writing the log identifier further comprises writing the selected error log corresponding to the log identifier.