|
|
Subscribe / Log in / New account

LinuxCon Japan: Making kernel developers less grumpy

By Jake Edge
June 6, 2012

Greg Kroah-Hartman is on something of a mission: reducing the grumpiness factor among kernel developers, and maintainers in particular. His keynote at LinuxCon Japan was meant to help the audience understand what the maintainers do, and how contributors' actions can sometimes result in grumpy maintainers. But, if contributors can follow the rules and make things easier on him, there are a number of things that he will promise to do on their behalf.

[Greg KH] He called the Linux kernel the "largest software development project ever" and noted that its development pace is "unprecedented". From 3.0 to 3.4, some 2833 developers from at least 373 companies contributed. In that year (from May 2011 to May 2012), the kernel had a change rate of 5.79 changes per hour. But the rate keeps increasing and if you look at just the 3.4 cycle, the rate is 7.21 changes per hour. That is, of course, just patches that are accepted into the mainline, so it doesn't count those patches that are rejected.

Developers typically send their changes to the maintainer of the file that is being changed. Those maintainers, who number around 700, feed those changes up to the 130 subsystem maintainers. From there, the patches make their way into linux-next, then to Linus Torvalds, and, eventually the mainline—if they get accepted at each step along the way.

So, in order to see why some patches might not get accepted, he looked at those that he received in the last two weeks, which coincided with the 3.5 merge window. The merge window is a time when he really shouldn't be getting many patches. He should have received them all earlier in the cycle so that he could potentially pass them on to Torvalds during the merge window. But, he said, he got 487 patches in that two-week period, many with a wide variety of problems, and some of those from core kernel developers who should know better.

Broken patches

With that, he launched into a description of some of the broken patches he got. One patch was labeled "patch 48/48" (i.e. the last patch in a set of 48) but all of the other pieces were missing. He also got a patch series with no order specified, which means that he would have to guess at the order and undoubtedly get it wrong. The alternative is to ignore the patch entirely. He also got a ten-patch set that was missing patch two in the series.

Another patch came in an email with a signature claiming that it was confidential. He actually sees that one a lot, he said, and there is nothing he can do with those kinds of patches. Linux development is done in the open and you can't send a confidential email to mailing lists or get a confidential patch merged. Obviously, it is boilerplate that gets added somewhere in the email process, but it has to be removed before the patch can be used.

There are also malformed patches that end up in his inbox, including those with tabs converted to spaces. Microsoft Exchange does that, he said, so if that's a problem in your environment, do what IBM, Microsoft, and others do: put a Linux box in the corner for the developers to use to send their mail. Sometimes the leading spaces have been stripped off the diff or the diff is not in unified format. Linux developers have gotten good at raw editing diff format, he said, which is scary in itself, but they shouldn't have to do that.

Patches are also created in the wrong directory, like down in a driver directory for example. He got a patch created in /usr/src/linux-2.6.32 and noted that there were multiple things wrong with that, including the age of the source tree and that it implied it was being built by root. The latter is very dangerous as there was a bug in the Linux build process at one point that would delete the entire root filesystem if it was run as root. None of the core developers noticed because they don't build as root. Suggestions that the bug be left in as a deterrent were ignored, but things like that can happen.

In addition, patches came in that were made against a different tree than any he would expect. He got a patch made against the SCSI development tree, for reasons unknown because it had nothing to do with SCSI.

Then there are those that don't have the right coding style. In one case, the coding style was wrong and the developer acknowledged that but wanted him to take the patch anyway. That gives the impression of "we don't care, take our code anyway", he said. There are tools to help find and fix those kinds of problems, so there is no excuse: "send it in the right coding style".

Something he sees much more than he should are patches that don't even compile. The submitter clearly hasn't even built the patch, he said. Or there are patch sets that break the build in 3/6 but then fix it in 6/6. He even got a patch that broke the build in 5/8 but contained a note that sometime in the future the submitter would send changes to fix it. Another patch had obviously wrong kernel-doc in it that would cause failures building the documentation, so it was clear that the contributor had never even tried to run the kernel-doc extraction tool.

One of the patches he got "had nothing to do with me". It was an x86 core kernel patch, which is not an area of the kernel he has ever dealt with. But the patch was sent only to him. "I get odd patches" a lot, he said.

The last patch he mentioned was 450K in size, with 4500 lines added. Somebody suggested that it be broken up, but in the meantime several maintainers actually reviewed it, so the submitter didn't really learn from that mistake.

All of this occurred during a "calm two weeks", he said. These are examples of what maintainers deal with on a weekly basis and explains why they can be grumpy. That said, he did note that this is the "best job I've ever had", but that's not to say it couldn't be improved.

