All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Steven Rostedt <rostedt@goodmis.org>, Guenter Roeck <linux@roeck-us.net>
Cc: Carlos O'Donell <carlos@redhat.com>,
	linux-api@vger.kernel.org, Shuah Khan <shuahkh@osg.samsung.com>,
	ksummit-discuss@lists.linuxfoundation.org,
	Thorsten Leemhuis <linux@leemhuis.info>
Subject: Re: [Ksummit-discuss] [MAINTAINERS SUMMIT] & [TECH TOPIC] Improve regression tracking
Date: Wed, 05 Jul 2017 08:36:55 -0700	[thread overview]
Message-ID: <1499269015.3668.25.camel@HansenPartnership.com> (raw)
In-Reply-To: <20170705112707.54d7f345@gandalf.local.home>

On Wed, 2017-07-05 at 11:27 -0400, Steven Rostedt wrote:
> On Wed, 5 Jul 2017 08:16:33 -0700
> Guenter Roeck <linux@roeck-us.net> wrote:
> 
> > 
> > The reproducers for several of the usb fixes I submitted recently
> > took hours of stress test to reproduce the underlying problems. I
> > have one more to fix which takes days to reproduce, if at all (I
> > have seen that problem only two or three times during weeks of
> > stress test). Due to the nature of the problems, reproducing
> > them heavily depended on the underlying hardware. None of the
> > reproducers can guarantee that the problem is fixed; they are
> > intended to show the problem, not that it is fixed. This happens a
> > lot with race conditions - in many cases it is impossible to prove
> > that the problem is fixed; one can only prove that it still exists.
> > 
> > Echoing what you said, I have no idea how it would even be possible
> > to write unit tests to verify if the problems I fixed are really
> > fixed.
> > 
> > Several of the fixes I have submitted are based on single-instance
> > error logs with no reproducer. Many others are compile time fixes
> > or fix problems found with code inspection (manual or automatic).
> > 
> > If we start shaming people for not providing unit tests, all we'll
> > accomplish is that people will stop providing bug fixes.
> 
> I need to be clearer on this. What I meant was, if there's a bug
> where someone has a test that easily reproduces the bug, then if
> there's not a test added to selftests for said bug, then we should
> shame those into doing so.
> 
> A bug that is found by inspection or hard to reproduce test cases are
> not applicable, as they don't have tests that can show a regression.
> 
> And I'm betting that those bugs are NOT REGRESSIONS! Most likely are
> bugs that always existed, but because of the unpredictable hitting of
> the bug (as you said, it required hours of stress tests to
> reproduce), the bug was not previously hit during development. That's
> not a regression, that's a feature.
> 
> Are we tracking regressions or just simply bugs?

A lot of device driver regressions are bugs that previously existed in
the code but which didn't manifest until something else happened.  A
huge number of locking and timing issues are like this.  The irony is
that a lot of them go from race always being won (so bug never noticed)
to race being lost often enough to make something unusable.  To a user
that ends up being a kernel regression because it's a bug in the
current kernel which they didn't see previously which makes it unusable
for them.

I've got to vote with my users here: that's a regression not a
"feature".

James

WARNING: multiple messages have this Message-ID (diff)
From: James Bottomley <James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
To: Steven Rostedt <rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org>,
	Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
Cc: ksummit-discuss-cunTk1MwBs98uUxBSJOaYoYkZiVZrdSR2LY78lusg7I@public.gmane.org,
	Carlos O'Donell <carlos-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	Shuah Khan <shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>,
	Thorsten Leemhuis <linux-rCxcAJFjeRkk+I/owrrOrA@public.gmane.org>,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [Ksummit-discuss] [MAINTAINERS SUMMIT] & [TECH TOPIC] Improve regression tracking
Date: Wed, 05 Jul 2017 08:36:55 -0700	[thread overview]
Message-ID: <1499269015.3668.25.camel@HansenPartnership.com> (raw)
In-Reply-To: <20170705112707.54d7f345-f9ZlEuEWxVcJvu8Pb33WZ0EMvNT87kid@public.gmane.org>

On Wed, 2017-07-05 at 11:27 -0400, Steven Rostedt wrote:
> On Wed, 5 Jul 2017 08:16:33 -0700
> Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org> wrote:
> 
> > 
> > The reproducers for several of the usb fixes I submitted recently
> > took hours of stress test to reproduce the underlying problems. I
> > have one more to fix which takes days to reproduce, if at all (I
> > have seen that problem only two or three times during weeks of
> > stress test). Due to the nature of the problems, reproducing
> > them heavily depended on the underlying hardware. None of the
> > reproducers can guarantee that the problem is fixed; they are
> > intended to show the problem, not that it is fixed. This happens a
> > lot with race conditions - in many cases it is impossible to prove
> > that the problem is fixed; one can only prove that it still exists.
> > 
> > Echoing what you said, I have no idea how it would even be possible
> > to write unit tests to verify if the problems I fixed are really
> > fixed.
> > 
> > Several of the fixes I have submitted are based on single-instance
> > error logs with no reproducer. Many others are compile time fixes
> > or fix problems found with code inspection (manual or automatic).
> > 
> > If we start shaming people for not providing unit tests, all we'll
> > accomplish is that people will stop providing bug fixes.
> 
> I need to be clearer on this. What I meant was, if there's a bug
> where someone has a test that easily reproduces the bug, then if
> there's not a test added to selftests for said bug, then we should
> shame those into doing so.
> 
> A bug that is found by inspection or hard to reproduce test cases are
> not applicable, as they don't have tests that can show a regression.
> 
> And I'm betting that those bugs are NOT REGRESSIONS! Most likely are
> bugs that always existed, but because of the unpredictable hitting of
> the bug (as you said, it required hours of stress tests to
> reproduce), the bug was not previously hit during development. That's
> not a regression, that's a feature.
> 
> Are we tracking regressions or just simply bugs?

