Maintaining small drm drivers
Daniel Vetter
daniel at ffwll.ch
Fri May 26 06:49:20 UTC 2017
On Thu, May 25, 2017 at 1:09 AM, Patrik Jakobsson
<patrik.r.jakobsson at gmail.com> wrote:
> On Wed, May 24, 2017 at 9:52 PM, Daniel Vetter <daniel at ffwll.ch> wrote:
>> On Wed, May 24, 2017 at 6:57 PM, Patrik Jakobsson
>> <patrik.r.jakobsson at gmail.com> wrote:
>>> Hi Dave and Daniel,
>>>
>>> We had a little mishap this morning when I had pushed a fix for gma500
>>> into drm-misc-fixes without first getting someone to review it. The
>>> patch have been on the list for over a month and I don't feel like I
>>> have enough karma to force someone to review it. Since I'm the only
>>> one actively reviewing gma500 stuff I've effectively locked myself out
>>> from submitting patches for the driver. Sure, sometimes others help
>>> out and that is ofc appreciated.
>>>
>>> As you suggested Daniel, I could trade light-weight reviews with
>>> someone else. At first it sounds reasonable but when I think about it
>>> it's rather bad. Why should I sell my r-b tags cheap in order to get
>>> patches into the driver I'm maintaining? This model seems broken.
>>> Doing quick reviews because you trust the author is not a good idea.
>>> It defeats the purpose and soils the value of your r-b tag (learned
>>> from my own mistakes).
>>>
>>> In the case of gma500 I'm exaggerating the problem a bit but others
>>> will run into the same issue at some point. So my question is, can we
>>> scrap the requirements for an r-b tag in drivers with only one
>>> continuously active developer or at least make it more "soft"? Other
>>> ideas are welcome.
>>
>> I had a really long discussion about this topic in private with
>> another maintainer who expressed some unhappiness about the drm-misc
>> review model. Yes it looks a bit silly that you have to trade review,
>> but in the end if you think it's necessary to review other
>> submissions, then imo you also need to get your own patches reviewed
>> or at least sanity-checked.
>
> Thanks for replying Daniel.
>
> I agree with your reasoning but we're looking at the problem from two
> different perspectives. It's not silly to require review per se. My
> patches also deserves review but the problem is that I cannot count on
> getting it and I don't think I should be stealing time from others
> (you included) who's time is better spent elsewhere.
Did you ping other drm-misc maintainers on irc? Did you ping
Sean/Jani/me as ultim fallback reviewers? Yes sometimes getting that
review takes a bit of time, especially if the collaboration hasn't
been established yet.
> Currently I get to choose between bad (patches without good review) or
> worse (no patches at all). Unfortunately I cannot pick bad because of
> the r-b tag requirement. Also, I review gma500 patches because it is
> expected of me and because I can. Not because I think the quality is
> worse than mine. I'd love to get reviews back but so far people just
> drop their patches and run.
>
>>
>> That's why drm-intel, drm-misc and anything else I'll ever maintain
>> will have a hard&solid rule to never push my own stuff (or anyone else
>> with commit rights) without review. No exceptions.
>
> That works when dealing with i915 and drm core (and other bigger
> drivers). You have a decent group of people who are technically
> qualified with personal and professional incentives to review your
> patches. It's easy to have high standards when they are not being
> challenged.
>
> On the gma500 team there's me and a bunch of frustrated users. What I
> would like to do is to continue shrinking the codebase and fix up the
> most obvious mistakes to make it more maintainable and let it live a
> couple of more years. I will likely have some time to do that again
> soon. Not because it's very important but because it's fun and makes a
> small group of people happy. Adding a bunch of process to this makes
> it less fun and reduces my output.
Find another smaller driver in need of some cleanup (we can add more
to drm-misc), cross review. Yes it's a bit of work (see above), but at
least from the drm subsystem pov the end result will be worth it,
since more code sharing and more collaboration gives us a much
stronger community.
>> In my opinion, as a maintainer of a part of the linux kernel your job
>> is to be the steward of the code and contributors/community around it,
>> not be the lord with special priviledges like being able to push
>> unreviewed patches or nacking contributions just because you're the
>> maintainer. And yes, part of the rules behind drm-misc is to make sure
>> that even single-maintainer drivers do collaborate, because with most
>> drivers sooner or later there will be other contributors.
>
> Right now I'm the lord of a mess but with less privileges than the
> contributors. They at least get their patches reviewed and included.
> Sounds more like I'm the fool ;)
>
> Sure, I can nack peoples patches but where's the fun in that. Nacking
> is never the easy choice since it requires justification and thus more
> work. I certainly don't see it as a privilege.
>
>> So at least from my side, yes there's an agenda behind this all, and
>> its intentional. It also seems to work reasonable well thus far, since
>> worst case drm-misc maintainers serve as reviewers of last resort.
>
> I understand there's an agenda and it makes sense from a "big drivers"
> pov. After some thinking, I would prefer the "pull from layers of
> trust" approach instead of "push through a very tightly tuned
> process". The layers of trust model also works well (as we all know).
> If maintainers feel they are getting overwhelmed with work we should
> look at expanding the subsystem tree instead of inventing new ways to
> handle things. Perhaps the solution to all of this is to just go back
> to sending patches for small drivers as pull-requests to you or Dave
> and let you decide if the sender is trustworthy enough to deserve a
> signed-off-by.
What I want to achieve is that small drivers together feel&collaborate
like a "big driver". Yes you won't have experts on your specific hw,
but there's lots of good feedback wrt extracting helper functions into
the core, using the existing ones correctly and all the things like
that. See e.g. all the work that has happened around the simple
helpers from Noralf.
Also, drm-misc is optional, you can go back to sending pull requests
to Dave (not to me, I don't handle those) if you think that's
easier/better for gma500.
> Either way, I don't want to turn this into a long discussion. If this
> is the way it needs to work then that is fine by me. Most of the time
> it works and gma500 is the driver with the smaller userbase and should
> not make life difficult for the bigger drivers.
Very much appreciated, with feedback and discussions we can't improve
the process for everyone.
Thanks, Daniel
More information about the dri-devel
mailing list