time it takes to get a project into the upstream kernel
Posted Jul 25, 2007 14:26 UTC (Wed) by mingo
In reply to: Interview with Con Kolivas (APC)
Parent article: Interview with Con Kolivas (APC)
Con Kolivas has been maintaining swap prefetching for more than a year.
Btw., while I support the upstream integration of the swap-prefetch code (i ran Con's testapp, reported the numbers, reported regressions, tested fixes, reviewed the code, gave my Ack, etc.), i'd like to point out that the above characterisation is quite unfair towards lots of other kernel developers who currently have one feature or another queued for upstream integration.
Lots of features had to wait several years and go through lots of iterations before they were merged. Some are still not merged as of today. Some were rejected and abandoned.
Let me give you three examples for major piece of code i wrote and which never went upstream: the 4G/4G VM feature, exec-shield and Tux. I have written the 4G/4G feature more than 4 years ago, and it's quite a bit of code:
60 files changed, 1942 insertions(+), 706 deletions(-)
Compare this to swap-prefetch:
23 files changed, 857 insertions(+), 6 deletions(-)
So it's in the same ballpark in terms of complexity.
4G:4G was a major effort on my part, but the VM maintainers (and Linus) rejected it (fundamentally) for a number of reasons. In hindsight, they were more correct than wrong, but i sure was upset about it.
exec-shield i wrote more than 4 years ago too, that too was rejected by the VM maintainers. (for reasons i still dont agree with :-) Bits of it went upstream, but a fair chunk didnt. Was i upset about the decision? Sure i was, that is natural, when someone spends a lot of time on a project.
But there are other examples as well: the KDB patchset was first posted around 1998, 9 years ago. It was rejected numerous times and it is still not upstream. The scalable pagecache patches have been in the works for a long time as well, and they are still not upstream - although they were written by one of the VM maintainers (Nick Piggin), the same people who are currently not convinced about swap-prefetch (yet). There are countless other examples. (In fact a number of times we rejected code from Linus too - it happened not once that he has sent out some idea-patch which was then rejected and someone wrote something better.)
In Linux we reject _lots_ of code, and that's the only way to create a quality kernel. It's a bit like evolutionary selection: breathtakingly wasteful and incredibly efficient at the same time.
to post comments)