NDCTL-WAIT-SCRUB(1)
π NDCTL-WAIT-SCRUB π
okay bestie, welcome to the ndctl manual β this one's all about ndctl-wait-scrub, the lil command that justβ¦ waits. patiently. like a good friend holding your iced coffee while you find your keys. β¨
πΈ NAME πΈ
ndctl-wait-scrub β the command that waits for an Address Range Scrub (ARS) operation to finish. no cap, that's literally its whole job. π
π SYNOPSIS π
ndctl wait-scrub [<bus-id> <bus-id2> ... <bus-idN>] [<options>]
π¦ DESCRIPTION π¦
so. NVDIMM Address Range Scrub is this capability that platform firmware hands you, and it lets system software go hunt down memory errors. it's giving detective energy π. and why do we care? because it lets system software pre-emptively dodge accesses that could lead to uncorrectable memory error handling events β and it also just, like, lets memory errors get enumerated. both things! iconic behaviour, honestly.
meanwhile the kernel is out here providing a POLL(2) capable sysfs file called scrub, which tells you the state of ARS. and the way that scrub file works? it keeps a running count of all the ARS runs that have happened. while a run is currently in progress, a + character gets emitted right alongside the current count. periodt.
and ndctl wait-scrub? it waits for scrub, across all the buses you specified, to say "not in-progress" at least once. just once, bestie. that's the vibe check. π
β EXAMPLE β
Wait for scrub on all nvdimm buses in the system. heads up though β the json listing report at the end only includes the buses that actually support ARS operations. no fake friends here. π«Ά
# ndctl wait-scrub
[
{
"provider":"nfit_test.1",
"dev":"ndbus3",
"scrub_state":"idle"
},
{
"provider":"nfit_test.0",
"dev":"ndbus2",
"scrub_state":"idle"
}
]
When you specify an individual bus, or if there's only one bus in the system, the command reports whether ARS support is even available. spoiler: sometimes it's not. π
# ndctl wait-scrub e820
error waiting for scrub completion: Operation not supported
π OPTIONS π
-v,--verboseβ emit debug messages for the ARS wait process. basically the "tell me everything, i want the group chat play-by-play" button. π₯
π COPYRIGHT π
Copyright Β© 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. (yes the all-caps NO WARRANTY is doing the most but it means it fr fr π)
π SEE ALSO π
ndctl-start-scrub(1)- ACPI <http://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf> 6.2 Specification Section 9.20.7.2 Address Range Scrubbing (ARS) Overview"
okay that's the whole page, you're all caught up π this was ndctl from 2026-07-07 β go forth and wait on that scrub, bestie, you got this. πβ¨π¦
π¦ where this page comes from
- fedora 43: ndctl 85-1.fc43 Β· GPL-2.0-only AND LGPL-2.1-only AND CC0-1.0 AND MIT
- fedora 44: ndctl 85-1.fc44 Β· GPL-2.0-only AND LGPL-2.1-only AND CC0-1.0 AND MIT
- ubuntu stonking: ndctl 82-1ubuntu1 Β· LGPL-2.1-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms