Torvalds Gently Calls Out Testing Code Impacting Build Speed in Linux 6.15-rc1

Torvalds Gently Calls Out Testing Code Impacting Build Speed in Linux 6.15-rc1

Background on the Issue

In the development of Linux 6.15-rc1, Linus Torvalds expressed frustration over a specific piece of testing code called “hdrtest.” This testing code was introduced as part of updates to the Intel Xe kernel driver, specifically for verifying the integrity and self-containment of Direct Rendering Manager (DRM) header files. The purpose of hdrtest is to ensure that these header files are well-maintained and pass kernel documentation tests.

However, this hdrtest code inadvertently caused issues during regular kernel builds. It was included as part of the standard build process rather than being isolated for use in specific developer checks. This led to several problems that Torvalds highlighted in his comments.

Key Problems Identified by Torvalds

Build Speed Impact: The inclusion of hdrtest in regular builds significantly slowed down the build process. Torvalds noted that this testing should not be part of an allmodconfig build (a configuration used to compile all possible modules) but instead should be run separately by developers when needed.

Cluttered Source Tree: The hdrtest code left behind temporary files—referred to by Torvalds as “random turd files”—in the include directories after builds were completed. These leftover files cluttered the source tree and created unnecessary noise for developers working on unrelated parts of the kernel.

Filename Completion Issues: The temporary files generated by hdrtest interfered with filename completion in tools like Git, making it harder for developers to navigate and manage their work efficiently.

Unnecessary Inclusion in Builds: Torvalds emphasized that such testing code should not be forced upon all developers as part of normal builds. Instead, it should be something that individual developers can choose to run when performing their own checks.

Torvalds’ Response

Linus Torvalds took immediate action to address these issues:

  • He marked hdrtest as “BROKEN” temporarily, effectively disabling it from being included in regular builds.
  • He advised developers responsible for hdrtest to rework its implementation so that it could be executed independently (e.g., through a separate command like make drm-hdrtest) rather than being integrated into standard build configurations.
  • He reiterated his stance against practices that introduce unnecessary complexity or inefficiency into the Linux kernel’s development workflow.

Why This Matters

The incident highlights several important principles in software development:

Efficiency in Development Workflows: Ensuring that testing processes do not unnecessarily slow down or complicate routine tasks is critical for maintaining developer productivity.

Separation of Concerns: Testing code should be modular and isolated from main build processes unless absolutely necessary.

Attention to Developer Experience: Temporary files or other artifacts left behind by automated processes can create friction for developers, especially when they interfere with commonly used tools like Git.

By addressing these concerns promptly, Torvalds demonstrated his commitment to maintaining high standards for both performance and usability within the Linux kernel development ecosystem.

Conclusion

Linus Torvalds gently but firmly called out the inclusion of hdrtest testing code in Linux 6.15-rc1 builds due to its negative impact on build speed, source tree cleanliness, and developer workflows. He disabled hdrtest temporarily and advised its creators to rework it into a standalone test process rather than integrating it into normal builds. This incident underscores his dedication to efficient and clean development practices within the Linux community.

d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it d0it