linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: Eric Biggers <ebiggers@kernel.org>
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org
Subject: Re: AUTOSEL process
Date: Mon, 27 Feb 2023 17:35:30 -0500	[thread overview]
Message-ID: <Y/0wMiOwoeLcFefc@sashalap> (raw)
In-Reply-To: <Y/0i5pGYjrVw59Kk@gmail.com>

On Mon, Feb 27, 2023 at 09:38:46PM +0000, Eric Biggers wrote:
>On Mon, Feb 27, 2023 at 03:39:14PM -0500, Sasha Levin wrote:
>> > > So to summarize, that buggy commit was backported even though:
>> > >
>> > >   * There were no indications that it was a bug fix (and thus potentially
>> > >     suitable for stable) in the first place.
>> > >   * On the AUTOSEL thread, someone told you the commit is broken.
>> > >   * There was already a thread that reported a regression caused by the commit.
>> > >     Easily findable via lore search.
>> > >   * There was also already a pending patch that Fixes the commit.  Again easily
>> > >     findable via lore search.
>> > >
>> > > So it seems a *lot* of things went wrong, no?  Why?  If so many things can go
>> > > wrong, it's not just a "mistake" but rather the process is the problem...
>> >
>> > BTW, another cause of this is that the commit (66f99628eb24) was AUTOSEL'd after
>> > only being in mainline for 4 days, and *released* in all LTS kernels after only
>> > being in mainline for 12 days.  Surely that's a timeline befitting a critical
>> > security vulnerability, not some random neural-network-selected commit that
>> > wasn't even fixing anything?
>>
>> I would love to have a mechanism that tells me with 100% confidence if a
>> given commit fixes a bug or not, could you provide me with one?
>
>Just because you can't be 100% certain whether a commit is a fix doesn't mean
>you should be rushing to backport random commits that have no indications they
>are fixing anything.

The difference in opinion here is that I don't think it's rushing: the
stable kernel rules say a commit must be in a released kernel, while the
AUTOSEL timelines make it so a commit must have been in two released
kernels.

Should we extend it? Maybe, I just don't think we have enough data to
make a decision either way.

>> w.r.t timelines, this is something that was discussed on the mailing
>> list a few years ago where we decided that giving AUTOSEL commits 7 days
>> of soaking time is sufficient, if anything changed we can have this
>> discussion again.
>
>Nothing has changed, but that doesn't mean that your process is actually
>working.  7 days might be appropriate for something that looks like a security
>fix, but not for a random commit with no indications it is fixing anything.

How do we know if this is working or not though? How do you quantify the
amount of useful commits?

How do you know if a certain fix has security implications? Or even if
it actually fixes anything? For every "security" commit tagged for
stable I could probably list a "security" commit with no tags whatsoever.

>BTW, based on that example it's not even 7 days between AUTOSEL and patch
>applied, but actually 7 days from AUTOSEL to *release*.  So e.g. if someone
>takes just a 1 week vacation, in that time a commit they would have NAK'ed can
>be AUTOSEL'ed and pushed out across all LTS kernels...

Right, and same as above: what's "enough"?

>> Note, however, that it's not enough to keep pointing at a tiny set and
>> using it to suggest that the entire process is broken. How many AUTOSEL
>> commits introduced a regression? How many -stable tagged ones did? How
>> many bugs did AUTOSEL commits fix?
>
>So basically you don't accept feedback from individual people, as individual
>people don't have enough data?

I'd love to improve the process, but for that we need to figure out
criteria for what we consider good or bad, collect data, and make
decisions based on that data.

What I'm getting from this thread is a few anecdotal examples and
statements that the process isn't working at all.

I took Jon's stablefixes script which he used for his previous articles
around stable kernel regressions (here:
https://lwn.net/Articles/812231/) and tried running it on the 5.15
stable tree (just a random pick). I've proceeded with ignoring the
non-user-visible regressions as Jon defined in his article (basically
issues that were introduced and fixed in the same releases) and ended up
with 604 commits that caused a user visible regression.

Out of those 604 commits:

  - 170 had an explicit stable tag.
  - 434 did not have a stable tag.

Looking at the commits in the 5.15 tree:

With stable tag:

	$ git log --oneline -i --grep "cc.*stable" v5.15..stable/linux-5.15.y | wc -l
	3676

Without stable tag (-96 commits which are version bumps):

	$ git log --oneline --invert-grep -i --grep "cc.*stable" v5.15..stable/linux-5.15.y | wc -l
	10649

Regression rate for commits with stable tag: 170 / 3676 = 4.62%
Regression rate for commits without a stable tag: 434 / 10553 = 4.11%

Is the analysis flawed somehow? Probably, and I'd happy take feedback on
how/what I can do better, but this type of analysis is what I look for
to know if the process is working well or not.

-- 
Thanks,
Sasha

  reply	other threads:[~2023-02-27 22:40 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-26  3:42 [PATCH AUTOSEL 6.1 01/21] ARM: OMAP2+: omap4-common: Fix refcount leak bug Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 02/21] arm64: dts: qcom: msm8996: Add additional A2NoC clocks Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 03/21] udf: Define EFSCORRUPTED error code Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 04/21] context_tracking: Fix noinstr vs KASAN Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 05/21] exit: Detect and fix irq disabled state in oops Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 06/21] ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 07/21] fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 08/21] blk-iocost: fix divide by 0 error in calc_lcoefs() Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 09/21] blk-cgroup: dropping parent refcount after pd_free_fn() is done Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 10/21] blk-cgroup: synchronize pd_free_fn() from blkg_free_workfn() and blkcg_deactivate_policy() Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 11/21] trace/blktrace: fix memory leak with using debugfs_lookup() Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 12/21] fs/super.c: stop calling fscrypt_destroy_keyring() from __put_super() Sasha Levin
