RFD: linux-oven to help with cross-tree collateral evolutions

From: Luis R. Rodriguez
Date: Fri Jun 19 2015 - 19:15:17 EST


When working on collateral evolutions often times by definition
we end up having to go and transform existing drivers to new APIs
tree wide. You have a few options when this happens:

0) *If* you're lucky your collateral evolution is very specific to
a subsystem and you get to only work with one maintainer.

Otherwise:

1) You get approval from a subsystem maintainer for their respective
driver changes to go in through the tree you are introducing the
new symbols you are adding or symbols you are changing.

2) You sit tight and wait for the symbols to go in through one
release, and on the next next release you submit the changes
for the drivers.

3) You wait towards the end of the merge window and finally
send directly to a subsystem maintainer, who then sends
to Linus.

As noted, 0) is a breeze and is pretty straight forward.

The problem with 1) is you need coordination with maintainers and
while this can be a smooth process it typically is more an irritation
for the maintainers involved, its more work on other maintainers, and
you should not be surprised if some folks get irritated. Understandably
there can be a limit to what one maintainer should accept to go in through
their tree just for cross-tree collateral evolution effects.

The problem with 2) is the obvious lag behind making your changes
take effect through 2 full releases, as per our latest stats [0]
we get a release every 2.5 months, so on average cross-tree collateral
evolutions with strategy 2) means you'd have to wait ~5 months in order
to see your changes in the wild, with a reasonable added *minimum* delay
of say... about 1 month for review that's realistically more like a
full half year to wait. That's a lot of time... that's pretty slow.

3) still requires going through a subsystem maintainer, that seems
rather slow, specially if the patches are already acked and all
you were doing was waiting for the merge window. That can only
delay the merge window a bit.

I think we can do better and I think we can do with this much less irratation
for maintainers. What if we had a linux-oven tree based on linux-next
which queues up all pending-but-already-acked cross-tree collateral evolution
patches? This tree can be rebased daily on linux-next using:

git rebase --onto next/master'

for example, and this maintainer can then send these cross-tree
collateral evolution changes to Linus towards the end of the merge
window.

Thoughts?

[0] http://phb-crystal-ball.org/

Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at http://www.tux.org/lkml/