# US 11,307,921 B2 · Coordinated panic flow

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,921 B2
- Document ID: US11307921B2
- Status: Granted
- Kind: B2
- Application number: 17/114,388
- Filed: 2020-12-07
- Published: 2021-04-22
- Granted: 2022-04-19
- Earliest claimed: 2017-12-08
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Christopher J. Noe; Joshua H. Berlin; Joseph J. Castro; Hardik K. Doshi; Joel N. Kerr; Kerry J. Kopp; Michael J. Smith
- Web page: https://patentgrep.com/patent/US11307921B2

## CPC

- G06F 11/0724: {in a multiprocessor or a multi-core unit (multiprocessors per se G06F15/80)}
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/0706: {the processing taking place on a specific hardware platform or in a specific software environment}
- G06F 11/0772: {Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers}
- G06F 11/0787: {Storage of error reports, e.g. persistent data storage, storage using memory protection}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/3024: {where the computing system component is a central processing unit [CPU]}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3072: {where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting}
- G06F 11/3082: {the data filtering being achieved by aggregating or compressing the monitored data}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

One embodiment provides for a data processing system comprising multiple independent processors to execute multiple operating system environments of the data processing system, the multiple operating system environments to enable operation of multiple regions of a computing device associated with the data processing system. The multiple operating system environments are interconnected via a transport agnostic communication link. In response to detection of a fatal error in one or more of the multiple operating system environments, the multiple operating system environments coordinate performance of multiple separate error handling operations within the multiple operating system environments to generate a combined error log. The combined error log includes operational states of the multiple operating system environments.

## Claims

### Claim 1

An electronic device comprising:
a first processor to execute a first operating system, the first processor including one or more application processor cores and the first operating system including a first error handler;
a second processor to execute a second operating system, the second processor including one or more processor cores to manage a set of input/output devices within the electronic device, the second operating system including a second error handler, wherein in response to detection of an error state within the first operating system, the first operating system is to enter the first error handler and cause the second operating system to enter the second error handler; and
a management controller to facilitate communication between the first error handler and the second error handler, wherein the first error handler is to collect data associated with a state of the first operating system and a state of the first processor and the second error handler is to collect data associated with a state of the second operating system and a state of the second processors, the first operating system or the second operating system is to write the data associated with the state of operating systems and associated processors to a memory device, and the management controller is to reset the first processor and the second processor after the write of the data associated with the state of operating systems and associated processors.

### Claim 2 (depends on 1)

The electronic device as in claim 1, wherein the first error handler is to cause the second operating system to enter the second error handler.

### Claim 3 (depends on 1)

The electronic device as in claim 1, wherein the management controller is a microcontroller or microprocessor.

### Claim 4 (depends on 1)

The electronic device as in claim 1, wherein the first operating system or the second operating system is to write the data associated with a state of operating systems and associated processors to a volatile memory device.

### Claim 5 (depends on 4)

The electronic device as in claim 4, wherein the management controller is to reset the first processor and the second processor without clearing data within the volatile memory device and store the data associated with the state of operating systems and associated processors to a non-volatile memory device of a processor associated with the volatile memory device.

### Claim 6 (depends on 1)

The electronic device as in claim 1, the first processor having a first instruction set architecture and the second processor having a second instruction set architecture different from the first instruction set architecture.

### Claim 7 (depends on 6)

The electronic device as in claim 6, wherein the error state within the first operating system indicates a potential for data corruption during continued operation of the first operating system.

### Claim 8 (depends on 7)

The electronic device as in claim 7, wherein the error state includes a kernel panic within the first operating system.

### Claim 9

An error handling method for an electronic device, the method comprising:
detecting a panic or stop condition within a first operating system on a first processor of the electronic device;
signaling a second operating system on a second processor to initiate an error handler, the second processor separate from the first processor;
initiating the error handler on the second operating system in response to the signal from the first operating system;
collecting, via an error handler on the first operating system, data associated with a state of the first processor;
collecting, via the error handler on the second operating system, data associated with the state of the second processor;
storing a combined set of data to a memory device coupled with the first processor or the second processor; and
resetting the first processor and the second processor after storing the combined set of data to the memory device.

### Claim 10 (depends on 9)

The method as in claim 9, additionally comprising: initiating an error handler on the first operating system in response to detecting the panic or stop condition within the first operating system; and signaling the second operating system via the error handler on the first operating system.

### Claim 11 (depends on 9)

The method as in claim 9, wherein storing the combined set of data to a memory device coupled with the first processor or the second processor includes:
storing a first set of log data from the first operating system to a volatile memory device; and
storing a second set of log data from the second operating system to the volatile memory device; and
resetting a processor associated with the volatile memory device without clearing data within the volatile memory device, wherein the processor associated with the memory device is one of the first processor or the second processor.

### Claim 12 (depends on 11)

The method as in claim 11, additionally comprising:
after resetting the processor associated with the volatile memory device, reading, from the volatile memory device, the first set of log data and the second set of log data;
combining the first set of log data from the first operating system with the second set of log data from the second operating system; and
storing combined log data to a non-volatile memory device of the processor associated with the volatile memory device.

### Claim 13 (depends on 12)

The method as in claim 12, additionally including: initiating a boot process for the electronic device, the boot process including a crash reporter process to collect the combined log data from the non-volatile memory device; and reporting the combined log data to a crash reporting service.

### Claim 14

A data processing system comprising:
a first processor to execute a first operating system, the first processor including one or more application processor cores; and
a second processor to execute a second operating system, the second processor including one or more processor cores to manage a set of input/output devices within the electronic device;
wherein in response to detection of an error state within the first operating system, the first operating system is to enter an error handler of the first operating system and cause the second operating system to enter an error handler of the second operating system;
wherein the error handlers of the first operating system and the second operating system are to collect data associated with a state of operating systems and a state of associated processors of the electronic device;
wherein at least one of the first operating system or the second operating system are to write the data associated with a state of operating systems and associated processors to a memory device; and wherein the first processor and the second processor are to reset without clearing the data associated with the state of the operating systems and associated processors from the memory device.

### Claim 15 (depends on 14)

The data processing system as in claim 14, the first processor having a first instruction set architecture and the second processor having a second instruction set architecture different from the first instruction set architecture.

### Claim 16 (depends on 15)

The data processing system as in claim 15, wherein the error handler of the first operating system is to cause the second operating system to enter the error handler of the second operating system.

### Claim 17 (depends on 16)

The data processing system as in claim 16, wherein the error state within the first operating system indicates a potential for data corruption during continued operation of the first operating system.

### Claim 18 (depends on 17)

The data processing system as in claim 17, wherein the error state includes a kernel panic within the first operating system.

### Claim 19 (depends on 18)

The data processing system as in claim 18, additionally comprising a microcontroller or microprocessor to facilitate communication between the error handler of the first operating system and the error handler of the second operating system.

### Claim 20 (depends on 14)

The data processing system of claim 14, wherein the error handler of the first operating system collects data associated with a first state of the first processor but not the second processor, and the error handler of the second operating system collects data associated with a second state of the second processor but not the first processor.
