我们不破坏用户空间。
We do not break userspace (2012)

原始链接: https://lore.kernel.org/all/CA+55aFy98A+LJK4+GWMcbzaa1zsPBRo76q+ioEjbx-uaMKH6Uw@mail.gmail.com/

这封邮件往来详细记录了林纳斯·托瓦兹和内核维护者毛罗·卡尔瓦略·切哈布之间因Linux 3.8-rc1引入的一个回归问题而产生的激烈争论。最近的一个与媒体相关的补丁(f0ed2ce840b3)导致PulseAudio和KDE媒体应用等用户空间程序出现故障。 切哈布最初认为问题在于用户空间程序,但托瓦兹强烈反对,并阐述了内核维护的一条基本规则:**如果内核的更改破坏了用户空间,那这就是内核的错误。** 托瓦兹批评了该补丁本身,称其在`ioctl`调用中错误地使用了`ENOENT`错误码,这是一种无效的做法,并称其为“彻头彻尾的垃圾”。 托瓦兹绕过切哈布直接应用了一个修复,强调内核绝不应该破坏现有的用户空间功能。他对切哈布试图将责任推卸给用户空间程序的行为表示强烈不满,并要求他改进内核编程方法和“合规工具”。

这次Hacker News的讨论围绕着2012年林纳斯·托瓦兹(Linux的创建者)和内核开发者毛罗之间的一次交流。链接的文章“我们不破坏用户空间”详细描述了一场激烈的争论,托瓦兹强烈批评毛罗的代码更改可能破坏现有的用户应用程序。 评论者承认托瓦兹的爆发是众所周知的事件(“林纳斯发怒”),但争论他所受到的批评是否公平。一位用户认为,托瓦兹的愤怒虽然表达方式严厉,但考虑到代码的潜在影响,是可以理解的。另一位用户赞扬毛罗在面对托瓦兹的“发脾气”时的镇定。 总体情绪表明,人们认识到激烈的争论是协作软件开发中的自然现象,即使表达方式并不总是理想的。
相关文章

原文
Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1) - Linus Torvalds
From: Linus Torvalds <[email protected]>
To: Mauro Carvalho Chehab <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>,
	Laurent Pinchart <[email protected]>,
	Linux Kernel Mailing List <[email protected]>,
	Hans Verkuil <[email protected]>
Subject: Re: [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1)
Date: Sun, 23 Dec 2012 09:36:15 -0800	[thread overview]
Message-ID: <CA+55aFy98A+LJK4+GWMcbzaa1zsPBRo76q+ioEjbx-uaMKH6Uw@mail.gmail.com> (raw)
In-Reply-To: <[email protected]>

On Sun, Dec 23, 2012 at 6:08 AM, Mauro Carvalho Chehab
<[email protected]> wrote:
>
> Are you saying that pulseaudio is entering on some weird loop if the
> returned value is not -EINVAL? That seems a bug at pulseaudio.

Mauro, SHUT THE FUCK UP!

It's a bug alright - in the kernel. How long have you been a
maintainer? And you *still* haven't learnt the first rule of kernel
maintenance?

If a change results in user programs breaking, it's a bug in the
kernel. We never EVER blame the user programs. How hard can this be to
understand?

To make matters worse, commit f0ed2ce840b3 is clearly total and utter
CRAP even if it didn't break applications. ENOENT is not a valid error
return from an ioctl. Never has been, never will be. ENOENT means "No
such file and directory", and is for path operations. ioctl's are done
on files that have already been opened, there's no way in hell that
ENOENT would ever be valid.

> So, on a first glance, this doesn't sound like a regression,
> but, instead, it looks tha pulseaudio/tumbleweed has some serious
> bugs and/or regressions.

Shut up, Mauro. And I don't _ever_ want to hear that kind of obvious
garbage and idiocy from a kernel maintainer again. Seriously.

I'd wait for Rafael's patch to go through you, but I have another
error report in my mailbox of all KDE media applications being broken
by v3.8-rc1, and I bet it's the same kernel bug. And you've shown
yourself to not be competent in this issue, so I'll apply it directly
and immediately myself.

WE DO NOT BREAK USERSPACE!

Seriously. How hard is this rule to understand? We particularly don't
break user space with TOTAL CRAP. I'm angry, because your whole email
was so _horribly_ wrong, and the patch that broke things was so
obviously crap. The whole patch is incredibly broken shit. It adds an
insane error code (ENOENT), and then because it's so insane, it adds a
few places to fix it up ("ret == -ENOENT ? -EINVAL : ret").

The fact that you then try to make *excuses* for breaking user space,
and blaming some external program that *used* to work, is just
shameful. It's not how we work.

Fix your f*cking "compliance tool", because it is obviously broken.
And fix your approach to kernel programming.

               Linus

  reply	other threads:[~2012-12-23 17:36 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-22  2:00 Linux 3.8-rc1 Linus Torvalds
2012-12-22  2:57 ` Steven Rostedt
2013-01-16  9:25   ` David Nyström
2012-12-23 13:39 ` [Regression w/ patch] Media commit causes user space to misbahave (was: Re: Linux 3.8-rc1) Rafael J. Wysocki
2012-12-23 14:08   ` Mauro Carvalho Chehab
2012-12-23 17:36     ` Linus Torvalds [this message]
2012-12-23 20:21       ` Mauro Carvalho Chehab
2012-12-23 22:29         ` Linus Torvalds
2012-12-24 19:28           ` Mauro Carvalho Chehab
2012-12-23 20:39       ` Laurent Pinchart
2012-12-23 22:04 ` linux-next stats (Was: " Stephen Rothwell
     [not found] ` <[email protected]>
2012-12-23 22:35   ` Linux 3.8-rc1 - another regression on USB :-( Linus Torvalds
2012-12-23 23:27     ` Greg Kroah-Hartman
2012-12-24  3:46       ` Woody Suwalski
2012-12-28 23:12         ` Woody Suwalski
2013-01-01 15:17         ` INVALID " Woody Suwalski
2013-01-02 13:41       ` Woody Suwalski
2013-01-12 13:16         ` Andreas Mohr
2013-01-12 16:54           ` Oliver Neukum
2013-01-12 17:38           ` Alan Stern
2013-01-16  4:26             ` Woody Suwalski
2013-01-16  8:25               ` Oliver Neukum
2013-01-16 15:00               ` Alan Stern
2013-01-17  2:25                 ` Woody Suwalski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CA+55aFy98A+LJK4+GWMcbzaa1zsPBRo76q+ioEjbx-uaMKH6Uw@mail.gmail.com \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
联系我们 contact @ memedata.com