| .TH HORNET 8 2015-07-07 Linux "System Validation Manual" |
| .SH NAME |
| hornet \- inject an uncorrectable memory error into a process |
| .SH SYNOPSIS |
| .B hornet |
| [ |
| .B \-D |
| .I delay |
| ] [ |
| .B \-v |
| ] [ |
| .I address\-options |
| ] |
| .I COMMAND |
| [ |
| .I ARGS |
| ] |
| .br |
| .B hornet |
| [ |
| .B \-D |
| .I delay |
| ] [ |
| .B \-v |
| ] [ |
| .I address\-options |
| ] |
| \-p |
| .I PID |
| .br |
| .B hornet |
| [ |
| .B \-v |
| ] |
| \-P |
| .I PID |
| .SH CONFIGURATION |
| .B hornet |
| requires that error injection be enabled in ACPI 5.0 mode by the BIOS and that the |
| error injection driver |
| .B einj |
| is loaded. Running on a processor that does not support error recovery |
| will crash the system when the injected error is consumed. |
| .SH DESCRIPTION |
| .B hornet |
| injects an uncorrectable memory error into a program to test recovery paths. |
| It waits for the process to terminate and tries to take the target page offline |
| if the application did not trigger an error by accessing the injected address. |
| .SH OPTIONS |
| .TP |
| .BI \-D " delay" |
| Pause for |
| .I delay |
| seconds before injecting the memory error. A floating point value may be specified. |
| .TP |
| .B \-v |
| print verbose details about execution progress. |
| .TP |
| .B address-options |
| .BI \-a " address" |
| inject at the specified virtual address |
| .br |
| .B \-t |
| choose an address randomly from the text (code) section |
| .br |
| .B \-d |
| choose an address randomly from the initialized data section |
| .br |
| .B \-b |
| choose an address randomly from the uninitialized data section (heap) |
| .br |
| .B \-s |
| choose an address randomly from the stack section |
| .br |
| .B \-m |
| choose an address randomly from an anonymous mapped section |
| .br |
| If none of the address options are specified |
| .B hornet |
| will choose an address from the largest writable address region |
| in the process. |
| .TP |
| .BI \-p " PID" |
| inject errors into an already running process |
| .TP |
| .BI \-P " PID" |
| stop the process using ptrace(2), inject at the next instruction to be executed, then continue. |
| .SH EXIT STATUS |
| .SH FILES |
| .PP |
| /sys/kernel/debug/apei/einj/* |
| .RS 4 |
| Error injection interface. |
| .RE |
| .PP |
| /sys/devices/system/memory/hard_offline_page |
| .RS 4 |
| Interface to ask kernel to take pages offline. |
| .RE |
| .SH NOTES |
| .SH BUGS |
| .SH EXAMPLE |
| .SH SEE ALSO |