Home Linux Kernel Linus Torvalds Expresses Frustration With Bcachefs Development Process

Linus Torvalds Expresses Frustration With Bcachefs Development Process

By sk
Published: Updated: 2.5K views

On October 5, 2024, a tense argument broke out between Linus Torvalds, the creator of the Linux kernel, and Kent Overstreet, the lead developer of the Bcachefs filesystem. Torvalds expresses frustration with Overstreet’s approach to Bcachefs development, specifically the lack of testing and collaboration before submitting patches.

Kent Overstreet defends his practices, highlighting the rapid development pace and the need to iterate quickly. The discussion escalates, with Torvalds threatening to remove bcachefs from the mainline kernel, prompting Overstreet to defend his commitment to Linux.

In this blog post, we’ll provide a brief summary of the ongoing situation between Linus Torvalds and Kent Overstreet regarding the Bcachefs filesystem.

Linus Torvalds Slams Bcachefs Developer for Lack of Testing and Collaboration

In a recent conversation on the Linux kernel mailing list, Linus Torvalds, the creator and lead developer of the Linux kernel, voiced his frustration with Kent Overstreet's handling of the bcachefs file system.

I'm getting really fed up here Kent.

These have commit times from last night. Which makes me wonder how
much testing they got.

And before you start whining - again - about how you are fixing bugs,
let me remind you about the build failures you had on big-endian
machines because your patches had gotten ZERO testing outside your
tree.

Wrote Linus in the mailing list.

Linus Torvalds vs. Kent Overstreet: Bcachefs Development in Turmoil

The exchange began with Kent Overstreet submitting a series of fixes for bcachefs for the upcoming Linux 6.12-rc2 release. These fixes addressed a range of issues, including fragmentation LRU problems, logged operation error handling, and filesystem connectivity repairs. Notably, these fixes were committed to Overstreet’s personal repository without prior public review or discussion on the mailing list.

This lack of transparency drew sharp criticism from Torvalds, who expressed concern over the limited testing these fixes received before being submitted for inclusion in the mainline kernel. He pointed out a recent incident where a bcachefs patch introduced build failures on big-endian machines, emphasizing the need for thorough testing outside of the developer's own environment.

Torvalds went on to criticize Overstreet's overall development model, lamenting the lack of significant contributions from other developers and the seemingly rushed nature of bug fixes being submitted close to release deadlines.

Linus posted this reply in response to Kent's reply:

I was hoping and expecting that bcachefs being mainlined would
actually help development. It has not. You're still basically the
only developer, there's no real sign that that will change, and you
seem to feel like sending me untested stuff that nobody else has ever
seen the day before the next rc release is just fine.

He also urged Overstreet to engage more actively with the community, follow established development practices, and prioritize collaborative development over a solitary approach.

Bacachefs Developer's Response

Kent Overstreet countered by arguing that the commits, while dated recently, represented fixes developed over the past two weeks. He defended his approach by highlighting the active feedback loop he maintains with users and the rapid pace of bug fixing that benefits from this direct interaction.

The /commit/ dates are from last night, because I polish up commit
messages and reorder until the last might (I always push smaller fixes
up front and fixes that are likely to need rework to the back).

The vast majority of those fixes are all ~2 weeks old.

Says Kent.

He also drew parallels to the early days of Linux kernel development, suggesting that a more flexible approach was necessary during the early stages of a project's lifecycle.

Torvalds Dismisses Kent's Arguments

But, Torvalds rejected these arguments, maintaining that established processes exist for a reason and that adhering to them benefits everyone involved.

He dismissed Overstreet's attempt to compare the current situation to the early days of Linux, emphasizing that the project had learned from its past experiences and evolved its development practices accordingly.

Making the argument that we didn't have those rules twenty years ago
is just stupid. We have them NOW, because we learnt better.

-- Linus Torvalds.

Kent Overstreet challenges Torvalds to write his own Filesystem

The conversation escalated with both parties expressing frustration with the other's communication style and unwillingness to compromise.

Overstreet defended his commitment to developing a robust and reliable filesystem for Linux but questioned the value of "upstream rules" when his reasoning and processes were seemingly disregarded. In a frustrated response, Overstreet challenged Torvalds to write his own filesystem if he was so confident in his approach.

