linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Sasha Levin <Alexander.Levin@microsoft.com>
Cc: Pavel Machek <pavel@ucw.cz>, Steven Rostedt <rostedt@goodmis.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Petr Mladek <pmladek@suse.com>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Mel Gorman <mgorman@suse.de>, Michal Hocko <mhocko@kernel.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Peter Zijlstra <peterz@infradead.org>, Jan Kara <jack@suse.cz>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Byungchul Park <byungchul.park@lge.com>,
	Tejun Heo <tj@kernel.org>
Subject: Re: [PATCH AUTOSEL for 4.14 015/161] printk: Add console owner and waiter logic to load balance console writes
Date: Tue, 17 Apr 2018 13:41:44 +0200	[thread overview]
Message-ID: <20180417114144.ov27khlig5thqvyo@quack2.suse.cz> (raw)
In-Reply-To: <20180416172327.GK2341@sasha-vm>

On Mon 16-04-18 17:23:30, Sasha Levin wrote:
> On Mon, Apr 16, 2018 at 07:06:04PM +0200, Pavel Machek wrote:
> >On Mon 2018-04-16 16:37:56, Sasha Levin wrote:
> >> On Mon, Apr 16, 2018 at 12:30:19PM -0400, Steven Rostedt wrote:
> >> >On Mon, 16 Apr 2018 16:19:14 +0000
> >> >Sasha Levin <Alexander.Levin@microsoft.com> wrote:
> >> >
> >> >> >Wait! What does that mean? What's the purpose of stable if it is as
> >> >> >broken as mainline?
> >> >>
> >> >> This just means that if there is a fix that went in mainline, and the
> >> >> fix is broken somehow, we'd rather take the broken fix than not.
> >> >>
> >> >> In this scenario, *something* will be broken, it's just a matter of
> >> >> what. We'd rather have the same thing broken between mainline and
> >> >> stable.
> >> >
> >> >Honestly, I think that removes all value of the stable series. I
> >> >remember when the stable series were first created. People were saying
> >> >that it wouldn't even get to more than 5 versions, because the bar for
> >> >backporting was suppose to be very high. Today it's just a fork of the
> >> >kernel at a given version. No more features, but we will be OK with
> >> >regressions. I'm struggling to see what the benefit of it is suppose to
> >> >be?
> >>
> >> It's not "OK with regressions".
> >>
> >> Let's look at a hypothetical example: You have a 4.15.1 kernel that has
> >> a broken printf() behaviour so that when you:
> >>
> >> 	pr_err("%d", 5)
> >>
> >> Would print:
> >>
> >> 	"Microsoft Rulez"
> >>
> >> Bad, right? So you went ahead and fixed it, and now it prints "5" as you
> >> might expect. But alas, with your patch, running:
> >>
> >> 	pr_err("%s", "hi!")
> >>
> >> Would show a cat picture for 5 seconds.
> >>
> >> Should we take your patch in -stable or not? If we don't, we're stuck
> >> with the original issue while the mainline kernel will behave
> >> differently, but if we do - we introduce a new regression.
> >
> >Of course not.
> >
> >- It must be obviously correct and tested.
> >
> >If it introduces new bug, it is not correct, and certainly not
> >obviously correct.
> 
> As you might have noticed, we don't strictly follow the rules.
> 
> Take a look at the whole PTI story as an example. It's way more than 100
> lines, it's not obviously corrent, it fixed more than 1 thing, and so
> on, and yet it went in -stable!
> 
> Would you argue we shouldn't have backported PTI to -stable?

So I agree with that being backported. But I think this nicely demostrates
a point some people are trying to make in this thread. We do take fixes
with high risk or regression if they fix serious enough issue. Also we do
take fixes to non-serious stuff (such as addition of device ID) if the
chances of regression are really low.

So IMHO the metric for including the fix is not solely "how annoying to
user this can be" but rather something like:

score = (how annoying the bug is) * ((1 / (chance of regression due to
	including this)) - 1)^3

