public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Richard Yao <ryao@gentoo.org>
To: Greg KH <gregkh@gentoo.org>
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Re: [gentoo-kernel] Proper distribution integration of kernel *-sources, patches and configuration.
Date: Mon, 01 Jul 2013 23:29:39 -0400	[thread overview]
Message-ID: <51D24923.7080101@gentoo.org> (raw)
In-Reply-To: <20130702015606.GA26477@kroah.com>

[-- Attachment #1: Type: text/plain, Size: 8460 bytes --]

On 07/01/2013 09:56 PM, Greg KH wrote:> On Mon, Jul 01, 2013 at
09:36:21PM -0400, Richard Yao wrote:
>> On 07/01/2013 03:23 PM, Greg KH wrote:
>>> On Mon, Jul 01, 2013 at 08:45:16PM +0200, Tom Wijsman wrote:
>>>>>> Q: What about my stable server? I really don't want to run this
>>>>>> stuff!
>>>>>>
>>>>>> A: These options would depend on !CONFIG_VANILLA or
>>>>>> CONFIG_EXPERIMENTAL
>>>>>
>>>>> What is CONFIG_VANILLA?  I don't see that in the upstream kernel tree
>>>>> at all.
>>>>>
>>>>> CONFIG_EXPERIMENTAL is now gone from upstream, so you are going to
>>>>> have a problem with this.
>>>>
>>>> Earlier I mentioned "2) These feature should depend on a non-vanilla /
>>>> experimental option." which is an option we would introduce under the
>>>> Gentoo distribution menu section.
>>>
>>> Distro-specific config options, great :(
>>>
>>>>>>    which would be disabled by default, therefore if you keep this
>>>>>> option the way it is on your stable server; it won't affect you.
>>>>>
>>>>> Not always true.  Look at aufs as an example.  It patches the core
>>>>> kernel code in ways that are _not_ accepted upstream yet.  Now you all
>>>>> are running that modified code, even if you don't want aufs.
>>>>
>>>> Earlier I mentioned "3) The patch should not affect the build by
>>>> default."; if it does, we have to adjust it to not do that, this is
>>>> something that can be easily scripted. It's just a matter of embedding
>>>> each + block in the diff with a config check and updating the counts.
>>>
>>> Look at aufs as a specific example of why you can't do that, otherwise,
>>> don't you think that the aufs developer(s) wouldn't have done so?
>>
>> I am accquainted with the developer of a stackable filesystem developer.
>> According to what he has told me in person offline, the developers on
>> the LKML cannot decide on how a stackable filesystem should be
>> implemented. I was told three different variations on the design that
>> some people liked and others didn't, which ultimately kept the upstream
>> kernel from adopting anything. I specifically recall two variations,
>> which were doing it as part of the VFS and doing it as part of ext4. If
>> you want to criticize stackable filesystems, would you lay out a
>> groundwork for getting one implemented upon which people will agree?
>
> I was not criticising stackable filesystems at all, nor the aufs code,
> which I personally run on some of my own systems.
>
> I agree that the upstream kernel development of stackable filesystems
> has been all over the place, with seemingly not much guidance on how to
> get things merged properly.  Being that I am not part of the subset of
> the kernel development community, I am in no position to lay any
> groundwork out at all.
>
> And note, this is totally off-topic from this thread.
>
> My main point is that if Gentoo wants to start maintaining out-of-tree
> kernel patches, and modifying them, the maintenance nightmare is going
> to be huge.  Been there, done that, have way too many t-shirts
> commemorating it, and never want to do it again.
>
>>> The goal of "don't touch any other kernel code" is a very good one, but
>>> not always true for these huge out-of-tree kernel patches.  Usually that
>>> is the main reason why these patches aren't merged upstream, because
>>> those changes are not acceptable.
>>
>> I was under the impression that there were several reasons for patches
>> not being merged upstream:
>>
>> 1. Lack of signed-off
>
> No distro will accept code that does not have a signed-off-by line,
> otherwise they might get into trouble, as that implies the patch is not
> properly licensed, right?

That is wrong. Signed-off is an affirmation that the code is under the
license, but the absence of signed-off does not imply that the code is
not under the license. For example, I doubt you will receive signed-off
for PaX/GrSecurity, but is there any doubt that code is under the GPL?

To give another example, I doubt that you will receive signed off for
code from BSD UNIX, but is there any doubt that code is under the
3-clause BSD license?

>> 2. Code drop that no one will maintain
>
> Agreed.
>
>> 3. Subsystem maintainers saying no simply because they do not like
>> <insert non-technical reason here>.
>
> That is very rare and usually the subsystem maintainer can be poked to
> resolve this.

Past conversations with you have made me reluctant to try, but the next
time I see something like this, I will send you an email.

>> 4. Risk of patent trolls
>
> I know of no kernel patches outside of the tree because of this, do you?

There is compatibility code for DOS long filenames in fat that is no
longer in-tree because of this.

>> 5. Actual technical reasons
>
> That's the majority of the reasons patches aren't accepted.

Not all patches that aren't accepted are submitted to be rejected.

>> Only some of the patches were rejected. Others were never submitted. The
>> PaX/GrSecurity developers prefer their code to stay out-of-tree. As one
>> of the people hacking on ZFSOnLinux, I prefer that the code be
>> out-of-tree.
>
> There's also a small legal issue with the zfs code that might prevent it
> from being merged :)

To summarize an email from Linus, the reason people who want ZFS in the
main tree cannot have that is his signed-off policy. At least one of the
copyright holders has no interest in providing it.

>> That is because fixes for other filesystems are either held back by a
>> lack of system kernel updates or held hostage by regressions in newer
>> kernels on certain hardware.
>
> I have never heard this being a reason for keeping code upstream, what
> do you mean by it?

This is an issue that end users tend to encounter where changes in a
newer kernel break stuff that they need. One example is nouveau kexec
support. Another is that the nouveau in the first two RCs of Linux 3.7
(if I recall) broke my display completely.

>> With that said, being in Linus' tree does not make code fall under some
>> golden standard for quality. There are many significant issues in code
>> committed to Linus' the kernel, some of which have been problems for
>> years. Just to name a few:
>
> <bug reports snipped>
>
> The fact that bugs happen in 16 million lines of kernel code, moving at
> a rate that is orders of magnitude faster than any other software
> development project, is not news to anyone, it's a fact of life.
>
> The fact that we fix them when they are found is the important thing,
> don't you agree?
>
> And of course, any recommendations on how we can find these bugs before
> they are merged is _always_ accepted.

My point is that code in Linus' tree is not free from error. It has bugs
too and is by no means always better than out-of-tree code.

>> Being outside Linus' tree is not synonymous with being bad and being bad
>> is not synonymous with being rejected. It is perfectly reasonable to
>> think that there are examples of good code outside Linus' tree.
>
> Being outside of Linus's tree puts the maintenance and support burden on
> you, and you are working against a body of code that is going faster
> this week than it did last week, so your work is constantly increasing.
> That is why it should be merged, to save yourself work.

Then you get to be a kernel subsystem maintainer and you get to check
which version of the code was included in the kernel for each bug
report, rather than just having one codebase.

>> Furthermore, should the kernel kernel choose to engage that out-of-tree
>> code, my expectation is that its quality will improve as they do testing
>> and write patches.
>
> What do you mean by this?
>
> thanks,
>
> greg k-h
>

I started using ZFSOnLinux last year. Since then, I have written several
dozen patches. I wrote support for multiple new kernels, wrote support
for PaX/GrSecurity, diagnosed why swap on zvols was broken and wrote the
initial patches to fix it, collaborated on kernel preemption support,
fixed several kernel panics, etcetera. Nearly all of that work has been
merged by ZFSOnLinux upstream, has been rejected under mutual agreement
or is pending under review. If Gentoo developers begin maintaining other
out-of-linus'-tree kernel code in Gentoo, I imagine that similar things
would happen with that code as well.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

  reply	other threads:[~2013-07-02  3:29 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-01 14:41 [gentoo-dev] Proper distribution integration of kernel *-sources, patches and configuration Tom Wijsman
2013-07-01 15:14 ` Ben de Groot
2013-07-01 15:20 ` [gentoo-dev] Re: [gentoo-kernel] " Jeff Horelick
2013-07-01 18:30   ` Anthony G. Basile
2013-07-01 19:07     ` Tom Wijsman
2013-07-01 19:24     ` Greg KH
2013-07-01 19:40       ` Tom Wijsman
2013-07-01 19:55         ` Fabio Erculiani
2013-07-01 19:59           ` Pacho Ramos
2013-07-01 20:03             ` Fabio Erculiani
2013-07-01 20:06           ` Tom Wijsman
2013-07-01 20:24           ` Christoph Junghans
2013-07-01 20:27             ` Fabio Erculiani
2013-07-01 20:25           ` Rick "Zero_Chaos" Farina
2013-07-01 21:18       ` Anthony G. Basile
2013-07-01 16:20 ` [gentoo-dev] " Rick "Zero_Chaos" Farina
2013-07-01 16:28   ` hasufell
2013-07-01 17:35   ` Tom Wijsman
2013-07-01 17:52     ` Rick "Zero_Chaos" Farina
2013-07-05  0:19       ` Mike Pagano
2013-07-17 21:11         ` Donnie Berkholz
2013-07-01 18:17 ` [gentoo-dev] Re: [gentoo-kernel] " Greg KH
2013-07-01 18:38   ` Markos Chandras
2013-07-01 18:56     ` Tom Wijsman
2013-07-01 19:09       ` Matthew Summers
2013-07-01 19:25         ` Tom Wijsman
2013-07-01 19:33           ` Greg KH
2013-07-01 19:50             ` Tom Wijsman
2013-07-03 10:45               ` [gentoo-dev] " Steven J. Long
2013-07-03 12:42                 ` Tom Wijsman
2013-07-04  2:00                   ` Walter Dnes
2013-07-04  5:37                     ` [gentoo-dev] " Steven J. Long
2013-07-04  7:41                     ` [gentoo-dev] " Tom Wijsman
2013-07-04  5:27                   ` [gentoo-dev] " Steven J. Long
2013-07-04  7:57                     ` Tom Wijsman
2013-07-05  8:38                       ` Steven J. Long
2013-07-05  9:04                         ` Tom Wijsman
2013-07-09 15:12                           ` Steven J. Long
2013-07-01 20:14         ` Markos Chandras
2013-07-01 20:25           ` Fabio Erculiani
2013-07-01 21:26             ` Anthony G. Basile
2013-07-01 21:30               ` Fabio Erculiani
2013-07-01 21:55                 ` Anthony G. Basile
2013-07-01 20:31           ` Tom Wijsman
2013-07-01 18:45   ` Tom Wijsman
2013-07-01 19:23     ` Greg KH
2013-07-01 19:33       ` Tom Wijsman
2013-07-01 21:17       ` Anthony G. Basile
2013-07-01 21:24         ` Greg KH
2013-07-01 21:53           ` Anthony G. Basile
2013-07-02  8:31             ` gentoo-checkconf script " Michael Weber
2013-07-03 11:40               ` [gentoo-dev] Re: gentoo-checkconf script " Steven J. Long
2013-07-01 21:55           ` [gentoo-dev] " Tom Wijsman
2013-07-02  1:36       ` Richard Yao
2013-07-02  1:44         ` Richard Yao
2013-07-02  1:56         ` Greg KH
2013-07-02  3:29           ` Richard Yao [this message]
2013-07-02  3:40             ` Richard Yao
2013-07-02 19:39             ` Greg KH
2013-07-02  3:31           ` Richard Yao
2013-07-02  7:36 ` [gentoo-dev] " Sergei Trofimovich
2013-07-02  8:21   ` Fabio Erculiani
2013-07-02  8:37     ` Michael Weber
2013-07-02  8:52       ` Michael Weber
2013-07-02 18:16     ` Sergei Trofimovich
2013-07-03 13:06       ` Tom Wijsman
2013-07-03 13:52         ` Sergei Trofimovich
2013-07-03 15:18           ` Tom Wijsman
2013-07-03 16:10             ` Sergei Trofimovich
2013-07-02 10:08   ` Tom Wijsman
2013-07-02 21:48 ` Tomáš Pružina

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=51D24923.7080101@gentoo.org \
    --to=ryao@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=gregkh@gentoo.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox