NAME
NAME
cxl-inject-media-poison - Inject poison into CXL memory
SYNOPSIS
cxl inject-media-poison <memdev> [<options>]
Inject poison into a CXL memory device’s memory. CXL memdevs can be specified by device name (e.g. “mem0”), device id (“X” in “memX”), or host device name (“0000:35:00.0”).
Poison can only be used with CXL memory devices with poison injection support. To see which CXL devices support poison injection, see the “poison_injectable” attribute under the device in cxl-list. An example of a device that supports poison injection:
# cxl list -u -m mem0
{
"memdev":"mem0",
"ram_size":"256.00 MiB (268.44 MB)",
"serial":"0",
"host":"0000:0d:00.0",
"firmware_version":"BWFW VERSION 00",
"poison_injectable":true
}
A device physical address is required for poison injection. The -a/–address option is used to specify the device physical address to inject poison to. The address can be given in either decimal or hexadecimal. For example:
# cxl inject-media-poison mem0 -a 0x1000
poison inject at mem0:0x1000
# cxl list -m mem0 -u --media-errors
{
"memdev":"mem0",
"ram_size":"256.00 MiB (268.44 MB)",
"serial":"0",
"host":"0000:0d:00.0",
"firmware_version":"BWFW VERSION 00",
"media_errors":[
{
"offset":"0x1000",
"length":64,
"source":"Injected"
}
]
}
See the clear-media-poison command for how to clear poison from a CXL memory device.
This command relies on the CXL debugfs to inject poison (normally mounted at “/sys/kernel/debug/cxl”). If the CXL debugfs is inaccesible, the “poison_injectable” attribute will always be set to “false”.
OPTIONS
-a; --address
Device physical address (DPA) to use for poison injection. Address can
be specified in hex or decimal. Required for poison injection.
--debug
Enable debug output