ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: "Heiko Stübner" <heiko@sntech.de>
To: ksummit-discuss@lists.linuxfoundation.org
Cc: "Pavel Machek" <pavel@ucw.cz>,
	"kyungmin.park@samsung.com" <kyungmin.park@samsung.com>,
	"John Stultz" <john.stultz@linaro.org>,
	"Andersson, Björn" <Bjorn.Andersson@sonymobile.com>
Subject: Re: [Ksummit-discuss] [CORE TOPIC] Mainline kernel on a cellphone
Date: Wed, 29 Jul 2015 10:18 +0200	[thread overview]
Message-ID: <2263990.AArGKpLqUn@diego> (raw)
In-Reply-To: <55B82222.3010409@samsung.com>

Am Mittwoch, 29. Juli 2015, 09:45:22 schrieb Krzysztof Kozlowski:
> On 29.07.2015 07:09, Tim Bird wrote:
> > On 07/23/2015 08:40 AM, Mark Brown wrote:
> >> On Thu, Jul 23, 2015 at 08:42:51AM -0400, Steven Rostedt wrote:
> >>> Although is this something to be a core topic or a tech topic? Does
> >>> this affect all subsystems, or just a set of drivers? Note, a core
> >>> topic wont get as much time for discussion as a tech topic would.
> >> 
> >> It's basically all subsystems that get impacted, at the minute I'd say
> >> it's more a plan of action and process discussion than a technical one
> >> though in the context of KS planning that's quite probably the same
> >> thing.
> >> 
> >>> Also, what is expected to be solved at KS?
> >> 
> >> Tim Bird (Cced) has been running some sessions at other conferences
> >> scoping the problem and discussing ways to move forward on this, another
> >> similar session might be useful.
> > 
> > As Mark says, I've been working on almost exactly this topic for several
> > months now.  Last year I conducted a survey investigating obstacles
> > that developers (mostly corporate product developers) have in mainlining.
> > There are lots of non-technical issues that are worth working on (version
> > gap, corporate incentives, training, etc.), but which are outside
> > the scope of the kernel summit.
> > 
> > There are also some technical areas where I think coordinated
> > effort might be useful, to identify deficiencies and collaborate on
> > progress.  These might be worth discussing at the summit.
> > 
> > In March of this year, I analysed code from several shipping phones
> > (representing a number of different SoCs, including both ARM and
> > Intel-architecture CPUs), and found that most products have between
> > 1.2 and 3 million lines of code out-of-tree.  We are still in progress of
> > finding patterns of out-of-treeness, to inform decisions about technical
> > projects going forward.
> > 
> > There is now a wiki page at:
> > See http://elinux.org/Kernel_areas_of_focus_for_mainlining
> > In particular it has a table showing certain areas that tend to have
> > a lot of out-of-tree code (e.g. most phones have between 80K to
> > 100K of lines of wireless driver support out-of-mainline)
> 
> Did anyone see successful attempts of mainlining such vendor code? I
> mean mainlining by individuals, not by vendor company itself.

I started the Rockchip ARM support in this manner ;-) . My main job is hacking 
on the mentioned vendor kernels, Finding the quirks after everybody put their 
out-of-tree stuff into it, so doing mainline is for me always a means of 
balance in terms of clean code, having a nice process to follow and a lot of 
great people to learn from. So I'm doing mainline as a means to learn and 
grow.


> It is a difficult task, especially without datasheets but it's possible.
> At least for some drivers.
> 
> If there were such efforts, I would be curious what obstacles he/she
> encountered (except a common one - missing datasheet/specs) and how he
> can be helped?

The dubious code quality Laurent already mentioned in another mail - aka you 
normally cannot upstream vendor-drivers directly.

For example in the vendor kernel, the clock tree was 150K of C code per soc 
and hard to read at all. So in a first step I did "reverse-engineer" the code 
from the GPL'ed source release and built a register map out of it [0].

So getting the clock tree right to what it is today was one of the biggest 
obstacles. Another was pinctrl, which in retrospect is sub-optimal.


So I guess the big issues are the big core systems which you essentially _need 
to get right_ from the start, as everything else builds on it. And with dt-
bindings you get issues if stuff needs to be redone later.


On the other hand, Rockchip SoCs have the benefit of seeming to use a lot of 
external IPs (dw-uart, dw-mmc, dw-hdmi, etc), so a lot of the later drivers 
get comparatively easy.



