Removal of UltraSPARC T2 SPU driver: A necessary cleanup in the Linux Kernel

Maintaining legacy drivers within the Linux kernel continues to pose recurring challenges for developers. This time, the decision has been made to remove the Stream Processing Unit (SPU) driver for the UltraSPARC T2 “Niagara 2” and T3 processors, CPUs originally launched in 2007 and 2010, respectively, by Sun Microsystems.

Reasons for Removal

The SPU driver for the UltraSPARC T2, which has been part of the kernel for over a decade, has been deemed obsolete, inefficient, and for many years, completely dysfunctional. Eric Biggers, a developer at Google, spearheaded the proposal for its removal, arguing that the driver not only lacks active users but also introduces unnecessary complexities into the kernel’s crypto API, negatively affecting the performance of other cryptographic drivers.

The SPU, which was replaced by more modern cryptographic instructions in the SPARC T4 processors released in 2012, has become redundant. These newer instructions are already supported by the kernel within the SPARC architecture, rendering the older driver unnecessary.

Biggers explained on the Linux kernel mailing list:

“Removing this driver allows us to drop support for physical address walks in skcipher_walk, a feature only used by this driver that increases the overhead of the crypto API for everyone else.”

A Troubled History

Between 2015 and 2022, the SPU driver was “completely broken,” as noted by Biggers, due to an issue in its initialization function that prevented it from correctly registering cryptographic algorithms. Although this obvious flaw was fixed in 2022, there is no definitive evidence that the driver works properly today.

Additionally, the driver has accumulated several bug reports, such as one in 2017 where loading it caused a kernel crash. However, this report reflected no real interest in using the driver—users merely wanted to resolve the kernel crash issue.

Impact and Benefits of Removal

The proposed patch eliminates approximately 2,500 lines of code associated with the UltraSPARC T2 SPU driver. Beyond simplifying the kernel’s codebase, its removal is expected to improve the overall performance of the crypto API by eliminating the overhead caused by this outdated driver.

This situation also highlights the challenges of maintaining drivers for legacy hardware within the mainline kernel. While some users advocate for retaining such drivers, the associated maintenance costs and potential vulnerabilities make their removal a prudent decision.

Conclusion

The removal of the UltraSPARC T2 SPU driver represents another step in cleaning up and modernizing the Linux kernel. As hardware ecosystems evolve, such decisions are essential to ensure the kernel remains efficient, secure, and relevant for modern systems.

source: Kernel

Scroll to Top