2023-02-26  4:07   ` Eric Biggers
2023-02-26  5:30     ` Eric Biggers
2023-02-26 19:24       ` Eric Biggers
2023-02-26 19:33         ` Slade Watkins
2023-02-27 14:18         ` Sasha Levin
2023-02-27 17:47           ` AUTOSEL process Eric Biggers
2023-02-27 18:06             ` Eric Biggers
2023-02-27 20:39               ` Sasha Levin
2023-02-27 21:38                 ` Eric Biggers
2023-02-27 22:35                   ` Sasha Levin [this message]
2023-02-27 22:59                     ` Matthew Wilcox
2023-02-28  0:52                       ` Sasha Levin
2023-02-28  1:25                         ` Eric Biggers
2023-02-28  4:25                           ` Willy Tarreau
2023-03-30  0:08                         ` Eric Biggers
2023-03-30 14:05                           ` Sasha Levin
2023-03-30 17:22                             ` Eric Biggers
2023-03-30 17:50                               ` Sasha Levin
2023-02-28  0:32                     ` Eric Biggers
2023-02-28  1:53                       ` Sasha Levin
2023-02-28  3:41                         ` Eric Biggers
2023-02-28 10:41                           ` Amir Goldstein
2023-02-28 11:28                             ` Greg KH
2023-03-01  2:05                               ` Slade Watkins
2023-03-01  5:13                                 ` Eric Biggers
2023-03-01  6:09                                   ` Greg KH
2023-03-01  7:22                                     ` Eric Biggers
2023-03-01  7:40                                       ` Willy Tarreau
2023-03-01  8:31                                         ` Eric Biggers
2023-03-01  8:43                                           ` Greg KH
2023-03-01  6:06                                 ` Greg KH
2023-03-01  7:05                                   ` Eric Biggers
2023-03-01 10:31                               ` Thorsten Leemhuis
2023-03-01 13:26                               ` Mark Brown
2023-02-28 17:03                           ` Sasha Levin
2023-03-10 23:07                           ` Eric Biggers
2023-03-11 13:41                             ` Sasha Levin
2023-03-11 15:54                               ` James Bottomley
2023-03-11 18:07                                 ` Sasha Levin
2023-03-12 19:03                                   ` Theodore Ts'o
2023-03-07 21:18               ` Pavel Machek
2023-03-07 21:45                 ` Eric Biggers
2023-03-11  6:25                   ` Matthew Wilcox
2023-03-11  8:11                     ` Willy Tarreau
2023-03-11 11:45                       ` Pavel Machek
2023-03-11 12:29                         ` Greg KH
2023-03-21 12:41                           ` Maciej W. Rozycki
2023-03-11 14:06                     ` Sasha Levin
2023-03-11 16:16                       ` Theodore Ts'o
2023-03-11 17:48                         ` Eric Biggers
2023-03-11 18:26                           ` Sasha Levin
2023-03-11 18:54                             ` Eric Biggers
2023-03-11 19:01                               ` Eric Biggers
2023-03-11 21:14                               ` Sasha Levin
2023-03-12  8:04                                 ` Amir Goldstein
2023-03-12 16:00                                   ` Sasha Levin
2023-03-13 17:41                               ` Greg KH
2023-03-13 18:54                                 ` Eric Biggers
2023-03-14 18:26                                   ` Greg KH
2023-03-11 20:17                             ` Eric Biggers
2023-03-11 21:02                               ` Sasha Levin
2023-03-12  4:23                                 ` Willy Tarreau
2023-03-11 18:33                           ` Willy Tarreau
2023-03-11 19:24                             ` Eric Biggers
2023-03-11 19:46                               ` Eric Biggers
2023-03-11 20:19                                 ` Willy Tarreau
2023-03-11 20:59                                   ` Sasha Levin
2023-03-11 20:11                               ` Willy Tarreau
2023-03-11 20:53                                 ` Eric Biggers
2023-03-12  4:32                                   ` Willy Tarreau
2023-03-12  5:21                                     ` Eric Biggers
2023-03-12  5:48                                       ` Willy Tarreau
2023-03-12  7:42                                       ` Amir Goldstein
2023-03-12 13:34                                         ` Mark Brown
2023-03-12 15:57                                         ` Sasha Levin
2023-03-12 13:55                                 ` Mark Brown
2023-03-11 22:38                       ` David Laight
2023-03-12  4:41                         ` Willy Tarreau
2023-03-12  5:09                           ` Theodore Ts'o
2023-03-14 14:12                             ` Jan Kara
2023-03-13  3:37             ` Bagas Sanjaya
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 13/21] sched/fair: sanitize vruntime of entity being placed Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 14/21] btrfs: scrub: improve tree block error reporting Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 15/21] arm64: zynqmp: Enable hs termination flag for USB dwc3 controller Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 16/21] cpuidle, intel_idle: Fix CPUIDLE_FLAG_INIT_XSTATE Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 17/21] entry, kasan, x86: Disallow overriding mem*() functions Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 18/21] x86/fpu: Don't set TIF_NEED_FPU_LOAD for PF_IO_WORKER threads Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 19/21] cpuidle: drivers: firmware: psci: Dont instrument suspend code Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 20/21] cpuidle: lib/bug: Disable rcu_is_watching() during WARN/BUG Sasha Levin
2023-02-26  3:42 ` [PATCH AUTOSEL 6.1 21/21] perf/x86/intel/uncore: Add Meteor Lake support Sasha Levin

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=Y/0wMiOwoeLcFefc@sashalap \
    --to=sashal@kernel.org \
    --cc=ebiggers@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /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;
as well as URLs for NNTP newsgroup(s).