CINXE.COM

LKML: "Theodore Ts'o": Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>LKML: "Theodore Ts'o": Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.)</title><link href="/css/message.css" rel="stylesheet" type="text/css" /><link href="/css/wrap.css" rel="alternate stylesheet" type="text/css" title="wrap" /><link href="/css/nowrap.css" rel="stylesheet" type="text/css" title="nowrap" /><link href="/favicon.ico" rel="shortcut icon" /><script src="/js/simple-calendar.js" type="text/javascript"></script><script src="/js/styleswitcher.js" type="text/javascript"></script><link rel="alternate" type="application/rss+xml" title="lkml.org : last 100 messages" href="/rss.php" /><link rel="alternate" type="application/rss+xml" title="lkml.org : last messages by &quot;Theodore Ts'o&quot;" href="/groupie.php?aid=" /><!--Matomo--><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(["setDoNotTrack", true]); _paq.push(["disableCookies"]); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//m.lkml.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!--End Matomo Code--></head><body onload="es.jasper.simpleCalendar.init();" itemscope="itemscope" itemtype="http://schema.org/BlogPosting"><table border="0" cellpadding="0" cellspacing="0"><tr><td width="180" align="center"><a href="/"><img style="border:0;width:135px;height:32px" src="/images/toprowlk.gif" alt="lkml.org" /></a></td><td width="32">聽</td><td class="nb"><div><a class="nb" href="/lkml"> [lkml]</a> 聽 <a class="nb" href="/lkml/2025"> [2025]</a> 聽 <a class="nb" href="/lkml/2025/2"> [Feb]</a> 聽 <a class="nb" href="/lkml/2025/2/8"> [8]</a> 聽 <a class="nb" href="/lkml/last100"> [last100]</a> 聽 <a href="/rss.php"><img src="/images/rss-or.gif" border="0" alt="RSS Feed" /></a></div><div>Views: <a href="#" class="nowrap" onclick="setActiveStyleSheet('wrap');return false;">[wrap]</a><a href="#" class="wrap" onclick="setActiveStyleSheet('nowrap');return false;">[no wrap]</a> 聽 <a class="nb" href="/lkml/mheaders/2025/2/8/494" onclick="this.href='/lkml/headers'+'/2025/2/8/494';">[headers]</a>聽 <a href="/lkml/bounce/2025/2/8/494">[forward]</a>聽 </div></td><td width="32">聽</td></tr><tr><td valign="top"><div class="es-jasper-simpleCalendar" baseurl="/lkml/"></div><div class="threadlist">Messages in this thread</div><ul class="threadlist"><li class="root"><a href="/lkml/2025/1/8/801">First message in thread</a></li><li><a href="/lkml/2025/2/6/1292">Linus Torvalds</a><ul><li><a href="/lkml/2025/2/7/755">"Dr. Greg"</a><ul><li><a href="/lkml/2025/2/7/1955">Steven Rostedt</a><ul><li><a href="/lkml/2025/2/7/1957">Steven Rostedt</a></li><li><a href="/lkml/2025/2/8/196">Hector Martin</a><ul><li><a href="/lkml/2025/2/10/443">Icenowy Zheng</a></li></ul></li></ul></li><li class="origin"><a href="/lkml/2025/2/9/43">"Theodore Ts'o"</a><ul><li><a href="/lkml/2025/2/9/43">Danilo Krummrich</a></li><li><a href="/lkml/2025/2/8/556">comex</a></li><li><a href="/lkml/2025/2/13/571">David Airlie</a><ul><li><a href="/lkml/2025/2/20/1391">Simona Vetter</a></li></ul></li><li><a href="/lkml/2025/2/13/1665">Ronja Meyer</a></li></ul></li></ul></li><li><a href="/lkml/2025/2/13/1645">33KK</a></li></ul></li></ul></td><td width="32" rowspan="2" class="c" valign="top"><img src="/images/icornerl.gif" width="32" height="32" alt="/" /></td><td class="c" rowspan="2" valign="top" style="padding-top: 1em"><table><tr><td><table><tr><td class="lp">Date</td><td class="rp" itemprop="datePublished">Sat, 8 Feb 2025 15:44:16 -0500</td></tr><tr><td class="lp">From</td><td class="rp" itemprop="author">"Theodore Ts'o" &lt;&gt;</td></tr><tr><td class="lp">Subject</td><td class="rp" itemprop="name">Re: On community influencing (was Re: [PATCH v8 2/2] rust: add dma coherent allocator abstraction.)</td></tr></table></td><td></td></tr></table><pre itemprop="articleBody">On Fri, Feb 07, 2025 at 06:16:38AM -0600, Dr. Greg wrote:<br />&gt; <br />&gt; The all powerful sub-system maintainer model works well if the big<br />&gt; technology companies can employ omniscient individuals in these roles,<br />&gt; but those types are a bit hard to come by.<br /><br />I'll let you in a secret. The maintainers are not "all-powerfui". We<br />are the "thin blue line" that is trying to keep the code to be<br />maintainable and high quality. Like most leaders of volunteer<br />organization, whether it is the Internet Engineerint Task Force (the<br />standards body for the Internet), we actually have very little power.<br />We can not *command* people to work on retiring technical debt, or to<br />improve testing infrastructure, or work on some particular feature<br />that we'd very like for our users.<br /><br />All we can do is stop things from being accepted (either in our<br />subsystem, or the imprimatur of the IETF). Hopefully, we're only<br />stopping bad things from progressing, but that *really* is all we can<br />actually do.<br /><br />One of the things which gets very frustrating from the maintainer's<br />perspective is development teams that are only interested in their pet<br />feature, and we *know*, through very bitter experience, that 95+% of<br />the time, once the code is accepted, the engineers which contribute<br />the code will disappear, never to be seen again. As a result, a very<br />common dynamic is that maintainers will exercise the one and only<br />power which they have --- which is to refuse to accept code until it<br />is pretty much perfect --- since once we accept the code, we instantly<br />lose all leverge, and the contributors will be disappear, and we will<br />be left with the responsibility of cleanig up the mess. (And once<br />there are users, we can't even rip out the code, since that would be a<br />user-visible regression.)<br /><br />Occasionally, there is an accusation that different standards that<br />might apply for people who are in the "gold old buys club". But what<br />isn't appreciated, is that it is precisely because people who are<br />long-term members of the community are trusted to stick around and<br />will support code that the have sponsored. For example, Darrick Wong,<br />who contributed ext4 metadata checksuming support before we moved on<br />to become the XFS maintainer, is still reviewing and making<br />contributions to code that he contributed many years to ext4. I've<br />been known to submit fixes to test bugs for xfs-specific tests in<br />xfstests that I discovered when running daily spinner tests on the<br />linux git tree.<br /><br />Just in the past two weeks, I've spent 15+ hours working on cleaning<br />up a casefold "security fix" that had nasty on-disk backwards<br />compatibility issues. Part of it was that it was ext4 (although I<br />discovered that there was also fsck.f2fs problems that had been<br />overlooked), but the *other* part of why I spent so much time was that<br />I sponsored the casefolding patches, and so I felt I certain moral<br />responsibility to make sure the code was continued to be maintained.<br /><br />(And note, this has nothing to do with who employs me; the 15-20 hours<br />that I spent working on creating the fix and the test scripts was<br />purely on my own time, on the weekend, or late at night. The time<br />that I spend doing this isn't reflected in my performance reviews, or<br />promotion propects --- in fact, arguably, over the past 15 years, this<br />has probably slowed down my promotion prospects; I've only been<br />promoted once since joining said big tech company...)<br /><br />&gt; Not sure what the fix is, from a project management perspective the<br />&gt; technology industry has never faced a challenge like this. The fork<br />&gt; model, which was the classic protection in open-source, doesn't work<br />&gt; at this scale.<br /><br />Well, here's my suggestion. Teams that want to get features,<br />especially ones that might be potentially disruptive, into the tree,<br />need to spend time becoming part of the *community*. This means that<br />they need to participate in part of the joint effort to keep the code<br />maintainable and high quaity --- even if it isn't part of their<br />company's short-term goals, or directly related to their pet feature<br />that they are trying to get upstream.<br /><br />This was the trust of my "Beyond Upstream First" presentation which I<br />gave to the Linux Foundation Member Summit last fall[1].<br /><br />[1] <a href="https://docs.google.com/presentation/d/11rMc8PBeyMItV6hv31OHSZ626_6FCZxjX6ZxEAehCpQ/edit#slide=id.p">https://docs.google.com/presentation/d/11rMc8PBeyMItV6hv31OHSZ626_6FCZxjX6ZxEAehCpQ/edit#slide=id.p</a><br /><br />Now, I'll say that the Rust developers are making strides in the right<br />direction here. Miguel has stood for election for the Technical<br />Adviory Board, and has been contributing in various ways beyond just<br />Rust for Linux. Ultimately, Cristoph's concern is that Rust is going<br />to make life harder for maintainers because of particular build breaks<br />getting in the way of the very limited bandwidth that Maintainers have<br />(and again, a lot of the work that we do gets done on our own personal<br />time; it's rare that even those maintainers employed by a "big<br />technology company" have complete freedom to work on whatever they<br />want; and they certainly don't have minions employed to do all of the<br />grunt work to support code maintenance work, especially if we let<br />crappy code slip past us in the name of "time to market" concerns.)<br /><br />So I think we'll get past this. It might take some more effort, and<br />more trust building --- on both sides --- but I'm fairly optismistic<br />that it will happen. It might not happe as *fast* as people might<br />like; as Linus pointed out, it took ten years for the Clang compiler<br />to be considered 100% fully supported --- and this was without needing<br />to worrying about language issues, including an upstream language<br />community which refuses to make any kind of backwards compatibility<br />guarantees, and which is *actively* hostile to a second Rust compiler<br />implementation (I suspect because it might limit their ability to make<br />arbitrary backwards-incompatble language changes).<br /><br />&gt; Obviously respect and open-mindedness to new ideas appears to be the<br />&gt; grease that makes all of this run smoothly. Unfortunately that seems<br />&gt; to be about as rare a commodity as omniscience in our industry.<br /><br />The other thing which is super rare is people and companies who care<br />about tech debt cleanup, code maintainability, and code quality.<br />Instead of complaining about maintainers for who are unreasonably<br />caring about these things, when they are desparately under-resourced<br />to do as good of a job as they industry demands, how about meeting us<br />half-way and *helping* us with these sort of long-term code health<br />issues? Maybe if you engage us as part of the community, we'll be a<br />lot more open to adding changes that might increase the code<br />maintenance burden?<br /><br />Cheers,<br /><br /> - Ted<br /><br /></pre></td><td width="32" rowspan="2" class="c" valign="top"><img src="/images/icornerr.gif" width="32" height="32" alt="\" /></td></tr><tr><td align="right" valign="bottom"> 聽 </td></tr><tr><td align="right" valign="bottom">聽</td><td class="c" valign="bottom" style="padding-bottom: 0px"><img src="/images/bcornerl.gif" width="32" height="32" alt="\" /></td><td class="c">聽</td><td class="c" valign="bottom" style="padding-bottom: 0px"><img src="/images/bcornerr.gif" width="32" height="32" alt="/" /></td></tr><tr><td align="right" valign="top" colspan="2"> 聽 </td><td class="lm">Last update: 2025-02-08 21:46 聽聽 [W:5.019 / U:2.004 seconds]<br />漏2003-2020 <a href="http://blog.jasper.es/"><span itemprop="editor">Jasper Spaans</span></a>|hosted at <a href="https://www.digitalocean.com/?refcode=9a8e99d24cf9">Digital Ocean</a> and my Meterkast|<a href="http://blog.jasper.es/categories.html#lkml-ref">Read the blog</a></td><td>聽</td></tr></table><script language="javascript" src="/js/styleswitcher.js" type="text/javascript"></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10