Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
2.2 kB · 59 lines
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960.. SPDX-License-Identifier: GPL-2.0
============================Configurable Error Injection============================
Overview--------
Configurable error injection allows injecting specific block layer status codesfor sector ranges of a block device. Errors can be injected unconditionally, orwith a given probability.
To use configurable error injection, CONFIG_BLK_ERROR_INJECTION must be enabled.
The only interface is the error_injection debugfs file, which is created foreach registered gendisk. Writes to this file are used to create or delete rulesand reads return a list of the current error injection sites.
Options-------
The following options specify the operations:
=================== =======================================================add add a new ruleremoveall remove all existing rules=================== =======================================================
The following options specify the details of the rule for the add operation:
=================== =======================================================op=<string> block layer operation this rule applies to. This uses the XYZ for each REQ_OP_XYZ operation, e.g. READ, WRITE or DISCARD. Mandatory.status=<string> Status to return. This uses XYZ for each BLK_STS_XYZ code, e.g. IOERR or MEDIUM. Mandatory.start=<number> First block layer sector the rule applies to. Optional, defaults to 0.nr_sectors=<number> Number of sectors this rule applies. Optional, defaults to the remainder of the device.chance=<number> Only return a failure with a likelihood of 1/chance. Optional, defaults to 1 (always).=================== =======================================================
Example-------
Return BLK_STS_IOERR for one in 10 reads of sector 0 of /dev/nvme0n1:
$ echo 'add,op=READ,start=0,status=IOERR,chance=10' > /sys/kernel/debug/block/nvme0n1/error_injection
Return BLK_STS_MEDIUM for every write to /dev/nvme0n1:
$ echo 'add,op=WRITE,start=0,status=MEDIUM' > /sys/kernel/debug/block/nvme0n1/error_injection
Remove all rules for /dev/nvme0n1:
$ echo 'removeall' > /sys/kernel/debug/block/nvme0n1/error_injection