From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Sasha Levin <sashal@kernel.org>
Cc: ksummit@lists.linux.dev, Greg KH <gregkh@linuxfoundation.org>
Subject: Re: Proposal: Enhancing Commit Tagging for Stable Kernel Branches
Date: Sun, 14 Jul 2024 15:20:48 -0400 [thread overview]
Message-ID: <f0d42bfb20b728b0c80daff864bd858ce86b3bfe.camel@HansenPartnership.com> (raw)
In-Reply-To: <ZpQbQa-_8GkoiPhE@sashalap>
On Sun, 2024-07-14 at 14:38 -0400, Sasha Levin wrote:
> On Sun, Jul 14, 2024 at 09:35:26AM -0400, James Bottomley wrote:
> > On Sun, 2024-07-14 at 08:31 -0400, Sasha Levin wrote:
> > > Hi folks,
> > >
> > > The Linux kernel community relies heavily on commit tags to
> > > identify and manage patches destined for stable kernel branches.
> > > Currently, we use a "Stable tag" (cc: stable@kernel.org) to
> > > indicate that a patch should be included in stable kernel
> > > branches, and a "Fixes tag" (Fixes: 012345678901 ("commit
> > > subject")) to point to an older commit that the new commit fixes
> > > or improves. However, this scheme has led to some unintended
> > > consequences.
> > >
> > > One of the main issues is that most Fixes-tagged commits (>80%)
> > > end up in a stable tree, leading some authors to omit the Stable
> > > tag altogether. This means we may not be trying hard enough to
> > > include critical commits in stable kernel branches. On the other
> > > hand, some authors are unhappy when commits without a Stable tag
> > > end up in a stable kernel branch. To address these shortcomings,
> > > I propose introducing an "Improves tag" (Improves: 012345678901
> > > ("commit subject")) and altering the meaning of the Fixes tag.
> >
> > I've got to say this looks like a bad idea: your complaint is we're
> > not being clear enough about the cc:stable and fixes semantics, so
> > the proposal is to introduce a tag with even less clear semantics
> > in the hope that it will somehow improve the situation. Why not
> > simply be much more crisp about the meaning of Fixes and no
> > cc:stable? If everyone
>
> What does it mean exactly? What should we be doing now that wasn't
> happening before?
I outlined it below and you replied.
> All our documentation explicitly says that a stable tag is a *must*,
> we've been nagging folks to add it when they haven't, and we give
> them the spiel whenever we're asked why a certain fixes-only commit
> didn't make it into the stable trees.
Then you've muddied that by backporting a lot of stuff without
cc:stable leading to somewhat mixed messages. However, most of the
trees I'm involved in are very fastidious about cc:stable which should
prove getting people to assist here isn't impossible.
> > realised that Fixes without cc:stable meant the patch wouldn't be
> > included in a stable tree that surely gives all the semantics you
> > need without having to get everyone to try do differentiate between
> > a fix and an improvement?
>
> By your logic folks already have to do it now, right? The decision
> around whether to add a stable tag or not means that there needs to
> be a decision around whether something is a fix or an improvement
> each time a Fixes tag is added.
I believe most maintainers who haven't given up on the cc:stable
process do that, yes.
> > One of the big reasons patches get Fixes without cc:stable is
> > simply that it's an -rc fix for a merge window regression (so no
> > released kernel has it in and therefore no stable kernel needs it),
> > so you'd also need to explain that case in the improve docs
> > (because it's a genuine fix, just not a stable candidate).
>
> This is a fairly common misconception around what happens in the -rc
> cycles.
>
> The statistic is that about 70% of commits that have a stable tag but
> no fixes tag actually fix something in the previous releases rather
> than something that was introduced in the current merge window.
Given the number for fairly trivial spelling and other non user visible
fixes we get in the trees I look at that doesn't sound too surprising.
So the big question is how many of those *should* actually have had a
stable tag?
> When you couple that with commits that are stable tagged, nearly 85%
> of commits in each -rc release actually address something that
> happened prior to the merge window.
Here you seem to be assuming that every commit with a Fixes tag for a
prior release should be in stable ... I don't think that's true at all.
> > So the clear rules look like they should be
> >
> > 1. every patch fixing something should have a fixes tag pointing
> > to the fixed commit
> > 2. Only patches with cc:stable should go automatically in to
> > stable trees and as far back as the fixes tag allows
> > 3. if a patch without cc:stable is later discovered to be a
> > required fix, people can ask for it to be backported.
>
> These were the rules for a while, and the issue was that there were
> so many commits without a stable tag that needed to be backported
> that the model of "later discovered" simply overwhelmed the process.
How can it? The cc:stable is automation driven, surely we could
automate the discovered after process as well. Our control systems via
email has rather dramatically improved over the years, just look at
regzbot.
> We can't go back to that again.
Why? I mean I'm assuming the actual number of patches would be the
same under a perfect cc:stable system as it would be under he cc:stable
but ask for backport if I got it wrong system, so it's really just a
question of using similar automation that drives the former for the
latter. If you can't figure out how to automate it, I'm sure we can
lend a hand if that's all it takes.
Regards,
James
next prev parent reply other threads:[~2024-07-14 19:20 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-14 12:31 Sasha Levin
2024-07-14 13:35 ` James Bottomley
2024-07-14 15:35 ` Andrew Lunn
2024-07-14 16:34 ` James Bottomley
2024-07-14 18:38 ` Sasha Levin
2024-07-14 19:20 ` James Bottomley [this message]
2024-07-14 20:18 ` Sasha Levin
2024-07-15 18:00 ` Theodore Ts'o
2024-07-15 18:07 ` Mark Brown
2024-07-15 19:06 ` Dan Carpenter
2024-07-15 19:23 ` Steven Rostedt
2024-07-15 19:24 ` James Bottomley
2024-07-15 19:28 ` Steven Rostedt
2024-07-15 19:30 ` James Bottomley
2024-07-15 19:39 ` Dan Carpenter
2024-07-16 6:30 ` Greg KH
2024-07-15 20:25 ` Mauro Carvalho Chehab
2024-07-15 20:47 ` Dmitry Torokhov
2024-07-16 6:28 ` Greg KH
2024-07-16 12:20 ` Takashi Iwai
2024-07-17 22:05 ` Dan Carpenter
2024-07-18 7:34 ` Takashi Iwai
2024-07-18 14:48 ` Dan Carpenter
2024-07-18 14:56 ` James Bottomley
2024-07-18 16:36 ` Dan Carpenter
2024-07-19 0:49 ` NeilBrown
2024-07-19 1:35 ` Dan Carpenter
2024-07-19 11:55 ` Vegard Nossum
2024-07-23 14:14 ` Jiri Kosina
2024-07-16 14:51 ` Jason Gunthorpe
2024-07-16 19:38 ` Dan Carpenter
2024-07-15 6:15 ` Mauro Carvalho Chehab
2024-07-14 17:07 ` Linus Torvalds
2024-07-14 18:47 ` Sasha Levin
2024-07-14 19:27 ` Linus Torvalds
2024-07-14 20:27 ` Sasha Levin
2024-07-14 23:05 ` James Bottomley
2024-07-14 23:09 ` Linus Torvalds
2024-07-15 8:02 ` Greg KH
2024-07-15 8:53 ` Mauro Carvalho Chehab
2024-07-15 12:48 ` Mimi Zohar
2024-07-15 12:52 ` Mimi Zohar
2024-07-15 14:34 ` Alexandre Belloni
2024-07-15 14:40 ` Greg KH
2024-07-15 15:00 ` Jonathan Corbet
2024-07-15 15:07 ` James Bottomley
2024-07-15 15:19 ` Sasha Levin
2024-07-15 15:31 ` James Bottomley
2024-07-15 15:42 ` Dan Carpenter
2024-07-15 15:10 ` Greg KH
2024-07-15 17:45 ` Mauro Carvalho Chehab
2024-07-15 18:04 ` Mark Brown
2024-07-15 20:51 ` Dmitry Torokhov
2024-07-16 6:25 ` Greg KH
2024-07-16 15:00 ` Mark Brown
2024-07-14 23:29 ` NeilBrown
2024-07-14 23:29 ` Steven Rostedt
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=f0d42bfb20b728b0c80daff864bd858ce86b3bfe.camel@HansenPartnership.com \
--to=james.bottomley@hansenpartnership.com \
--cc=gregkh@linuxfoundation.org \
--cc=ksummit@lists.linux.dev \
--cc=sashal@kernel.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