ERRINJCT(8)
πΈ errinjct β the manual, but make it make sense π
okay bestie so this is ERRINJCT(8), straight outta the Linux on Power Service Tools manual, and it's section 8 because it's a sysadmin-type tool, iykyk. buckle up, we're injecting errors on purpose and it's gonna be a whole vibe π¦
β¨ NAME β¨
errinjct β inject errors into a system via RTAS. yes, on purpose. no, we're not okay. π
β¨ SYNOPSIS β¨
/usr/local/sbin/errinjct [ OPTIONS ]
β¨ DESCRIPTION β¨
so the <hotpink>errinjct</hotpink> tool is literally the plug that lets RTAS inject errors on a Power system. that's the whole job. it's for IBM internal use only β so if that's not you, this is not your moment, no cap π. and currently, errinjct is only supported on PowerVM systems, periodt.
β¨ OPTIONS β¨
okay so the options are giving choose your own adventure β they change depending on what functionality you're asking for. run errinjct with no arguments at all and it'll show you a list of supported functions. then peek at the individual function explanations below for the real tea π
β¨ FUNCTIONS β¨
here's the roster, bestie:
openβ open the RTAS error injection facility.closeβ close the RTAS error injection facility.corrupted-dcache-startβ start causing L1 data cache errors.corrupted-dcache-endβ stop causing L1 data cache errors.corrupted-icache-startβ start causing instruction cache errors.corrupted-icache-endβ stop causing instruction cache errors.corrupted-slbβ corrupt the SLB entry associated with a specific effective address.ioa-bus-errorβ simulate an error on the IOA bus.platform-specificβ request the firmware perform a specific platform specific injection.corrupted-tlb-startβ start corrupting TLB.corrupted-tlb-endβ stop corrupting TLB.
π open
open the RTAS error injection facility. this is the key to the whole party π
Usage:
errinjct open [options]
Optional arguments:
--dry-runβ don't actually perform the action, just print what would have been done. the "look but don't touch" of flags π«Ά-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages. she talks more π¬-q,--quietβ shhhh.... only report errors. π€«
π close
close the RTAS error injection facility. wrap it up, we're done here β¨
Usage:
errinjct close [optioons]
yes the manual really says optioons. we love her. she's iconic. don't fix her. π
Mandatory argument:
-k tokenβ token returned from error inject open.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.-C cpuβ cpu to inject errors on.
π§ corrupted-dcache-start / corrupted-dcache-end
inject errors onto the L1 data cache. before you use this option you need to open the RTAS error injection facility via errinjct open. afterwards, pass this parameter in with the -k option and specify a cpu to run on with the -C option. β οΈ please note: you need to specify the same cpu number to the dcache-start and dcache-end errinjct calls. same cpu or it's not gonna slay, fr fr.
Usage:
errinjct corrupted-dcache-start [options]
errinjct dcache-start [options]
errinjct corrupted-dcache-end [options]
errinjct dcache-end [options]
Mandatory Arguments:
-a actionβ type of D-cache error to inject:0: parity error1: D-ERAT parity error2: tag parity error
-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.
Example:
> errinjct open
Error inject token = 2
> errinjct corrupted-dcache-start -a 1 -k 2 -C 0
.
.
.
> errinjct corrupted-dcache-end -a 1 -k 2 -C 0
> errinjct close -k 2
π§ corrupted-icache-start / corrupted-icache-end
inject errors into the instruction cache. same drill: before using this option you need to open the RTAS error injection facility via errinjct open. afterwards, pass this parameter in with the -k option and specify a cpu to run on with the -C option. β οΈ please note: you need to specify the same cpu number to the icache-start and icache-end errinjct calls. matching cpu's only, that's the rule π
Usage:
errinjct corrupted-icache-start [options]
errinjct icache-start [options]
errinjct corrupted-icache-end [options]
errinjct icache-end [options]
Mandatory Arguments:
-a actionβ type of I-cache error to inject:0: Parity error1: I-ERAT partiy error2: Cache directory 0 parity error3: Cache directory 1 parity error
-n natureβ nature of I-cache error to inject:0: Single1: Solid2: Hang
-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
"partiy" is in the original manual and honestly? she's earned her place. π
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.
Example:
> errinjct open
Error inject token = 2
> errinjct corrupted-icache-start -a 1 -n 0 -k 2 -C 0
.
.
.
> errinjct corrupted-icache-end -a 1 -n 0 -k 2 -C 0
> errinjct close -k 2
π¦ corrupted-slb
corrupt the SLB entry associated with the specified effective address. targeted chaos, we love to see it β¨
Usage:
errinjct corrupted-slb [options]
errinjct slb [options]
Mandatory Argument:
-a addrβ effective address associated with the SLB entry to corrupt.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
π₯ ioa-bus-error
inject errors onto an IO adapter (PCI) bus slot. big main character energy for your PCI bus π«Ά
Usage:
errinjct ioa-bus-error [options]
errinjct eeh [options]
Mandatory arguments:
-f functionβ IOA bus error to inject.
specify a device either with the -s flag, the -p flag, or use the explicit BUID/config address flags:
-s classpathβ look up device by sysfs classpath, for example-s net/eth3or-s scsi_host/host0.-p loc-codeβ look up device by location code, for example-p "U0.1-P2-I1".
Explicit BUID/config mandatory arguments:
-c config_addrβ configure address of the IOA.-h high_bitsβ high bits of PHB unit id.-l lo_bitsβ lo bits of PHB unit id.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.-a addrβ address at which to report the error.-m maskβ address mask (defaults to0x00000000).-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
Functions for ioa-bus-error β here's the full menu, all twenty of them, no skipsies π:
0β Load to PCI Memory Address Space: inject an Address Parity Error.1β Load to PCI Memory Address Space: inject a Data Parity Error.2β Load to PCI I/O Address Space: inject an Address Parity Error.3β Load to PCI I/O Address Space: inject a Data Parity Error.4β Load to PCI Configuration Space: inject an Address Parity Error.5β Load to PCI Configuration Space: inject a Data Parity Error.6β Store to PCI Memory Address Space: inject an Address Parity Error.7β Store to PCI Memory Address Space: inject a Data Parity Error.8β Store to PCI I/O Address Space: inject an Address Parity Error.9β Store to PCI I/O Address Space: inject a Data Parity Error.10β Store to PCI Configuration Space: inject an Address Parity Error.11β Store to PCI Configuration Space: inject a Data Parity Error.12β DMA read to PCI Memory Address Space: inject an Address Parity Error.13β DMA read to PCI Memory Address Space: inject a Data Parity Error.14β DMA read to PCI Memory Address Space: inject a Master Abort Error.15β DMA read to PCI Memory Address Space: inject a Target Abort Error.16β DMA write to PCI Memory Address Space: inject an Address Parity Error.17β DMA write to PCI Memory Address Space: inject a Data Parity Error.18β DMA write to PCI Memory Address Space: inject a Master Abort Error.19β DMA write to PCI Memory Address Space: inject a Target Abort Error.
β platform-specific
request the firmware perform a platform specific error injection. very "let the firmware handle it, she knows what she's doing" π§
Usage:
errinjct platform-specific [options]
Mandatory argument:
-f fnameβ file name to read platform specific error injection data from.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
π corrupted-tlb-start / corrupted-tlb-end
inject errors into the TLB. before using this option you need to open the RTAS error injection facility via errinjct open. afterwards, pass this parameter in with the -k option and specify a cpu to run on with the -C option. β οΈ please note: you need to specify the same cpu number to the tlb-start and tlb-end errinjct calls. consistency is the vibe check π
Usage:
errinjct corrupted-tlb-start [options]
errinjct tlb-start [options]
errinjct corrupted-tlb-end [options]
errinjct tlb-end [options]
Mandatory arguments:
-C cpuβ cpu to inject errors on.-k tokenβ token returned from error inject open.
Optional arguments:
--dry-runβ don't perform the action, just print what would have been done.-H,--helpβ print usage information for a particular function.-v,--verboseβ be more verbose with messages.-q,--quietβ shhhh.... only report errors.
Example:
> errinjct open
Error inject token = 2
> errinjct corrupted-tlb-start -k 2 -C 0
.
.
.
> errinjct corrupted-tlb-end -k 2 -C 0
> errinjct close -k 2
β¨ AUTHORS β¨
This page was written by Nathan Fontenot and Linas Vepstas β actual icons, fr fr. π«Ά
π Thatβs the whole page, bestie! It comes from the Linux manual as ERRINJCT(8), dated June 2007. Slay, bye! π
π¦ where this page comes from
- opensuse-leap 16.0: powerpc-utils 1.3.14-160000.2.1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms