According to the patch details, the problem with having more NVMe drives is that they are configured at bus level for synchronous shutdown, effectively creating a shutdown queue.
With the typical shutdown process taking about 4.5 seconds, a system with 16 drives will take almost a minute and a half to reboot.
The new fix, submitted by a Google engineer, proposes an asynchronous shutdown interface at bus level. It still calls the NVMes for reboot one by one, but as soon as one call is made, it moves on to the next one, thereby speeding up the process.
We’re looking at how our readers use VPNs with different devices so we can improve our content and offer better advice. This survey shouldn’t take more than 60 seconds of your time, and entrants from the UK and US will have the chance to enter a draw for a £100 Amazon gift card (or equivalent in USD). Thank you for taking part.
Asynchronous shutdown interface
The patch notes go into further detail about the implementation of the change:
“This patch set proposes an asynchronous shutdown interface at bus level, modifies the core driver, device shutdown routine to exploit the new interface while maintaining backward compatibility with synchronous implementation already existing and exploits new interface to enable all PCIe-based devices to use asynchronous interface semantics if necessary,” the documentation explains.
“The implementation at PCIe level also works in a backward compatible way, to allow exiting device implementation to work with current synchronous semantics.”
Although the patch may sound insignificant and will not affect the lives of most Linux users, it has been met with praise in the IT community for resolving a needless problem that was a hindrance to productivity.
Via The Register