If someone sends him a patch and he accepts it, that means he may have to maintain it and fix bugs in it down the road. So it's in his self interest to ignore the patch, which is an interesting dynamic, he said. The way around that is to "give me no excuse to reject your patch"; it is as simple as that, really.

Rules

Kroah-Hartman then laid out the rules that contributors need to follow in order to avoid the kinds of problems he described. Use checkpatch.pl, he said, because he will run it on your patch and it is a waste of his time to have to forward the results back when it fails. Send the patch to the right people and there is even a script available (get_maintainer.pl) to list the proper people and mailing lists where a patch should be sent.

Send the patch with a proper subject that is "short, sweet, and descriptive" because it is going to be in the kernel changelog. It should not be something like "fix bugs in driver 1/10". In addition, the changelog comment should clearly say what the patch does, but also why it is needed.

Make small changes in patches. You don't replace the scheduler in one patch, he said, you do it over five years. Small patches make it easier for reviewers and easier for maintainers to accept. In a ten-patch series, he might accept the first three, which means that the submitter just needs to continue working on the last seven. The best thing to do is to make the patch "obviously correct", which makes it easy for a maintainer to accept it.

Echoing the problems he listed earlier, he said that patches should say what tree they are based on. In addition, the order of the patches is important, as is not breaking the build. The latter "seems like it would be obvious" but he has seen too many patches that fail that test. To the extent that you can, make sure that the patch works. It is fine to submit patches for hardware that you don't have access to, but you should test on any hardware that you do have.

Review comments should not be ignored, he said. It is simply common courtesy if he takes time to review the code that those comments should be acted upon or responded to. It's fine to disagree with review comments, but submitters need to say why they disagree. If a patch gets resent, it should be accompanied with a reason for doing so. When reviewer's comments are ignored, they are unlikely to review code the next time.

Maintainer's role

When you follow those rules there are certain things you can expect from him, Kroah-Hartman said, and that you should expect from the other maintainers as well. That statement may make other maintainers mad, he joked, but it is reasonable to expect certain things. For his part, he will review patches within one or two weeks. Other maintainers do an even better job than that, he said, specifically pointing to David Miller as one who often reviews code within 48 hours of its submission. If you don't get a response to a patch within a week, it is fine to ask him what the status is.

He can't promise that he will always give constructive criticism, but he will always give "semi-constructive criticism". Sometimes he is tired or grumpy, so he can't quite get to the full "constructive" level. He will also keep submitters informed of the status of their patch. He has scripts that will help him do so, and let the submitter know when the patch gets merged into his tree or accepted into the mainline. That is unlike some other maintainers, he said, where he has submitted patches that just drop into a "big black hole" before eventually popping up in the mainline three months later.

He ended by putting up a quote from Torvalds ("Publicly making fun of people is half the fun of open source programming. ...") that was made as a comment on one of Kroah-Hartman's Google+ postings. The post was a rant about a driver that had been submitted, which even contained comments suggesting that it should not be submitted upstream. He felt bad about publicly posting that at first, but Torvalds's comment made him rethink that.

Because kernel development is done in the open, we are taking "personal pride in the work we do". As the code comment indicated, the driver developer didn't think it should be submitted because they realized the code was not in the proper shape to do so. It is that pride in the work that "makes Linux the best engineering project ever", he said. Sometimes public mocking is part of the process and can actually help instill that pride more widely.

[ The author would like to thank the Linux Foundation for assistance with his travel to Yokohama. ]

Index entries for this article
KernelDevelopment model
ConferenceLinuxCon Japan/2012