(constants are somewhat arbitrary subject to tuning ;). Now both 'annoying'
and 'regression chance' parts are subjective and sometimes difficult to
estimate so don't take the formula too seriously but it demonstrates the
point. I think we all agree we want to fix annoying stuff and we don't want
regressions. But you need to somehow weight this over your expected
userbase - and this is where your argument "but someone might be annoyed by
LEDs not working so let's include it" has problems - it should rather be
"is the annoyance of non-working leds over expected user base high enough
to risk a regression due to this patch for someone in the expected user
base"? The answer to this second question is not clear at all to a casual
reviewer and that's why we IMHO have CC stable tag as maintainer is
supposed to have at least a bit better clue.

Another point I wanted to make is that if chance a patch causes a
regression is about 2% as you said somewhere else in a thread, then by
adding 20 patches that "may fix a bug that is annoying for someone" you've
just increased a chance there's a regression in the release by 34%. And
this is not just a math game, this also roughly matches a real experience
with maintaining our enterprise kernels. Do 20 "maybe" fixes outweight such
regression chance? And I also note that for a regression to get reported so
that it gets included into your 2% estimate of a patch regression rate,
someone must be bothered enough by it to triage it and send an email
somewhere so that already falls into a category of "serious" stuff to me.

So these are the reasons why I think that merging tons of patches into
stable isn't actually very good. 

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

  reply	other threads:[~2018-04-17 11:41 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180409001936.162706-1-alexander.levin@microsoft.com>
2018-04-09  0:19 ` Sasha Levin
2018-04-09  8:22   ` Petr Mladek
2018-04-15 14:42     ` Sasha Levin
2018-04-16 13:30       ` Steven Rostedt
2018-04-16 15:18         ` Linus Torvalds
2018-04-16 15:30           ` Pavel Machek
2018-04-16 15:50             ` Sasha Levin
2018-04-16 16:06               ` Pavel Machek
2018-04-16 16:14                 ` Sasha Levin
2018-04-16 16:22                   ` Steven Rostedt
2018-04-16 16:31                     ` Sasha Levin
2018-04-16 16:47                       ` Steven Rostedt
2018-04-16 16:53                         ` Sasha Levin
2018-04-16 17:00                           ` Pavel Machek
2018-04-17 10:46                             ` Greg KH
2018-04-17 12:24                               ` Petr Mladek
2018-04-17 12:49                                 ` Michal Hocko
2018-04-17 13:39                                   ` Sasha Levin
2018-04-17 14:22                                     ` Michal Hocko
2018-04-17 14:36                                       ` Sasha Levin
2018-04-17 18:10                                         ` Michal Hocko
2018-04-17 13:45                                 ` Sasha Levin
2018-04-18  8:33                                   ` Petr Mladek
2018-04-16 16:28                   ` Pavel Machek
2018-04-16 16:39                     ` Sasha Levin
2018-04-16 16:42                       ` Pavel Machek
2018-04-16 16:45                         ` Sasha Levin
2018-04-16 16:54                           ` Pavel Machek
2018-04-17 10:50                             ` Greg KH
2018-04-16 17:05                   ` Pavel Machek
2018-04-16 17:16                     ` Sasha Levin
2018-04-16 17:44                       ` Steven Rostedt
2018-04-16 18:17                         ` Sasha Levin
2018-04-16 18:35                           ` Steven Rostedt
2018-04-16 20:17                       ` Jiri Kosina
2018-04-16 20:36                         ` Sasha Levin
2018-04-16 20:43                           ` Jiri Kosina
2018-04-16 21:18                             ` Sasha Levin
2018-04-16 21:28                               ` Jiri Kosina
2018-04-17 10:39                                 ` Greg KH
2018-04-17 11:07                                   ` Michal Hocko
2018-04-17 14:04                                     ` Sasha Levin
2018-04-17 14:15                                       ` Steven Rostedt
2018-04-17 14:36                                         ` Greg KH
2018-04-17 14:36                                       ` Michal Hocko
2018-04-17 14:55                                         ` Sasha Levin
2018-04-17 15:52                                           ` Jiri Kosina
2018-04-17 16:06                                             ` Sasha Levin
2018-05-03 10:04                                               ` Pavel Machek
2018-05-03 13:02                                                 ` Sasha Levin
2018-04-17 16:25                                             ` Mike Galbraith
2018-04-17 11:21                                   ` Jiri Kosina
2018-05-03  9:47                               ` Pavel Machek
2018-05-03 13:06                                 ` Sasha Levin
2018-04-16 16:20                 ` Steven Rostedt
2018-04-16 16:28                   ` Sasha Levin
2018-04-16 16:39                     ` Pavel Machek
2018-04-16 16:43                       ` Sasha Levin
2018-04-16 16:53                         ` Steven Rostedt
2018-04-16 16:58                           ` Pavel Machek
2018-04-16 17:09                           ` Sasha Levin
2018-04-16 17:33                             ` Steven Rostedt
2018-04-16 17:42                               ` Sasha Levin
2018-04-16 18:26                                 ` Steven Rostedt
2018-04-16 18:30                                   ` Linus Torvalds
2018-04-16 18:41                                     ` Steven Rostedt
2018-04-16 18:52                                       ` Linus Torvalds
2018-04-16 19:00                                         ` Linus Torvalds
2018-04-16 19:30                                           ` Steven Rostedt
2018-04-16 19:19                                         ` Linus Torvalds
2018-04-16 19:24                                         ` Steven Rostedt
2018-04-16 19:28                                           ` Linus Torvalds
2018-04-16 19:31                                             ` Linus Torvalds
2018-04-16 19:58                                               ` Steven Rostedt
2018-04-16 19:38                                             ` Steven Rostedt
2018-04-16 19:55                                               ` Linus Torvalds
2018-04-16 20:02                                                 ` Steven Rostedt
2018-04-16 20:17                                                   ` Linus Torvalds
2018-04-16 20:33                                                     ` Jiri Kosina
2018-04-16 21:27                                                     ` Steven Rostedt
2018-04-16 18:35                                   ` Sasha Levin
2018-04-16 18:57                                     ` Steven Rostedt
2018-04-16 15:36           ` Steven Rostedt
2018-04-16 16:02             ` Sasha Levin
2018-04-16 16:10               ` Pavel Machek
2018-04-16 16:12               ` Steven Rostedt
2018-04-16 16:19                 ` Sasha Levin
2018-04-16 16:30                   ` Steven Rostedt
2018-04-16 16:37                     ` Sasha Levin
2018-04-16 17:06                       ` Pavel Machek
2018-04-16 17:23                         ` Sasha Levin
2018-04-17 11:41                           ` Jan Kara [this message]
2018-04-17 13:31                             ` Sasha Levin
2018-04-17 15:55                               ` Jan Kara
2018-04-17 16:19                                 ` Sasha Levin
2018-04-17 17:57                                   ` Jan Kara
2018-04-17 18:28                                     ` Sasha Levin
2018-05-03  9:36                                   ` Pavel Machek
2018-05-03 13:28                                     ` Sasha Levin
2018-05-03  9:32                           ` Pavel Machek
2018-05-03 13:30                             ` Sasha Levin
2018-04-19 11:41                   ` Thomas Backlund
2018-04-19 13:59                     ` Greg KH
2018-04-19 14:05                       ` Jan Kara
2018-04-19 14:22                         ` Greg KH
2018-04-19 15:16                           ` Thomas Backlund
2018-04-19 15:57                             ` Greg KH
2018-04-19 16:25                               ` Thomas Backlund
2018-04-19 16:41                           ` Greg KH
2018-04-19 15:04                       ` Thomas Backlund
2018-04-19 15:09                         ` Sasha Levin
2018-04-19 16:20                           ` Thomas Backlund
2018-04-16 15:39           ` 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=20180417114144.ov27khlig5thqvyo@quack2.suse.cz \
    --to=jack@suse.cz \
    --cc=Alexander.Levin@microsoft.com \
    --cc=akpm@linux-foundation.org \
    --cc=byungchul.park@lge.com \
    --cc=dave.hansen@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mgorman@suse.de \
    --cc=mhocko@kernel.org \
    --cc=pavel@ucw.cz \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=stable@vger.kernel.org \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    --cc=xiyou.wangcong@gmail.com \
    /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