-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lib: log vCPU diagnostics on triple fault and for some unhandled exit…
… types (#795) Add a `propolis::vcpu::Diagnostics` type that captures and pretty-prints the register state of a vCPU. Log this state of a vCPU triple-faults or (in propolis-server) if it raises a `Paging` or `InstEmul` exit that the binary does not handle. Formatting and logging register state increases the risk that a Propolis log will contain sensitive guest application data that happens to have been loaded into a register at the time the state was read. To help mitigate this, introduce a `GuestData` wrapper type that identifies this sort of guest application data. `GuestData`'s `Display` and `Debug` impls can be configured (using a library-level flag) to redact this data when it is formatted. `GuestData` is displayed by default in propolis-standalone and development builds of propolis-server and redacted in Omicron zone builds of propolis-server.
- Loading branch information
Showing
14 changed files
with
349 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.