ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
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 16:18:00 -0400	[thread overview]
Message-ID: <ZpQyeLFJY1gJvRRA@sashalap> (raw)
In-Reply-To: <f0d42bfb20b728b0c80daff864bd858ce86b3bfe.camel@HansenPartnership.com>

On Sun, Jul 14, 2024 at 03:20:48PM -0400, James Bottomley wrote:
>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.

And we appreciate the help, and some of it is indeed what you've pointed
out here: folks are used to "Fixes:" meaning automatic backport to
-stable.

[snip]

>> 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?

I'm going to argue that if you look at commits with only a Fixes tag in
any of the recent -rc cycles, you'll find that over half of them should
be backported.

It could be a fun experiment if you want to give it a go, we can both
look at v6.8-rc1..v6.8 and compare notes?

>> 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.

I really weren't. All I said that most commits with a Fixes tag in the
-rc cycles of a release don't fix an issue introduced in the merge
window of that release.

>> > 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.

Stable tag is, but we don't have a nice story around everything else
yet. Maybe regzbot is indeed the solution to a lot of these issues in
the future, but right now we're not even close.

 From my experience, most issues tracked by regzbot and fixed upstream
don't actually have a stable tag. Here's one I just looked at a few days
ago: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f451fd97dd2b78f286379203a47d9d295c467255

And I'm actually happy to point to that one as an example because the
ext4 folks are usually great about stable tags.

Should we have not taken that commit?

-- 
Thanks,
Sasha

  reply	other threads:[~2024-07-14 20:18 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
2024-07-14 20:18       ` Sasha Levin [this message]
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=ZpQyeLFJY1gJvRRA@sashalap \
    --to=sashal@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ksummit@lists.linux.dev \
    /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