[AEP-BUG] Critical:concurrent invocations of ndctl can cause linux panic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
intel |
Fix Released
|
Critical
|
Unassigned | ||
linux (Ubuntu) |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
Description:
Patch: fix patch in the libnvdimm pending tree.
Proposed fixes here: https:/
and pushed out to libnvdimm-pending: https:/
Upstream Bug link: https:/
The problem is fairly easy to reproduce in as little as 10 minutes.
Do the following in parallel, like in separate terminals. Example...
in term #1, #3, #5, type
while [1]; do ndctl create-namespace -m devdax -s 48G done
in term #2, #4, #6, type
while [1]; do ndctl destroy-namespace all -f done
Even simple invocation will eventually lead to a panic, it can take hours though. Example...
in term #1 run the script
#/bin/bash
while /bin/true
do
ndctl destroy-namespace -f all
date
for R in ndctl list -R | jq -r ".[] | .dev"
do
for i in {1..10}
do
ndctl create-namespace -r $R -s 8g -m devdax
done
done
done
in term #2 type
while /bin/true; do ndctl list done
Run that same terminal #1 script in 2 separate terminals, thereby creating 2 separate threads that will destroy/create will usually result in a panic within an hour.
Target Kernel: 5.3
Target Release: 19.10
Changed in intel: | |
status: | Fix Committed → Fix Released |
Kernel/User Patches
Dan Williams (6): /bus: Prevent duplicate device_unregister() calls /region: Register badblocks before namespaces /bus: Stop holding nvdimm_ bus_list_ mutex over __nd_ioctl() /bus: Fix wait_nvdimm_ bus_probe_ idle() ABBA deadlock
drivers/base: Introduce kill_device()
libnvdimm
libnvdimm
libnvdimm
libnvdimm
driver-core, libnvdimm: Let device subsystems add local lockdep coverage