CXL-INJECT-MEDIA-POISON(1) cxl Manual CXL-INJECT-MEDIA-POISON(1)

# [NAME](#NAME)

cxl-inject-media-poison - Inject poison into CXL memory

# [SYNOPSIS](#SYNOPSIS)

```
cxl inject-media-poison <memdev> [<options>]
```

**Warning**

Poison injection can cause system instability and should only be used  
for debugging hardware and software error recovery flows. Use at your own risk!

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](#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

# [SEE ALSO](#SEE_ALSO)

[cxl-list(1)](/man/os/ndctl/cxl-list.1) [cxl-clear-media-poison(1)](/man/os/ndctl/cxl-clear-media-poison.1)

2026-08-31 cxl

---

Document: cxl-inject-media-poison(1) from ndctl 85-r2 (Chainguard OS)
Source: https://github.com/pmem/ndctl