to post comments

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 7, 2012 8:55 UTC (Thu) by dgm (subscriber, #49227) [Link] (26 responses)

> Sometimes public mocking is part of the process and can actually help instill that pride more widely.

Indeed. There's no pride in contributing to a project that would accept the uttermost trash. Or as Groucho put it: "I don't care to belong to any club that will have me as a member".

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 1:10 UTC (Fri) by gdt (subscriber, #6284) [Link] (25 responses)

And sometime public mocking is counter-productive. Here's an example from yesterday where a developer was mocked for no good purpose (the API documentation was out of date, and they were asking how it now worked). I wonder if the developer feels as motivated about contributing to the kernel as they did before that thread. The level of blame towards the developer rather than towards the patch which didn't update the documentation is interesting.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 1:25 UTC (Fri) by gregkh (subscriber, #8) [Link] (23 responses)

That developer has an out-of-tree driver, and is trying to keep it out of
tree, so that others can not fix their bugs, so of course that will be difficult, and when that author blames other people for problems, wouldn't you respond in the same manner?

We are people, and people are messy, kernel developers have no requirement to always be civil, especially to people to purposefully do not participate in our development process, and then blame us for problems.

What would you do in that situation?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 2:38 UTC (Fri) by rahulsundaram (subscriber, #21946) [Link] (21 responses)

The problem with mocking or deriding someone in public is that you are likely to put off other genuinely interested people who might be scared that they will get treated badly for a sincere effort. This depends on the local culture at times. The answer isn't always to grow a thicker skin. Being more civil in general helps. Strong responses doesn't equate to impolite ones although some developers seem to treat it that way.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 4:50 UTC (Fri) by gregkh (subscriber, #8) [Link] (19 responses)

Sure, it would be nice if no one was ever mean in public, but we are talking about real people here, with feelings and foibles.

And read that whole thread, this person is obviously trying to work outside of the kernel developer community, they don't want to be involved, they only want validation that they were using some kernel code based on a documentation line, instead of reading the code itself.

So tell me, honestly, how would you respond in that kind of situation.

Now multiply that interaction by 400 every week.

Tell me how you would react then.

I think we all are doing a very good job given the load we all work under. If you think you can do better, please, help out, we can use it, and we welcome help. But criticizing without understanding the issues, environment, or situation surrounding a specific interaction, does nothing.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 19:41 UTC (Fri) by daglwn (guest, #65432) [Link] (12 responses)

> we are talking about real people here, with feelings and foibles.

Sure, but so what? That kind of behavior would not be tolerated in any workplace and it shouldn't be tolerated in any project that considers itself professional.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 19:58 UTC (Fri) by dlang (guest, #313) [Link] (8 responses)

how many workplaces would allow someone who goes out of their way to not pay the company anything to just walk in and start complaining about how the company does things?

or complaining that the add-on component that the outsider designed to plugin to the companies devices didn't work and demanded time from your senior engineers to help troubleshoot the outside product?

I guarantee you that if you did manage to corner senior people like this you wouldn't get thanks and help. At best you would get a polite brush-off (and instructions to pay for support)

so if you're going to start the "wouldn't be tolerated in the workplace" approach, realize that the initial request wouldn't be tolerated either

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 3:51 UTC (Sat) by daglwn (guest, #65432) [Link] (7 responses)

> At best you would get a polite brush-off (and instructions to pay for support)

Which is a perfectly fine response, and is what SHOULD happen on LKML.

There is a difference between saying "no" and publicly humiliating.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 5:48 UTC (Mon) by broonie (subscriber, #7078) [Link] (6 responses)

You also have to remember that some people do things like repeatedly ask for this sort of support, contribute nothing back and ignore advice that would help them avoid their problems (IIRC the referenced example may be a case where some of that applies).

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 16:44 UTC (Mon) by daglwn (guest, #65432) [Link] (5 responses)

At that point simply ignoring the poster is the best option.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 13, 2012 13:36 UTC (Wed) by broonie (subscriber, #7078) [Link]

Not really, there's several problems there. Completely ignore people and they'll just start complaining about that, and it does happen that people just need you to make it more obvious that there's a problem. It also means that it's less clear if you're not responding to things because you're just busy, if you're not responding to things because there are things that need to be corrected or if something else is going on.

It's just a generally bad way of correcting people's behavior.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 13, 2012 22:32 UTC (Wed) by nevets (subscriber, #11875) [Link] (3 responses)

Obviously you are not in this kind of situation.

I've been complimented on being one of the politest developers on LKML. I jump into heated flames all the time without resorting to insults, even when insults are directed at me.

But as I started working on more core kernel code, and becoming more responsible for code that was used by a wider audience, I started getting some of these crazy requests. I started with the polite responses, but that just seemed to bring more craziness my direction. Then the polite brush offs, which also attracted this crap. Ignoring it made me look unprofessional (not responding to email). Finally I resorted to some insulting feedback and that seemed to work.

I wasted my own time trying to be nice. One thing that you can get from Greg's report is that kernel developers have very limited time. Time is our most precious resource. If being polite wastes time, and a quick jab is more effective, then those quick jabs become the efficient process.

Sorry, but unfortunately it's just part of the job. Now, as we are still humans, some developers can go overboard with their insults. But just imagine getting email every day from people that don't make the effort to understand the process. When being a bit of a jerk back either makes them understand or just go away, and you get more work done, one tends on being that jerk.

If you're creative with your insult you might even get the added benefit of appearing on LWN's "Quote of the week" :-)

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 18, 2012 12:36 UTC (Mon) by marcH (subscriber, #57642) [Link] (2 responses)

> Ignoring it made me look unprofessional (not responding to email). Finally I resorted to some insulting feedback and that seemed to work.

Answering harassment or trolls is anything but professional. Ignoring harassment is definitely professional.

Whom do you trust to define what is professional versus not, the harassers?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 18, 2012 15:05 UTC (Mon) by nevets (subscriber, #11875) [Link] (1 responses)

If it was harassment or troll I would definitely ignore it (or maybe just have a bit of fun with them too ;-) OK that wouldn't be professional, but it does relieve stress.

But it's usually people that expect something for nothing, or just do not listen to the responses you give. After a bit of explaining the same thing multiple times, and getting the same answer back without it going any further, is where one starts to get frustrated, and a quick jab can sometimes wake them up.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 18, 2012 16:36 UTC (Mon) by marcH (subscriber, #57642) [Link]

> After a bit of explaining the same thing multiple times, and getting the same answer back without it going any further,

This what I called "harassment". Please search/replace with a better term, thanks.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 19:59 UTC (Fri) by branden (guest, #7029) [Link] (2 responses)

Sounds like you've never, ever worked for a type-A manager.

You should watch the movie _Glengarry Glen Ross_ sometime.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 3:49 UTC (Sat) by daglwn (guest, #65432) [Link] (1 responses)

Why WOULD you work for such a manager?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 12:38 UTC (Tue) by mpr22 (subscriber, #60784) [Link]

A number of factors.

  • Trying to persuade HR that your manager is a domineering jerk holds the prospect of being a stressful process.
  • Being on welfare is a stressful state.
  • Looking for a job is a stressful process.
  • It isn't always apparent during one's employment interview that one's prospective manager is a domineering jerk.
  • Sometimes the domineering jerk becomes one's manager after one has commenced employment, due to promotions, org chart reshuffles, etc.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 1:52 UTC (Sat) by daniel (guest, #3181) [Link] (2 responses)

<quote>Sure, it would be nice if no one was ever mean in public, but we are talking about real people here, with feelings and foibles.</quote>
<br><br>
Greg, so how can I avoid concluding from your comment that if a maintainer really feels like being mean then it is ok, because that is just a real person who really feels like being mean?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 3:04 UTC (Sat) by gregkh (subscriber, #8) [Link] (1 responses)

You have got to be kidding me.

*plonk*

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 3:52 UTC (Sat) by daglwn (guest, #65432) [Link]

Seems like a perfectly reasonable question to me.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 4:57 UTC (Sat) by rahulsundaram (subscriber, #21946) [Link] (1 responses)

I am not being critical. I am not talking about this specific situation or people either but I see a culture of pride in deriding people and I don't think that is a good thing to cultivate.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 13, 2012 22:47 UTC (Wed) by nevets (subscriber, #11875) [Link]

I don't see a culture in pride about mocking people. Yeah, Linus made that statement that it's fun to poke fun at people, and sometimes he does that too much. Although, I've been the butt of his insulting jokes before, but to be perfectly honest, he has that wit about him that he can insult you and you are still entertained by it. I now look forward to the next insult that Linus gives me, that I sometimes egg him on ;-)

But really, I've seen LKML actually become much more professional and less insulting. 8 years ago it was more vicious. I've seen people get insulted for no good reason, and the insults were quite nasty. Today, and even the example someone posted here, the insults come after a lot of back and forth where no progress is made, and the developer finally gets frustrated. You can even see the frustration in the insults.

Sometimes its just that the person on the other end isn't getting the point of the developer. Lots of miscommunication. That's natural. My point is that on the whole, kernel developers are pretty good to you if you just try to make an effort, and hide your ego. The last thing a developer wants is code coming from someone that says they know better than the developer. Sure, they may know more, but it works much better if you show them benchmarks and numbers to back your work, than just saying "I'm an expert in this".

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 19:13 UTC (Sat) by marcH (subscriber, #57642) [Link]

> Now multiply that interaction by 400 every week.
>
> Tell me how you would react then.

The only sane way: like a robot.

Please just stop caring and send 400 pre-canned, polite, terse and relevant answers per week. I am sure you are well able of automating your email software so the time required to select and send such a pre-canned answer becomes negligible compared to the time actually spent reading the corresponding submission. Bonus: you save time for the interesting submissions & discussions.

Real people have feelings. Silencing them when needed is part of being a professional.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 10, 2012 2:08 UTC (Sun) by gdt (subscriber, #6284) [Link]

Exactly this. I was reading the list with a view to cleaning and submitting my years-old patches to add NAT for Cisco Sippy phones and for per-route TCP algorithm selection. What that exchange says to me is "it isn't worth the angst and that I'd be happier doing one of the 101 other things competing for time in my life".

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 8, 2012 18:37 UTC (Fri) by daglwn (guest, #65432) [Link]

I would be a professional and respond pretty much as you did here.

I would even throw in a "thank you" for finding a documentation bug.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jul 13, 2012 10:20 UTC (Fri) by dmk (guest, #50141) [Link]

<quote>Here's an example from yesterday where a developer was mocked for no good purpose </quote>

I guess, that message would have been better with the hint that if the documentation is wrong, the correct thing is to sent a patch to fix it, not to bitch about it.

Still emailing patches?

Posted Jun 7, 2012 9:34 UTC (Thu) by epa (subscriber, #39769) [Link] (11 responses)

People are still sending patches by email instead of git pull requests?

Still emailing patches?

Posted Jun 7, 2012 10:06 UTC (Thu) by aliguori (subscriber, #30636) [Link] (9 responses)

I think github has really ruined people's workflows with git. If the first time your code is being reviewed is a PULL request, you're doing it wrong.

Still emailing patches?

Posted Jun 7, 2012 13:04 UTC (Thu) by jengelh (guest, #33263) [Link] (8 responses)

>If the first time your code is being reviewed is a PULL request, you're doing it wrong.

I do not think so. A pull request, in properly-organized circles, always involves an implicit request for review — which is why you can see "this is not ready yet"-type of warnings when the pull is not really meant as a pull, but as a review only that just happens to look like a pull request; git-request-pull(1) just makes for a short statistical overview.

Still emailing patches?

Posted Jun 7, 2012 16:03 UTC (Thu) by iabervon (subscriber, #722) [Link] (4 responses)

The problem with pull requests for review is that they don't provide a useful structure for feedback on the code level; you really want the patch as the context for the discussion, and you want it to be one level quoted (so your comments read as a response to the code). A pull request is a good point for a bit of review, but it's really only great for, well, one bit: yes/no on taking the change in its current form.

Still emailing patches?

Posted Jun 7, 2012 17:01 UTC (Thu) by epa (subscriber, #39769) [Link] (2 responses)

I imagined there would be some git tool which showed you the diff associated with a pull request and allowed you to comment on it (perhaps by simply forwarding it to yourself as electronic mail). Email is great for natural language communication but it seems strange to use it as the primary means to send copies of source code.

A pull request makes more sense, in a way, since if you want to view the code differences in a different format you can do so easily.

Still emailing patches?

Posted Jun 7, 2012 17:33 UTC (Thu) by iabervon (subscriber, #722) [Link] (1 responses)

Oh, pull requests are definitely the way to go for shipping code around. But sending patches is generally a better way of starting a conversation, because it puts what the reviews will want to respond to already in the message that they're replying to. You can certainly generate the message to reply to, and tweak the reply to go back to the author, and you could arrange to have the reply look like a reply to the pull request (so that threading works) and you could arrange to follow project policies on cc:ing other potential reviewers so they can skim your review and know what doesn't need to be said again, but it all just happens automatically if the patch is the original message.

Of course, this is only relevant if the project communication is mailing-list-based, and particularly if it's got policies which imply that participants must have heavy-duty email-handling techniques; that's not all (or even most) projects, but it is the kernel.

Still emailing patches?

Posted Jun 9, 2012 20:29 UTC (Sat) by marcH (subscriber, #57642) [Link]

A combination of a bug/feature request tracker + email typically solve all these problems nicely. Granted, every tracker requires some amount of customization but, well within the abilities of this community.
Is there here an aversion to databases generally speaking? Or maybe it's just because many maintainers have become too attached to their hard-earned email scripts and shortcuts.

Still emailing patches?

Posted Jun 7, 2012 18:44 UTC (Thu) by jengelh (guest, #33263) [Link]

>pull requests [...] don't provide a useful structure for feedback on the code level; you really want the patch as the context for the discussion

Pull requests without patches may work in some circles. However, where trees grow by the gardening rules of David Miller — and the networking tree has been named as an organized citizen by LWN before, sort of —, pulls better had patches alongside.

Do `git send-email --compose ...`, and while in the editor, run-and-paste the output of `git request-pull ...`.

Still emailing patches?

Posted Jun 9, 2012 20:09 UTC (Sat) by marcH (subscriber, #57642) [Link] (2 responses)

> > If the first time your code is being reviewed is a PULL request, you're doing it wrong.

> I do not think so. A pull request, in properly-organized circles, always involves an implicit request for review

Should be called a fetch request.

Still emailing patches?

Posted Jun 10, 2012 18:29 UTC (Sun) by mathstuf (subscriber, #69389) [Link] (1 responses)

Eh, that doesn't mesh well with git's verbiage. I don't really care if all someone does is fetch my code from my repository. What I am actually asking for is someone to fetch and integrate my code into their tree. This is done with pull usually. Other terms I can accept: merge request, patch request, patch review, and branch review. I don't think 'fetch' really works here though.

Still emailing patches?

Posted Jun 11, 2012 6:56 UTC (Mon) by marcH (subscriber, #57642) [Link]

> I don't really care if all someone does is fetch my code from my repository.

So, if I ask you to fetch my (not ready yet) code you will do it just to waste bandwidth?

Still emailing patches?

Posted Jun 11, 2012 5:51 UTC (Mon) by broonie (subscriber, #7078) [Link]

Of course they are, e-mail is the main code review mechanism the kernel uses. Pretty much everything should be going through e-mail so people can provide review comments even if the patch ends up getting transferred via git.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 2:26 UTC (Sat) by daniel (guest, #3181) [Link] (27 responses)

Sometimes public mocking is part of the process and can actually help instill that pride more widely.

Jon, you are not helping to improve the toxic culture on LKML by glorifying such antisocial behavior. And it is not OK just because Linus says it is fun. Sometimes Linus says really dumb things and we think it is ok because it is Linus. But we don't then need to go on and repeat those dumb things, because we are not Linus.

By the way, would you consider putting a copy of the "preview" button to the left of the "publish" button?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 3:55 UTC (Sat) by daglwn (guest, #65432) [Link] (2 responses)

> Jon, you are not helping to improve the toxic culture on LKML by glorifying such antisocial behavior.

Thank you.

We have to stop accepting antisocial behavior because "that's the way it always has been." It's NOT the way it always has been nor should it be the way it will be.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 20:18 UTC (Sat) by marcH (subscriber, #57642) [Link] (1 responses)

OK but, what if you do not have a life? Where else can you let off some steam?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 18:37 UTC (Mon) by daglwn (guest, #65432) [Link]

Seek professional help. No, that's not mocking, I'm serious. If someone is really in a situation where mocking is the only answer, there are other things going on which must be addressed. He or she will be much happier in the long run.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 9, 2012 6:05 UTC (Sat) by viro (subscriber, #7872) [Link] (2 responses)

I wonder if you realize that you've just managed to sound exactly like the "moral majority" twits...

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 11:30 UTC (Mon) by nix (subscriber, #2304) [Link]

Sod the "moral majority". I'm a member of the "don't be horrible to people unless you don't mind the risk of never seeing them again, and driving off observers who see that interaction" majority. I know *I've* been strongly discouraged from ever contributing to the Linux kernel by the high-temperature reception that contributions are all too often met by: I'll do it if necessary, but I'll probably go via someone else to let them face the flames instead of me. And if it's putting off randomly selected white males working for Linux companies it's probably putting off a lot of other people in less fortunate positions.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 18:40 UTC (Mon) by daglwn (guest, #65432) [Link]

So what is the point of the above comment, exactly? This is just the sort of thing that kernel developers should avoid. It adds no value to the discussion and turns people off. Listen to alternative ideas. They are often valuable.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 10, 2012 17:25 UTC (Sun) by gregkh (subscriber, #8) [Link] (20 responses)

Criticizing, and mocking, bad code is essential for ensuring that bad code is not accepted, and that it gets better.

How do you expect for people to get better, and create better code, if this does not happen?

Should we just say things like "not accepted" and leave it at that? That helps no one.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 10, 2012 17:44 UTC (Sun) by rahulsundaram (subscriber, #21946) [Link] (5 responses)

Not accepted. Here is how you can fix it or here is what is wrong would serve the purpose. Mocking is hardly essential. Arguing that it is, is ridiculous.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 5:58 UTC (Mon) by broonie (subscriber, #7078) [Link] (3 responses)

Notice that he said "criticizing and mocking" not just mocking; what tends to actually happen here (for the most part) is that there will be some iterations of "this needs improvement" (possibly on multiple patches). The mocking usually only comes in when the submitter is doing something like not listening to review comments at which point something stronger frequently is actually very helpful.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 18, 2012 13:23 UTC (Mon) by marcH (subscriber, #57642) [Link] (2 responses)

> The mocking usually only comes in when the submitter is doing something like not listening to review comments at which point something stronger frequently is actually very helpful.

"Something stronger" is very helpful (in the short term) to the overworked maintainer who needs to let off steam. It'd be great to see proof it is actually effective at anything else.

In this example insults apparently did nothing to quench the thread
http://article.gmane.org/gmane.linux.kernel/1281217
Only disregard looks like it eventually had an effect.

(by the way painful people and children tend to feel disregard much stronger than mocking, since the latter is a form of the attention they're after)

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 22, 2012 17:51 UTC (Fri) by martinfick (subscriber, #4455) [Link] (1 responses)

So, are you suggesting that mocking is not painful enough?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 22, 2012 22:27 UTC (Fri) by marcH (subscriber, #57642) [Link]

I obviously did not say anything that simplistic on such a complex topic.
For a start, there is not one single type/scale of pain.

Anyway pain is not really the main issue with mocking (you might have re-ordered one of my sentences when reading and misplaced "painful"). The main issue with mocking and public humiliation is: it degrades not just the persons involved but the whole group. That could explain why it is much less tolerated in Asian cultures which are often less individualistic.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 8:44 UTC (Mon) by dgm (subscriber, #49227) [Link]

This is a waste of (scarce!) reviewer time. If people were allowed to send crappy patches, some would do it and clog the pipe. It's better for everybody to prevent this from happening on the first place.

I guess most reviewers start as you say (nobody wants to be a dork, after all). It's when you exhaust your patience that the mocking starts.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 11, 2012 16:47 UTC (Mon) by daglwn (guest, #65432) [Link] (13 responses)

Greg, how about you teach people? Really, what is so very hard about treating people decently? If they don't listen, then stop listening to them and simply don't respond.

No, the mocking is about something very different. It's about the mocker feeling better about himself.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 0:41 UTC (Tue) by gregkh (subscriber, #8) [Link] (12 responses)

Am I not teaching people properly? Isn't that exactly what this very talk was about? Did you read the 3000 words that went along with the talk? Did I say anything wrong there about how you can properly submit code to the kernel and what to do?

I don't "mock" people, I critique code, and sometimes, that includes pointing out horrible examples of where the author went totally wrong, in the code. If you were someone who relies on Linux, don't you want the maintainers doing that in order to ensure that the code is of the highest quality?

Take some time this week and provide review comments on code submissions to the Linux kernel. That will help everyone out (the authors, and the maintainers), and give you a glimpse of how difficult this task really is.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 1:57 UTC (Tue) by daglwn (guest, #65432) [Link] (11 responses)

> Am I not teaching people properly?

Not if you're making personal attacks, no.

> I don't "mock" people, I critique code, and sometimes, that includes
> pointing out horrible examples of where the author went totally wrong, in > the code.

It's all about the language. It really is. Providing a strong critique is good. Calling someone or something someone has created "stupid" is not.

Your whole talk is predicated on the assumption that the only the contributors are doing it wrong. There are two sides to this coin and the maintainers also need to improve. I could give an equally compelling talk about how to make contributors less grumpy. We're all human and we all have improving to do.

I've been through enough code reviews to know that it is challenging. Much of the challenge is in remaining professional and taking the time to mentor people rather than castigate them.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 4:34 UTC (Tue) by jrn (subscriber, #64214) [Link] (9 responses)

> Providing a strong critique is good. Calling [...] something someone has created "stupid" is not.

Why not? Isn't it a useful way to teach people to start looking at the effect (both direct and on maintainability) of their own work critically and to think less sentimentally about their code?

Plenty of people have told me some code that I wrote was stupid and been right. I am generally grateful for the reality check.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 6:20 UTC (Tue) by liw (subscriber, #6379) [Link] (8 responses)

Bob, 8, has written an essay for school. The teacher reads it out aloud to the class, and then tells everyone it's a stupidly written essay, full of spelling mistakes and the storyline is silly too. Does this make Bob learn to write better essays? Does it help if the teacher also goes through every mistake Bob made and suggests improvements?

For most instances of Bob, it doesn't help him to be taught that way. Some instances of Bob don't care, and will learn anyway, but those instances are in the minority. The majority of Bobs will be upset, and hurt, and will have a hard time accepting any lessons from the experience, and indeed may well have a harder time accepting any lessons from that teacher in the future.

Now, it's true that the emotional lives of 8-year-olds and adults are different. On the whole, adults can take more emotional stress and conflict, but the general effect is the same, just less strong.

There is a subset of programmers who have what is called a thick skin: they can take a lot more abuse than the average person without being upset much. Given the way text-only communication over the Internet tends to filter away subtle emotional expressions, it's very easy to express yourself in a way that seems neutral to you, but feels hurtful to the recipient. Without an effort to avoid that, mailing lists for free software development tend to push out those who are more easily hurt, making the list be mainly populated by those with thick skins.

That's not a good thing. Apart from any moral aspects, it reduces the number of potential participants a lot: those who submit patches and feel hurt, and those who are watching and decide to not even submit a patch.

Note that this is all about how you express criticism, not at all about having to be accepting and supporting of anyone who submits any kind of patch. It's perfectly fine to criticize and reject patches. You can, however, be nice about it.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 7:23 UTC (Tue) by bronson (subscriber, #4806) [Link] (1 responses)

I take it you don't subscribe to LKML.

There's no need to encourage every mediocre Bob. There's only a need to encourage excellent, self-motivated Roberts, and to actively discourage well-meaning but noisy Bobbies.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 8:03 UTC (Tue) by dgm (subscriber, #49227) [Link]

At least until they turn 18.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 8:36 UTC (Tue) by dgm (subscriber, #49227) [Link] (2 responses)

> it reduces the number of potential participants a lot: those who submit patches and feel hurt, and those who are watching and decide to not even submit a patch.

Last time I looked there was not a shortage of people submitting patches, but of people reviewing them. And also, when calling someone "a moron" openly on a mailing lists opens yourself to a lot of criticism, thus people try to avoid doing it unless they have good reasons.

In practice (not that I follow LKML that much lately, but still) I haven't seen people calling newbies "noob" or "stupid" just because, but when they did something stupid indeed. If someone does, they tend to get routed around by the rest of the community, because they tend to be "toxic" people.

To summarize: If Linus Torvalds calls you names, better pay attention. And better ask first and try to educate yourself before posting stuff on a mailing list full of busy people.

And let me tell you a little tale, too:
"Bob has come to the kitchen, where his father is cooking dinner. While his father is not looking, he grabs a knife and starts cutting some vegetables, just like he has seen his father do so many times. But Bob is not very good at handling the knife, and it's too big for his hands. His father, hearing the noise, tells his son how to properly handle the knife, and then keeps on with the cooking. A minute later both are running to the hospital because Bob has a deep bleeding cut on his left hand.

After that episode, Bob's father tries to avoid using harsh words. It's his own fault, after all. A week later, while Bob's father observes the remains of the burnt family kitchen, he cannot avoid to ask himself if this all could have been prevented somehow."

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 14, 2012 8:55 UTC (Thu) by spanezz (guest, #56653) [Link] (1 responses)

You seriously think it would have helped if the first reaction of Bob's father at Bob badly cutting himself had been publicly shaming him?

My feeling of distress towards people advocating mocking people in public is kind of being shadowed by your disturbing choice of example.

I would expect that any normal father would, on seeing that Bob is playing with a dangerous knife, tell him that he should help dad with that only after he grew up a bit and has more experience with dangerous tools. And if Bob is really interested in helping with knives, give him a small blunt knife to help cut soft fruit for the fruit salad.

That also sounds like a reasonable, grown up reply (aside of course of the patronising tone) to inexperienced but eager people wasting other people's time on LKML.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 17, 2012 7:17 UTC (Sun) by yeti-dn (guest, #46560) [Link]

So you agree that kernel devs should tell people that they should try to help dad with that only after they grew up a bit and have more experience with dangerous tools. Good.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 17:28 UTC (Tue) by gregkh (subscriber, #8) [Link]

The number of people contributing kernel patches keeps increasing every year, and the rate of patches submitted also keeps increasing.

So, something we are doing is correct here. Remember, we have a overabundance of kernel developers, and we purposefully waste their time in order to make the project better overall. And so far, it seems to be working, if you think otherwise, that's great, how do you prove that?

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 13, 2012 4:57 UTC (Wed) by jrn (subscriber, #64214) [Link] (1 responses)

Thank you.

I agree with what you said. It suggests to me that providing a strong critique is not always good, at least in public, unless you are very tactful. Better to find a minimal set of hints that makes it clear what people interested in the patch can do next.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 13, 2012 18:02 UTC (Wed) by bronson (subscriber, #4806) [Link]

That would be true if patch reviewers were in unlimited (or even sufficient) supply, and if iteration was a viable way to develop a decently sized kernel patch.

Neither of which is currently the case.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 12, 2012 17:26 UTC (Tue) by gregkh (subscriber, #8) [Link]

> Your whole talk is predicated on the assumption that the only the contributors are doing it wrong.

Have you read or seen this talk? I do not think that was the assumption at all, and I pointed out that the large majority of patches I get are just fine, but I still get lots of incorrect ones, and here are some specific examples of what not to do.

It is not my job to mentor anyone, which people here seem to forget. It is my job to guide them in how to correct incorrect code, up to a point.

For each and every maintainer to be a personal mentor to the thousands of kernel developers does not scale at all, and is not anything that anyone has ever said is the job of any kernel developer or maintainer to do.

Remember, we waste kernel engineer's time, as that is what we have a surplus of at this point (and have for the past 8 years or so.) We do this so that the project overall gets better and succeeds, and so far, we seem to be doing a good job at this. If you have statistics that point out otherwise, please let us know.

LinuxCon Japan: Making kernel developers less grumpy

Posted Jun 26, 2012 19:15 UTC (Tue) by dvhart (guest, #19636) [Link]

While I have always enjoyed Linus's (and others) diatribes as a sort of guilty pleasure, I believed he often went overboard and probably did more harm than good. However, in Linus's most recent infamous video in which he gives nVidia the proverbial birdy, he shared an example of why it was so important for him to speak his mind clearly, plainly, and loudly. People put a lot of effort into kernel patches, a whole lot. I would much rather be called an idiot by Linus (frankly there isn't much sting in that anymore, he calls everyone an idiot) than work for a year on something only to find out later he objects to the very concept of what I'm working on. He says it better in the video and I suggest watching for that and not getting distracted by the birdie if you haven't already watched it. It was quite insightful for me.

On Exchange and tabs to spaces...

Posted Jun 30, 2013 20:41 UTC (Sun) by yuhong (guest, #57183) [Link]


Copyright © 2012, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds