ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: ksummit <ksummit-discuss@lists.linuxfoundation.org>
Subject: Re: [Ksummit-discuss] [MAINTAINER SUMMIT] community management/subsystem governance
Date: Wed, 12 Sep 2018 00:00:47 +0200	[thread overview]
Message-ID: <20180911220047.GQ2494@piout.net> (raw)
In-Reply-To: <CAKMK7uE55eEP8L74z7HMyPb2nVnK9=bBX8tUEqmsDYSqjO-CZg@mail.gmail.com>

On 11/09/2018 17:02:31+0200, Daniel Vetter wrote:
> On Tue, Sep 11, 2018 at 2:44 PM, Alexandre Belloni
> <alexandre.belloni@bootlin.com> wrote:
> > On 11/09/2018 00:44:57+0200, Daniel Vetter wrote:
> >> gitlab (or well anything with a concept like pull requests) makes the
> >> 90% so much easier. And it doesn't take more work for contributors if
> >> you set things up right - it's just a git push instead of a git
> >> send-email. At least after initial setup is done.
> >>
> >> And at least in a corporate environment (and I kinda have to care
> >> about that) gitlab wins on the initial setup front hands down against
> >> email. gitlab only needs https (even for git push/pull), and
> >> coproporate firewalls are pretty ok with https. They are not ok with
> >> smtp, like at all. And the amount of time we spend debugging random
> >> git send-email setup issues is epic.
> >>
> >
> > I would like to chime in and remind you that there are many subsystems
> > where you get a lot of drive-by contribution from random people. I'm
> > obviously thinking about rtc but I think this would also apply to codec,
> > IIO, power/supply, hwmon... In that case any initial setup would be
> > prohibitive.
> >
> > I feel like these subsystems are often left to the side when I read
> > threads like that talking about getting every patches reviewed, doing
> > more CI, etc...
> >
> > So I need to emphasise that there are subsystem where people are not
> > backed by a company to contribute or review. What I often see is someone
> > having $random hardware and submitting a patch adding support for it.
> > That developer will definitively not review other patches because he has
> > no particular interest in them. He also probably doesn't have the
> > experience to do a review.
> >
> > It is quite different from having a few big companies with huge teams
> > each maintaining a single driver in a subsystem... You simply can't have
> > the same expectations.
> 
> Yes drm has drm/i915 and drm/amdgpu. But reducing the graphics folks
> to these two big drivers with huge teams backing them, would be about
> the same as stating that linux only runs on x86 and arm. There's more.
> 
> And we do have quite serious problems with tiny boutique trees and
> drive-by contributors who immediately disappear. We're still trying to
> do our best to cope with that, which inolves lots of pain, and the
> occasional success.
> 
> Here's a bunch of things we've done, all with at least one success
> story within drm:
> 
> - Merge enough trees together until you have enough people capable to
> doing maintainer duties for a triumvirate. That allows you to rotate,
> arm-soc style. Rule of thumb is anything below 100 patches per release
> cycle is probably too small, but you might need a lot more than that.
> 3 maintainers seems to be ideal.
> 

I'm not sure what subsystem you would want to merge...

> - Intentionally abandon stuff. Sometimes no one else bothers to work
> because the current maintainer is all over the place, does everything,
> and suffocates any newbie's attempt to help out. Once something is
> abandoned long enough it's either known to be dead, and not worth to
> spend much time further maintaining. Or someone steps into the
> intentionally created void and helps out.

Well, that is exactly what I did, the RTC subsystem was left
unmaintained until I took the maintainership.

> - Make sure you have the smoothest ramp up from all stages of
> contributing. bug report, first patch, oddball patch, first reviews,
> then commit rights (first only for their own stuff, then maybe for
> others), and so on. Any slightly elevated jump will mean people walk
> away.
> 

And that is exactly what I want you to understand. There are still many
subsystem that don't spur enough interest to get people to work on it.
They submit a driver, it gets merged, it works and that's it.

Or maybe the subsystem is mostly complete and doesn't need more work
(how hard is it to give the date and time ?)

> - Talk about the maintainer. If no one wants to help out, but it's a
> generally active area, there's a problem. Fairly often it's a human
> problem, and the maintainer is blind to their own short-comings. This
> is very tricky, and requires enormous amounts of empathy and time, but
> can be rectified.
> 
> Looking at drivers/rtc over the past 2-3 years it seems like a
> decently active subsystem. Probably on the small side of things, but
> not catastrophically so. But looking at contributor stats the picture
> is totally different:
> 
>    241  Alexandre Belloni
>     28  Linus Torvalds
>     27  Arnd Bergmann
>     25  Javier Martinez Canillas
>     20  Uwe Kleine-König
> 
> That kind of skewed contribution statistics is indeed not sustainable,
> and indicates some serious problem imo. What exactly goes wrong, and
> how to best fix it I can't tell without more information though. From
> my experience in drm, where we also have some areas with highly skewed
> contribution statistics, it could be the maintainer driving people
> away, ensuring that there's only one-off contributions. Usually
> unkowningly.
> 

But your conclusion is really biased to only see what you want to see.
An RTC driver is simple enough to fit in a single patch and never need
any fix afterwards. And again, the typical contributor will submit only
one or two patches adding the driver he is interested in an move away.
Unlike DRM, there is a very small chance to get back to the driver to
fix issues afterwards. Anyone that got more than 1 patch in rtc already
contributed a lot.

I don't think there is anything to fix really, that is just the reality.
The driver is submitted, it works and continues to work, I'm not sure
what is wrong there.

I know that I drove someone away and I'm pretty sure it should be
handled better but honestly, it was a huge patch series mostly rewriting
one driver without adding features.

And you, probably not knowingly missed some pretty important
contributions from people that added features in the rtc core but that
usually adds up to 4-8 patches. Those were features that I was planning
to implement so this would qualify as success stories.

>From all the patches you see from me, many are cleaning up rtc drivers
after a long period of time without any RTC maintainer. I also own and
test most of the RTCs I'm working on.

Here are the stats for the RTC core from 4.4 to 4.18:
$ git shortlog --no-merges -s -n v4.4..v4.18 class.c hctosys.c interface.c nvmem.c systohc.c rtc-dev.c  rtc-proc.c rtc-sysfs.c
    19  Alexandre Belloni
     4  Baolin Wang
     3  Uwe Kleine-König
     2  Joshua Clayton
     2  LABBE Corentin
     2  Thomas Gleixner

Anyway, lets have a look at some numbers from DRM from 4.4 to 4.18:

$ git shortlog --no-merges -e -s -n v4.4..v4.18 drivers/gpu/drm/drm_*
   304  Daniel Vetter <daniel.vetter@ffwll.ch>
   138  Ville Syrjälä <ville.syrjala@linux.intel.com>
   113  Chris Wilson <chris@chris-wilson.co.uk>
    94  Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    44  Noralf Trønnes <noralf@tronnes.org>

Ok, so the core is still dominated by you. Not as much as RTC but in the
same order.

Lets have a look at DRM drivers (I'm taking a subset I hope is
representative):

             authored by     reviewed  by
driver       match others    match others  match on
amd          5961  622       6656  318     amd.com
atmel-hlcdc  18    68        3     41      maintainers
etnaviv      173   72        32    55      maintainers
exynos       225   173       41    80      samsung.com
hisilicon    11    75        12    66      maintainers
i915         6600  605       6029  831     intel.com + Chris
imx          35    125       1     50      maintainers
msm          380   176       31    92      maintainers + codeaurora
nouveau      938   362       21    193     maintainers + nvidia.com
omapdrm      278   282       56    188     ti.com
stm          29    16        18    18      maintainers
sun4i        154   120       53    50      maintainers
tegra        134   118       11    85      nvidia.com

Over the same timeframe, rtc has:
rtc          228   469       0     80      maintainers

This is how I interpret that:

Most of the drivers are developed by their maintainer or someone paid
by the vendor (which is basically the same because the maintainer is
actually getting paid to get his colleagues patches upstream).

I also see that the review numbers hint at biased reviews for the big
drivers as they are not coming from outsiders.

So what I see in DRM is exactly what you despis in other areas of the
kernel: mostly unreviewed maintainer self commits.

Obviously, for the smaller drivers, the numbers are not as critical
because they mostly see subsystem wide changes/refactoring.

So I still feel like RTC is at least as healthy as DRM because as you
can see, most of the patches are not coming from a maintainer (i.e. not
me).

Regards,

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2018-09-11 22:01 UTC|newest]

Thread overview: 162+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-10  8:59 Daniel Vetter
2018-09-10 14:53 ` Linus Torvalds
2018-09-10 15:08   ` James Bottomley
2018-09-10 15:10     ` Linus Torvalds
2018-09-10 15:38       ` Sasha Levin
2018-09-10 15:47         ` James Bottomley
2018-09-10 15:55           ` Sasha Levin
2018-09-10 16:13             ` James Bottomley
2018-09-10 16:24               ` Sasha Levin
2018-09-10 17:10                 ` James Bottomley
2018-09-10 15:47         ` Konstantin Ryabitsev
2018-09-10 15:56           ` Sasha Levin
2018-09-10 16:02             ` Konstantin Ryabitsev
2018-09-10 16:07           ` Daniel Vetter
2018-09-10 16:18             ` Konstantin Ryabitsev
2018-09-10 16:23               ` Daniel Vetter
2018-09-10 16:41                 ` Konstantin Ryabitsev
2018-09-10 17:06                   ` Daniel Vetter
2018-09-10 19:48             ` Laurent Pinchart
2018-09-10 20:50               ` Daniel Vetter
2018-09-10 15:49         ` Mark Brown
2018-09-10 16:33         ` Olof Johansson
2018-09-10 19:59           ` Laurent Pinchart
2018-09-10 21:30             ` Josh Triplett
2018-09-10 23:00               ` Laurent Pinchart
2018-09-10 23:16               ` Daniel Vetter
2018-09-11  1:14                 ` Josh Triplett
2018-09-10 15:13     ` Jiri Kosina
2018-09-10 15:20       ` James Bottomley
2018-09-10 15:31       ` Sasha Levin
2018-09-10 20:15       ` Laurent Pinchart
2018-09-10 21:09         ` Sean Paul
2018-09-10 21:38           ` Laurent Pinchart
2018-09-11 10:06             ` Leon Romanovsky
2018-09-11  8:44         ` Jani Nikula
2018-09-11  9:08           ` Geert Uytterhoeven
2018-09-11 10:01             ` Daniel Vetter
2018-09-11 10:09               ` Geert Uytterhoeven
2018-09-11 10:17                 ` Daniel Vetter
2018-09-11 10:30                   ` Geert Uytterhoeven
2018-09-11  8:41       ` Jani Nikula
2018-09-10 15:31   ` Daniel Vetter
2018-09-10 16:39     ` Olof Johansson
2018-09-10 17:10       ` Daniel Vetter
2018-09-12 19:02         ` Darren Hart
2018-09-12 18:59     ` Darren Hart
2018-09-12 20:05       ` Daniel Vetter
2018-09-12 20:58         ` Darren Hart
2018-09-13 11:27         ` Mark Brown
2018-09-13 11:41           ` Daniel Vetter
2018-09-13 17:08             ` Darren Hart
2018-09-13  2:56     ` Theodore Y. Ts'o
2018-09-13  5:17       ` Daniel Vetter
2018-09-10 15:56   ` Daniel Vetter
2018-09-10 20:32     ` Laurent Pinchart
2018-09-10 20:55       ` Daniel Vetter
2018-09-10 21:33         ` Laurent Pinchart
2018-09-10 22:44           ` Daniel Vetter
2018-09-11 12:44             ` Alexandre Belloni
2018-09-11 14:35               ` Mark Brown
2018-09-11 15:17                 ` Alexandre Belloni
2018-09-11 15:02               ` Daniel Vetter
2018-09-11 22:00                 ` Alexandre Belloni [this message]
2018-09-11 22:17                   ` Guenter Roeck
2018-09-12  8:42                   ` Jani Nikula
2018-09-12 18:45                     ` Alexandre Belloni
2018-09-12 19:52                       ` Dave Airlie
2018-09-12 22:25                       ` Daniel Vetter
2018-09-12  9:14                 ` Linus Walleij
2018-09-12 18:23                   ` Alexandre Belloni
2018-09-12 18:44                     ` Thomas Gleixner
2018-09-13 12:08                       ` Maxime Ripard
2018-09-13 12:57                         ` Alexandre Belloni
2018-09-13 13:18                           ` Maxime Ripard
2018-09-13 14:25                           ` Jani Nikula
2018-09-13 20:05                             ` Thomas Gleixner
2018-09-13 23:02                               ` Rodrigo Vivi
2018-09-14  6:47                                 ` Rafael J. Wysocki
2018-09-14  6:39                               ` Dave Airlie
2018-09-14 14:15                                 ` Thomas Gleixner
2018-09-17  7:40                                   ` Daniel Vetter
2018-09-14  7:08                         ` Linus Walleij
2018-09-14  7:39                           ` Geert Uytterhoeven
2018-09-14  8:08                             ` Linus Walleij
2018-09-12 21:21                     ` Linus Walleij
2018-09-21 16:05                 ` Joe Perches
2018-09-12 22:44             ` Laurent Pinchart
2018-09-10 22:56           ` Laurent Pinchart
2018-09-10 21:11       ` Theodore Y. Ts'o
2018-09-10 23:05         ` Laurent Pinchart
2018-09-17 11:43           ` Mauro Carvalho Chehab
2018-09-17 12:03             ` Geert Uytterhoeven
2018-09-17 13:04               ` Mauro Carvalho Chehab
2018-09-17 13:10                 ` Julia Lawall
2018-09-17 13:29                   ` Christoph Hellwig
2018-09-17 13:48                     ` Laurent Pinchart
2018-09-17 13:58                     ` Mauro Carvalho Chehab
2018-09-17 14:18                       ` Christoph Hellwig
2018-09-17 14:50                         ` Geert Uytterhoeven
2018-09-17 15:21                           ` Mauro Carvalho Chehab
2018-09-17 14:18                       ` Laurent Pinchart
2018-09-17 16:50                       ` Joe Perches
2018-09-17 14:14                 ` Laurent Pinchart
2018-09-17 14:59                   ` Mauro Carvalho Chehab
2018-09-17 22:39                     ` Dave Airlie
2018-09-17 23:04                       ` James Bottomley
2018-09-18  8:00                         ` Daniel Vetter
2018-09-18 11:16                           ` James Bottomley
2018-09-18 15:26                             ` Randy Dunlap
2018-09-18 16:47                             ` Tim.Bird
2018-09-18 16:59                               ` Konstantin Ryabitsev
2018-09-18 17:08                                 ` Tim.Bird
2018-09-18 17:12                                   ` Tim.Bird
2018-09-18 17:31                                   ` Konstantin Ryabitsev
2018-09-18 17:42                                     ` Tim.Bird
2018-09-18 17:55                                       ` Konstantin Ryabitsev
2018-09-18 18:58                                         ` Tim.Bird
2018-09-18 19:24                                           ` Konstantin Ryabitsev
2018-09-18 17:47                                     ` Geert Uytterhoeven
2018-09-18 17:49                                     ` Greg KH
2018-09-18 18:03                                       ` Konstantin Ryabitsev
2018-09-18 22:46                                         ` Alexandre Belloni
2018-09-18 18:22                                       ` Dmitry Torokhov
2018-09-18 19:16                                         ` Theodore Y. Ts'o
2018-09-18 18:56                                       ` Sasha Levin
2018-09-18 23:05                                     ` Laurent Pinchart
2018-09-18  7:37                       ` Nicolas Ferre
2018-09-18  7:47                         ` Geert Uytterhoeven
2018-09-18 10:38                       ` Laurent Pinchart
2018-09-18 16:02                         ` Mark Brown
2018-09-18 16:32                           ` Luck, Tony
2018-09-18 16:35                             ` Dmitry Torokhov
2018-09-18 17:18                               ` Linus Torvalds
2018-09-18 17:28                                 ` Sean Paul
2018-09-18 17:37                                 ` Tim.Bird
2018-09-21 16:46                                 ` Olof Johansson
2018-09-21 17:08                                   ` Mauro Carvalho Chehab
2018-09-21 17:16                                     ` Olof Johansson
2018-09-18 17:21                               ` Mark Brown
2018-09-18 21:01                               ` Steven Rostedt
2018-09-18 23:16                                 ` Laurent Pinchart
2018-09-18 23:54                                 ` Mark Brown
2018-09-19  5:27                                   ` Christoph Hellwig
2018-09-19  9:46                               ` James Bottomley
2018-09-18 17:10                             ` Tim.Bird
2018-09-18 20:48                             ` Takashi Iwai
2018-09-18 16:50                           ` David Woodhouse
2018-09-18 17:24                             ` Mark Brown
2018-09-18 19:22                               ` David Woodhouse
2018-09-18 19:30                                 ` Sasha Levin
2018-09-18 19:38                                   ` Josh Triplett
2018-09-18 19:48                                   ` David Woodhouse
2018-09-18  8:24                     ` Eric W. Biederman
2018-09-17 13:12             ` Christoph Hellwig
2018-09-17 14:14               ` Mauro Carvalho Chehab
2018-09-17 21:59               ` Rafael J. Wysocki
2018-09-17 22:17                 ` Rafael J. Wysocki
2018-09-10 21:19       ` Konstantin Ryabitsev
2018-09-11  8:33         ` Rafael J. Wysocki
2018-09-10 16:29   ` [Ksummit-discuss] Fwd: " Daniel Vetter
2018-09-11 15:35   ` [Ksummit-discuss] " Jiri Kosina
2018-09-17 11:11   ` [Ksummit-discuss] [MAINTAINER SUMMIT] Live without email - possible? - Was: " Mauro Carvalho Chehab

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=20180911220047.GQ2494@piout.net \
    --to=alexandre.belloni@bootlin.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=ksummit-discuss@lists.linuxfoundation.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