[0] 
https://docs.google.com/document/d/1voaR9Xk3lisCQIG3ThySOSnSHBUequljQYnceFlr53w/edit
[Public and linked to already way before any involvement from Rockchip itself, 
so does not fall under an NDA, but also unchanged since then]

  parent reply	other threads:[~2015-07-29  8:18 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-23 10:57 Pavel Machek
2015-07-23 11:21 ` Linus Walleij
2015-07-23 12:14   ` Pavel Machek
2015-07-23 12:42     ` Steven Rostedt
2015-07-23 15:40       ` Mark Brown
2015-07-28 22:09         ` Tim Bird
2015-07-28 23:07           ` Bjorn Andersson
2015-07-31 16:18             ` Rob Herring
2015-07-31 16:56               ` Bjorn Andersson
2015-08-11  9:34                 ` Johannes Berg
2015-07-31 17:25               ` Tim Bird
2015-08-03 15:29                 ` John W. Linville
2015-08-03  7:42               ` Linus Walleij
2015-08-03 21:34                 ` Rob Herring
2015-08-03 22:36                   ` Marcel Holtmann
2015-08-05  8:40                     ` Linus Walleij
2015-08-05  8:46                       ` Linus Walleij
2015-08-05  9:11                         ` Samuel Ortiz
2015-08-05 11:54                         ` Pavel Machek
2015-08-05  9:09                       ` Samuel Ortiz
2015-08-05 17:19                       ` Marcel Holtmann
2015-08-05 16:02                     ` Rob Herring
2015-08-05 17:00                       ` Marcel Holtmann
2015-08-07 12:40                         ` Linus Walleij
2015-07-29  0:45           ` Krzysztof Kozlowski
2015-07-29  6:12             ` Laurent Pinchart
2015-07-29  7:40             ` Pavel Machek
2015-08-25 18:59               ` Tim Bird
2015-08-26  1:22                 ` Krzysztof Kozlowski
2015-08-26  4:25                   ` Sudip Mukherjee
2015-08-26  4:52                     ` Krzysztof Kozlowski
2015-08-26  5:30                       ` Laurent Pinchart
2015-08-26  5:33                         ` Krzysztof Kozlowski
2015-08-26  6:15                           ` Josh Triplett
2015-08-26  7:23                             ` Heiko Stuebner
2015-08-26  8:05                               ` Krzysztof Kozlowski
2015-08-28  8:20                                 ` Nicolas Ferre
2015-08-26 11:33                   ` Mark Brown
2015-08-26 12:56                   ` Jason Cooper
2015-08-26 13:35                     ` Geert Uytterhoeven
2015-08-26 13:58                     ` Sudip Mukherjee
2015-08-26 14:51                       ` Jason Cooper
2015-08-26 17:13                         ` Sudip Mukherjee
2015-08-26 20:09                           ` Greg Kroah-Hartman
2015-08-28  7:44                             ` Pavel Machek
2015-08-28  8:42                               ` Heiko Stuebner
2015-08-29 15:47                                 ` Sudip Mukherjee
2015-07-29  8:18             ` Heiko Stübner [this message]
2015-07-29  0:56           ` Rafael J. Wysocki
2015-07-29  6:43           ` Daniel Vetter
2015-07-29 17:42             ` Tim Bird
2015-07-29  7:14           ` Bintian
2015-07-29 18:07             ` Tim Bird
2015-07-31  1:50               ` Bintian
2015-07-23 20:29       ` Pavel Machek
2015-07-23 20:34         ` Pavel Machek
2015-07-24  4:34           ` NeilBrown
2015-07-24  6:00             ` Tony Lindgren
2015-07-24 22:26               ` Rafael J. Wysocki
2015-07-28 22:03                 ` NeilBrown
2015-07-29  0:51                   ` Rafael J. Wysocki
2015-07-29 23:23                     ` Rafael J. Wysocki
2015-07-29 23:59                       ` NeilBrown
2015-07-30  0:57                         ` Rafael J. Wysocki
2015-07-31 17:55                           ` Mark Brown
2015-08-01  0:08                             ` Rafael J. Wysocki
2015-07-23 21:00         ` josh
2015-07-23 21:29           ` Pavel Machek
2015-07-29 13:32         ` Mark Brown
2015-07-31 12:22           ` Pavel Machek
2015-07-31 17:52             ` Mark Brown
2015-07-31 22:03               ` Pavel Machek
2015-08-01 10:55                 ` Mark Brown
2015-08-01 19:03                   ` Pavel Machek
2015-08-04 17:17                     ` Mark Brown
2015-08-03  5:33                 ` Tony Lindgren
2015-07-23 13:23     ` Krzysztof Kozlowski
2015-07-23 21:56       ` Pavel Machek
2015-07-24  1:37         ` Krzysztof Kozlowski
2015-07-24  4:40       ` Kyungmin Park
2015-07-23 14:48 ` Shuah Khan
2015-07-23 15:08 ` Heiko Stübner
2015-08-04 19:39 ` Pavel Machek
2015-08-05  7:05   ` Bintian

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=2263990.AArGKpLqUn@diego \
    --to=heiko@sntech.de \
    --cc=Bjorn.Andersson@sonymobile.com \
    --cc=john.stultz@linaro.org \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=kyungmin.park@samsung.com \
    --cc=pavel@ucw.cz \
    /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