A lot of device driver regressions are bugs that previously existed in
the code but which didn't manifest until something else happened.  A
huge number of locking and timing issues are like this.  The irony is
that a lot of them go from race always being won (so bug never noticed)
to race being lost often enough to make something unusable.  To a user
that ends up being a kernel regression because it's a bug in the
current kernel which they didn't see previously which makes it unusable
for them.

I've got to vote with my users here: that's a regression not a
"feature".

James

  reply	other threads:[~2017-07-05 15:36 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-02 17:51 [Ksummit-discuss] [MAINTAINERS SUMMIT] & [TECH TOPIC] Improve regression tracking Thorsten Leemhuis
2017-07-03 16:30 ` Steven Rostedt
2017-07-03 16:30   ` Steven Rostedt
2017-07-03 18:50   ` Dan Williams
2017-07-03 18:50     ` Dan Williams
2017-07-04 19:03   ` Thorsten Leemhuis
2017-07-04 19:03     ` Thorsten Leemhuis
2017-07-05 12:45     ` Steven Rostedt
2017-07-05 12:45       ` Steven Rostedt
2017-07-05 13:09       ` Carlos O'Donell
2017-07-05 13:09         ` Carlos O'Donell
2017-07-05 13:27         ` Steven Rostedt
2017-07-05 13:27           ` Steven Rostedt
2017-07-05 14:06           ` Greg KH
2017-07-05 14:06             ` Greg KH
2017-07-05 14:28             ` Carlos O'Donell
2017-07-05 14:28               ` Carlos O'Donell
2017-07-05 14:33             ` Steven Rostedt
2017-07-05 14:33               ` Steven Rostedt
2017-07-05 14:52               ` Mark Brown
2017-07-05 14:52                 ` Mark Brown
2017-07-05 15:08               ` Carlos O'Donell
2017-07-05 15:08                 ` Carlos O'Donell
2017-07-05 16:10                 ` Steven Rostedt
2017-07-05 16:10                   ` Steven Rostedt
2017-07-06 11:34                   ` Laurent Pinchart
2017-07-06 11:34                     ` Laurent Pinchart
2017-07-09 13:46               ` Thorsten Leemhuis
2017-07-09 13:46                 ` Thorsten Leemhuis
2017-07-05 14:33             ` Mark Brown
2017-07-05 14:33               ` Mark Brown
2017-07-05 14:36               ` Steven Rostedt
2017-07-05 14:36                 ` Steven Rostedt
2017-07-05 14:50                 ` James Bottomley
2017-07-05 14:50                   ` James Bottomley
2017-07-05 14:56                   ` Steven Rostedt
2017-07-05 14:56                     ` Steven Rostedt
2017-07-05 15:09                     ` James Bottomley
2017-07-05 15:09                       ` James Bottomley
2017-07-05 15:20                       ` Mark Brown
2017-07-05 15:20                         ` Mark Brown
2017-07-05 15:40                         ` Geert Uytterhoeven
2017-07-05 15:40                           ` Geert Uytterhoeven
2017-07-05 15:20                       ` Steven Rostedt
2017-07-05 15:20                         ` Steven Rostedt
2017-07-05 15:32                         ` James Bottomley
2017-07-05 15:32                           ` James Bottomley
2017-07-05 15:43                           ` Steven Rostedt
2017-07-05 15:43                             ` Steven Rostedt
2017-07-05 18:24                       ` Daniel Vetter
2017-07-05 18:24                         ` Daniel Vetter
2017-07-05 18:17                 ` Daniel Vetter
2017-07-05 18:17                   ` Daniel Vetter
2017-07-05 15:16             ` Guenter Roeck
2017-07-05 15:16               ` Guenter Roeck
2017-07-05 15:27               ` Steven Rostedt
2017-07-05 15:27                 ` Steven Rostedt
2017-07-05 15:36                 ` James Bottomley [this message]
2017-07-05 15:36                   ` James Bottomley
2017-07-05 16:04                   ` Steven Rostedt
2017-07-05 16:04                     ` Steven Rostedt
2017-07-05 16:58                     ` James Bottomley
2017-07-05 16:58                       ` James Bottomley
2017-07-05 17:07                       ` Steven Rostedt
2017-07-05 17:07                         ` Steven Rostedt
2017-07-05 16:48                 ` Guenter Roeck
2017-07-05 16:48                   ` Guenter Roeck
2017-07-05 16:58                   ` Dan Williams
2017-07-05 16:58                     ` Dan Williams
2017-07-05 17:02                   ` Steven Rostedt
2017-07-05 17:02                     ` Steven Rostedt
2017-07-06  9:28                     ` Mark Brown
2017-07-06  9:28                       ` Mark Brown
2017-07-06  9:41                       ` Daniel Vetter
2017-07-06  9:41                         ` Daniel Vetter
2017-07-06 14:53                         ` Theodore Ts'o
2017-07-06 14:53                           ` Theodore Ts'o
2017-07-06 21:28                           ` Daniel Vetter
2017-07-06 21:28                             ` Daniel Vetter
2017-07-06 14:48                       ` James Bottomley
2017-07-06 14:48                         ` James Bottomley
2017-07-07 10:03                         ` Mark Brown
2017-07-07 10:03                           ` Mark Brown
2017-07-31 16:54                     ` Eric W. Biederman
2017-07-31 16:54                       ` Eric W. Biederman
2017-07-31 20:11                       ` Steven Rostedt
2017-07-31 20:11                         ` Steven Rostedt
2017-07-31 20:12                         ` Eric W. Biederman
2017-07-31 20:12                           ` Eric W. Biederman
2017-08-02 16:53                       ` Shuah Khan
2017-08-02 16:53                         ` Shuah Khan
2017-08-02 17:33                         ` Eric W. Biederman
2017-08-02 17:33                           ` Eric W. Biederman
2017-08-02 17:46                           ` Shuah Khan
2017-08-02 17:46                             ` Shuah Khan
2017-08-02 17:58                             ` Shuah Khan
2017-08-02 17:58                               ` Shuah Khan
2017-08-02 18:04                             ` Eric W. Biederman
2017-08-02 18:04                               ` Eric W. Biederman
2017-08-02 18:23                               ` Randy Dunlap
2017-08-02 18:23                                 ` Randy Dunlap
2017-08-02 18:42                               ` Shuah Khan
2017-08-02 18:42                                 ` Shuah Khan
2017-08-03  3:03                                 ` Theodore Ts'o
2017-08-03  3:03                                   ` Theodore Ts'o
2017-08-03 17:42                                   ` Bird, Timothy
2017-08-03 17:42                                     ` Bird, Timothy
2017-08-03 22:11                                     ` Shuah Khan
2017-08-03 22:11                                       ` Shuah Khan
2017-08-03 18:51                                   ` Shuah Khan
2017-08-03 18:51                                     ` Shuah Khan
2017-08-04  1:15                                     ` Theodore Ts'o
2017-08-04  1:15                                       ` Theodore Ts'o
2017-07-07  3:33                 ` Fengguang Wu
2017-07-07  3:33                   ` Fengguang Wu
2017-07-07  4:52                   ` Frank Rowand
2017-07-07  4:52                     ` Frank Rowand
2017-07-05 15:32               ` Greg KH
2017-07-05 15:32                 ` Greg KH
2017-07-05 15:36                 ` Carlos O'Donell
2017-07-05 15:36                   ` Carlos O'Donell
2017-07-05 15:52                 ` Steven Rostedt
2017-07-05 15:52                   ` Steven Rostedt
2017-07-05 18:42                   ` Greg KH
2017-07-05 18:42                     ` Greg KH
2017-07-05 18:29                 ` Daniel Vetter
2017-07-05 18:29                   ` Daniel Vetter
2017-07-06 22:24                 ` Shuah Khan
2017-07-06 22:24                   ` Shuah Khan
2017-07-06 22:32                   ` Steven Rostedt
2017-07-06 22:32                     ` Steven Rostedt
2017-07-06 22:40                     ` Shuah Khan
2017-07-06 22:40                       ` Shuah Khan
2017-07-05 16:54             ` Dan Williams
2017-07-05 16:54               ` Dan Williams
2017-07-05 18:45               ` Greg KH
2017-07-05 18:45                 ` Greg KH
2017-07-05 19:47                 ` Dan Williams
2017-07-05 19:47                   ` Dan Williams
2017-07-05 14:06           ` Carlos O'Donell
2017-07-05 14:06             ` Carlos O'Donell
2017-07-05 15:47         ` Mark Brown
2017-07-05 15:47           ` Mark Brown
2017-07-07  6:15 ` Andrei Vagin

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=1499269015.3668.25.camel@HansenPartnership.com \
    --to=james.bottomley@hansenpartnership.com \
    --cc=carlos@redhat.com \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux@leemhuis.info \
    --cc=linux@roeck-us.net \
    --cc=rostedt@goodmis.org \
    --cc=shuahkh@osg.samsung.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.