If you're so convinced you know best, I invite you to start writing your
own filesystem. Go for it.

-- Kent Overstreet.

Torvalds Threatens to Remove Bcachefs from Mainline

Torvalds countered by stating his intent to potentially remove bcachefs from the mainline kernel altogether if Overstreet continued to disregard the established development process and community involvement.

I'm contemplating just removing bcachefs entirely from the mainline
tree. Because you show again and again that you have no interest in
trying to make mainline work.

-- Linus Torvalds.

He questioned the purpose of bcachefs being in the mainline tree if it was going to remain a solo project with little regard for integration and collaboration.

Bcachefs Future in Linux Kernel Uncertain After Code of Conduct Dispute

Key Disagreements on Bcachefs Development

The main disagreement between Linus Torvalds and Kent Overstreet centers around the development process of the bcachefs filesystem, specifically concerning testing, community involvement, and adherence to mainline kernel development practices.

Linus' Criticisms:

  • Insufficient Testing: Linus expresses frustration with Kent's perceived lack of testing for his code changes, particularly highlighting a recent build failure on big-endian machines that made its way into an rc release. He believes Kent submits untested patches without adequate review from others.
  • Lack of Community Involvement: Linus criticizes Kent's development style as being too isolated and not involving the wider kernel development community. He points out that Kent remains the primary developer with limited participation from others. He is also unhappy that Kent's patches often lack public discussion before submission.

Kent's Defense:

  • Rapid Iteration and User Feedback: Kent argues that bcachefs is still in its early stages of development, requiring a rapid iteration cycle with a focus on fixing bugs and incorporating user feedback. He prioritizes bug fixes over a slower, more cautious approach that focuses heavily on regression avoidance.
  • Existing Testing and Community Engagement: Kent defends his testing practices, stating that he relies on a user base that provides prompt feedback, often identifying issues the morning after pushing changes. He claims to actively engage with users and developers on IRC and through direct communication. He believes involving other developers in reviewing minor bug fixes would be unproductive and has led to unproductive outcomes in the past.
  • bcachefs Progress and Stability: Kent highlights the significant progress made on bcachefs, suggesting that it is becoming increasingly stable and is already more robust than the long-standing btrfs filesystem. He argues that his development approach, although differing from established kernel norms, has been effective in achieving this progress.

Other Users' Response

A user, Carl E. Thompson, offered a perspective on the situation, suggesting that bcachefs should be moved to an out-of-tree development model for the time being. This, he argued, would allow Overstreet to maintain his desired development pace while providing users with more flexibility in choosing kernel and filesystem combinations.

Thompson also noted instances where bcachefs updates introduced regressions that impacted his ability to use release candidate kernels. He pointed out a specific example where reported issues with bcachefs in the 6.12-rc kernels made him hesitant to purchase a new laptop that required this kernel version.

He further questioned Overstreet's stance on the stability of release candidate kernels, suggesting a disconnect in their understanding of what "release candidate" implies.

Overstreet acknowledged Thompson's feedback, particularly concerning the regressions encountered. He expressed surprise at the extent of these issues and requested detailed information to improve regression testing for bcachefs.

Theodore Ts'o, another prominent Linux kernel developer, joined the conversation to refute Overstreet's claim of limited community involvement in automated testing for filesystems.

He highlighted existing testing frameworks like {kvm,gce,android}-xfstests and kdevops, which are available for other developers to use and have garnered contributions from various individuals.

Overstreet responded by stating that Ts'o's testing systems were not publicly accessible to the wider community and lacked a centralized dashboard or continuous integration setup. He reiterated his belief in the need for a standardized testing solution that everyone could utilize, emphasizing his efforts to create such a system.

We don't know how this Conflict will end

The heated exchange between Torvalds and Overstreet sheds light on the complexities of managing large open-source projects and the delicate balance between individual contributions and community collaboration.

It remains to be seen how this conflict will be resolved and what impact it will have on the future development and inclusion of bcachefs in the mainline Linux kernel.

Let us hope everything will get better in the end!

You can read the full conversation between Linus and Kent and other developers in the following link:

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More