~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/process/handling-regressions.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/process/handling-regressions.rst (Version linux-6.11.5) and /Documentation/process/handling-regressions.rst (Version linux-5.8.18)


  1 .. SPDX-License-Identifier: (GPL-2.0+ OR CC-BY    
  2 .. See the bottom of this file for additional     
  3                                                   
  4 Handling regressions                              
  5 ++++++++++++++++++++                              
  6                                                   
  7 *We don't cause regressions* -- this document     
  8 Linux kernel development" means in practice fo    
  9 Documentation/admin-guide/reporting-regression    
 10 user's point of view; if you never read that t    
 11 before continuing here.                           
 12                                                   
 13 The important bits (aka "The TL;DR")              
 14 ====================================              
 15                                                   
 16 #. Ensure subscribers of the `regression maili    
 17    (regressions@lists.linux.dev) quickly becom    
 18    report:                                        
 19                                                   
 20     * When receiving a mailed report that did     
 21       loop by immediately sending at least a b    
 22       CCed.                                       
 23                                                   
 24     * Forward or bounce any reports submitted     
 25                                                   
 26 #. Make the Linux kernel regression tracking b    
 27    is optional, but recommended):                 
 28                                                   
 29     * For mailed reports, check if the reporte    
 30       introduced: v5.13..v5.14-rc1``. If not,     
 31       list in CC) containing a paragraph like     
 32       when the issue started to happen::          
 33                                                   
 34        #regzbot ^introduced: 1f2e3d4c5b6a         
 35                                                   
 36     * When forwarding reports from a bug track    
 37       above), include a paragraph like the fol    
 38                                                   
 39        #regzbot introduced: v5.13..v5.14-rc1      
 40        #regzbot from: Some N. Ice Human <some.h    
 41        #regzbot monitor: http://some.bugtracke    
 42                                                   
 43 #. When submitting fixes for regressions, add     
 44    description pointing to all places where th    
 45    mandated by Documentation/process/submittin    
 46    :ref:`Documentation/process/5.Posting.rst <    
 47    only fixing part of the issue that caused t    
 48    "Link:" tags instead. regzbot currently mak    
 49    two.                                           
 50                                                   
 51 #. Try to fix regressions quickly once the cul    
 52    for most regressions should be merged withi    
 53    resolved within two or three days.             
 54                                                   
 55                                                   
 56 All the details on Linux kernel regressions re    
 57 ==============================================    
 58                                                   
 59                                                   
 60 The important basics in more detail               
 61 -----------------------------------               
 62                                                   
 63                                                   
 64 What to do when receiving regression reports      
 65 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 66                                                   
 67 Ensure the Linux kernel's regression tracker a    
 68 `regression mailing list <https://lore.kernel.    
 69 (regressions@lists.linux.dev) become aware of     
 70                                                   
 71  * When you receive a report by mail that did     
 72    it into the loop by sending at least a brie    
 73    try to ensure it gets CCed again in case yo    
 74    the list.                                      
 75                                                   
 76  * If a report submitted in a bug tracker hits    
 77    to the list. Consider checking the list arc    
 78    already forwarded the report as instructed     
 79    Documentation/admin-guide/reporting-issues.    
 80                                                   
 81 When doing either, consider making the Linux k    
 82 "regzbot" immediately start tracking the issue    
 83                                                   
 84  * For mailed reports, check if the reporter i    
 85    ``#regzbot introduced: 1f2e3d4c5b6a``. If n    
 86    regressions list in CC) with a paragraph li    
 87                                                   
 88        #regzbot ^introduced: v5.13..v5.14-rc1     
 89                                                   
 90    This tells regzbot the version range in whi    
 91    you can specify a range using commit-ids as    
 92    in case the reporter bisected the culprit.     
 93                                                   
 94    Note the caret (^) before the "introduced":    
 95    parent mail (the one you reply to) as the i    
 96    you want to see tracked; that's important,     
 97    for patches with "Closes:" tags pointing to    
 98    lore.kernel.org.                               
 99                                                   
100  * When forwarding a regression reported to a     
101    with these regzbot commands::                  
102                                                   
103        #regzbot introduced: 1f2e3d4c5b6a          
104        #regzbot from: Some N. Ice Human <some.h    
105        #regzbot monitor: http://some.bugtracke    
106                                                   
107    Regzbot will then automatically associate p    
108    contain "Closes:" tags pointing to your mai    
109                                                   
110 What's important when fixing regressions          
111 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~          
112                                                   
113 You don't need to do anything special when sub    
114 remember to do what Documentation/process/subm    
115 :ref:`Documentation/process/5.Posting.rst <dev    
116 Documentation/process/stable-kernel-rules.rst     
117                                                   
118  * Point to all places where the issue was rep    
119                                                   
120        Closes: https://lore.kernel.org/r/30th.    
121        Closes: https://bugzilla.kernel.org/sho    
122                                                   
123    If you are only fixing part of the issue, y    
124    described in the first document mentioned a    
125    both of these equivalently and considers th    
126                                                   
127  * Add a "Fixes:" tag to specify the commit ca    
128                                                   
129  * If the culprit was merged in an earlier dev    
130    the fix for backporting using the ``Cc: sta    
131                                                   
132 All this is expected from you and important wh    
133 these tags are of great value for everyone (yo    
134 into the issue weeks, months, or years later.     
135 tools and scripts used by other kernel develop    
136 these tools is regzbot, which heavily relies o    
137 reports for regression with changes resolving     
138                                                   
139 Expectations and best practices for fixing reg    
140 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
141                                                   
142 As a Linux kernel developer, you are expected     
143 situations where a regression caused by a rece    
144 only these options:                               
145                                                   
146  * Run a kernel with a regression that impacts    
147                                                   
148  * Switch to an older or newer kernel series.     
149                                                   
150  * Continue running an outdated and thus poten    
151    than three weeks after the regression's cul    
152    should be less than two. And it ought to be    
153    severe or affects many users -- either in g    
154    environments.                                  
155                                                   
156 How to realize that in practice depends on var    
157 rules of thumb as a guide.                        
158                                                   
159 In general:                                       
160                                                   
161  * Prioritize work on regressions over all oth    
162    latter concerns a severe issue (e.g. acute     
163    bricked hardware, ...).                        
164                                                   
165  * Expedite fixing mainline regressions that r    
166    mainline, stable, or longterm release (eith    
167                                                   
168  * Do not consider regressions from the curren    
169    till the end of the cycle, as the issue mig    
170    CI systems from testing mainline now or gen    
171                                                   
172  * Work with the required care to avoid additi    
173    resolving an issue then might take longer t    
174                                                   
175 On timing once the culprit of a regression is     
176                                                   
177  * Aim to mainline a fix within two or three d    
178    bothering many users -- either in general o    
179    particular hardware environment, distributi    
180                                                   
181  * Aim to mainline a fix by Sunday after the n    
182    into a recent mainline, stable, or longterm    
183    backport); if the culprit became known earl    
184    resolve, try to mainline the fix within the    
185                                                   
186  * For other regressions, aim to mainline fixe    
187    within the next three weeks. One or two Sun    
188    regression is something people can live wit    
189    mild performance regression.                   
190                                                   
191  * It's strongly discouraged to delay mainlini    
192    merge window, except when the fix is extrao    
193    culprit was mainlined more than a year ago.    
194                                                   
195 On procedure:                                     
196                                                   
197  * Always consider reverting the culprit, as i    
198    dangerous way to fix a regression. Don't wo    
199    variant later: that should be straight-forw    
200    through review once already.                   
201                                                   
202  * Try to resolve any regressions introduced i    
203    twelve months before the current developmen    
204    regressions to be handled like those from t    
205    bears unusual risks.                           
206                                                   
207  * Consider CCing Linus on discussions or patc    
208    tangly. Do the same in precarious or urgent    
209    subsystem maintainer might be unavailable.     
210    know such a regression made it into a mainl    
211                                                   
212  * For urgent regressions, consider asking Lin    
213    from the mailing list: he is totally fine w    
214    fixes. Ideally though such requests should     
215    subsystem maintainers or come directly from    
216                                                   
217  * In case you are unsure if a fix is worth th    
218    a new mainline release, send Linus a mail w    
219    CC; in it, summarize the situation while as    
220    the fix straight from the list. He then him    
221    needed even postpone the release. Such requ    
222    in accordance with the subsystem maintainer    
223                                                   
224 Regarding stable and longterm kernels:            
225                                                   
226  * You are free to leave regressions to the st    
227    time occurred with mainline or were fixed t    
228                                                   
229  * If a regression made it into a proper mainl    
230    twelve months, ensure to tag the fix with "    
231    "Fixes:" tag alone does not guarantee a bac    
232    in case you know the culprit was backported    
233                                                   
234  * When receiving reports about regressions in    
235    series, please evaluate at least briefly if    
236    mainline as well -- and if that seems likel    
237    doubt, ask the reporter to check mainline.     
238                                                   
239  * Whenever you want to swiftly resolve a regr    
240    into a proper mainline, stable, or longterm    
241    mainline; when appropriate thus involve Lin    
242    above). That's because the stable team norm    
243    any changes that cause the same problems in    
244                                                   
245  * In case of urgent regression fixes you migh    
246    backporting by dropping the stable team a n    
247    this is especially advisable during merge w    
248    the fix otherwise might land at the end of     
249                                                   
250 On patch flow:                                    
251                                                   
252  * Developers, when trying to reach the time p    
253    to account for the time it takes to get fix    
254    Linus, ideally with them being in linux-nex    
255    fix is urgent, make it obvious to ensure ot    
256                                                   
257  * Reviewers, you are kindly asked to assist d    
258    periods mentioned above by reviewing regres    
259                                                   
260  * Subsystem maintainers, you likewise are enc    
261    of regression fixes. Thus evaluate if skipp    
262    the particular fix. Also consider sending g    
263    usual when needed. And try to avoid holding    
264    weekends -- especially when the fix is mark    
265                                                   
266                                                   
267 More aspects regarding regressions developers     
268 ----------------------------------------------    
269                                                   
270                                                   
271 How to deal with changes where a risk of regre    
272 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
273                                                   
274 Evaluate how big the risk of regressions is, f    
275 search in Linux distributions and Git forges.     
276 developers or projects likely to be affected t    
277 proposed change; if problems surface, maybe so    
278 can be found.                                     
279                                                   
280 If the risk of regressions in the end seems to    
281 with the change, but let all involved parties     
282 sure your patch description makes this aspect     
283 merged, tell the Linux kernel's regression tra    
284 list about the risk, so everyone has the chang    
285 trickle in. Depending on the risk, you also mi    
286 maintainer to mention the issue in his mainlin    
287                                                   
288 What else is there to known about regressions?    
289 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
290                                                   
291 Check out Documentation/admin-guide/reporting-    
292 of other aspects you want might want to be awa    
293                                                   
294  * the purpose of the "no regressions" rule       
295                                                   
296  * what issues actually qualify as regression     
297                                                   
298  * who's in charge for finding the root cause     
299                                                   
300  * how to handle tricky situations, e.g. when     
301    security fix or when fixing a regression mi    
302                                                   
303 Whom to ask for advice when it comes to regres    
304 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
305                                                   
306 Send a mail to the regressions mailing list (r    
307 CCing the Linux kernel's regression tracker (r    
308 issue might better be dealt with in private, f    
309                                                   
310                                                   
311 More about regression tracking and regzbot        
312 ------------------------------------------        
313                                                   
314                                                   
315 Why the Linux kernel has a regression tracker,    
316 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
317                                                   
318 Rules like "no regressions" need someone to en    
319 they are broken either accidentally or on purp    
320 true for the Linux kernel as well. That's why     
321 keep an eye on things as the Linux kernel's re    
322 occasionally helped by other people. Neither o    
323 that's why regression tracking is done on a be    
324                                                   
325 Earlier attempts to manually track regressions    
326 frustrating work, which is why they were aband    
327 this from happening again, Thorsten developed     
328 with the long term goal to automate regression    
329 everyone involved.                                
330                                                   
331 How does regression tracking work with regzbot    
332 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
333                                                   
334 The bot watches for replies to reports of trac    
335 it's looking out for posted or committed patch    
336 with "Closes:" tags; replies to such patch pos    
337 Combined this data provides good insights into    
338 process.                                          
339                                                   
340 Regzbot tries to do its job with as little ove    
341 reporters and developers. In fact, only report    
342 duty: they need to tell regzbot about the regr    
343 introduced`` command outlined above; if they d    
344 take care of that using ``#regzbot ^introduced    
345                                                   
346 For developers there normally is no extra work    
347 sure to do something that was expected long be    
348 links to the patch description pointing to all    
349                                                   
350 Do I have to use regzbot?                         
351 ~~~~~~~~~~~~~~~~~~~~~~~~~                         
352                                                   
353 It's in the interest of everyone if you do, as    
354 Torvalds partly rely on regzbot's tracking in     
355 deciding to release a new version or extend th    
356 need to be aware of all unfixed regression; to    
357 into the weekly reports sent by regzbot.          
358                                                   
359 Do I have to tell regzbot about every regressi    
360 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
361                                                   
362 Ideally yes: we are all humans and easily forg    
363 important unexpectedly comes up -- for example    
364 kernel or something in real life that's keepin    
365 while. Hence, it's best to tell regzbot about     
366 immediately write a fix and commit it to a tre    
367 kernel series.                                    
368                                                   
369 How to see which regressions regzbot tracks cu    
370 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
371                                                   
372 Check `regzbot's web-interface <https://linux-    
373 for the latest info; alternatively, `search fo    
374 <https://lore.kernel.org/lkml/?q=%22Linux+regr    
375 which regzbot normally sends out once a week o    
376 few hours before Linus usually publishes new (    
377                                                   
378 What places is regzbot monitoring?                
379 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                
380                                                   
381 Regzbot is watching the most important Linux m    
382 repositories of linux-next, mainline, and stab    
383                                                   
384 What kind of issues are supposed to be tracked    
385 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
386                                                   
387 The bot is meant to track regressions, hence p    
388 regular issues. But it's okay for the Linux ke    
389 use regzbot to track severe issues, like repor    
390 or internal errors (Panic, Oops, BUG(), warnin    
391                                                   
392 Can I add regressions found by CI systems to r    
393 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
394                                                   
395 Feel free to do so, if the particular regressi    
396 use cases and thus might be noticed by users;     
397 regzbot for theoretical regressions unlikely t    
398 usage.                                            
399                                                   
400 How to interact with regzbot?                     
401 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                     
402                                                   
403 By using a 'regzbot command' in a direct or in    
404 regression report. These commands need to be i    
405 need to be separated from the rest of the mail    
406                                                   
407 One such command is ``#regzbot introduced: <ve    
408 regzbot consider your mail as a regressions re    
409 already described above; ``#regzbot ^introduce    
410 such command, which makes regzbot consider the    
411 regression which it starts to track.              
412                                                   
413 Once one of those two commands has been utiliz    
414 used in direct or indirect replies to the repo    
415 of the `introduced` commands or in replies to     
416 or itself is a reply to that mail:                
417                                                   
418  * Set or update the title::                      
419                                                   
420        #regzbot title: foo                        
421                                                   
422  * Monitor a discussion or bugzilla.kernel.org    
423    the issue or a fix are discussed -- for exa    
424    the regression::                               
425                                                   
426        #regzbot monitor: https://lore.kernel.o    
427                                                   
428    Monitoring only works for lore.kernel.org a    
429    will consider all messages in that thread o    
430    process.                                       
431                                                   
432  * Point to a place with further details of in    
433    or a ticket in a bug tracker that are sligh    
434    topic::                                        
435                                                   
436        #regzbot link: https://bugzilla.kernel.    
437                                                   
438  * Mark a regression as fixed by a commit that    
439    landed::                                       
440                                                   
441        #regzbot fix: 1f2e3d4c5d                   
442                                                   
443  * Mark a regression as a duplicate of another    
444                                                   
445        #regzbot dup-of: https://lore.kernel.or    
446                                                   
447  * Mark a regression as invalid::                 
448                                                   
449        #regzbot invalid: wasn't a regression,     
450                                                   
451 Is there more to tell about regzbot and its co    
452 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    
453                                                   
454 More detailed and up-to-date information about    
455 kernel's regression tracking bot can be found     
456 `project page <https://gitlab.com/knurd42/regz    
457 contains a `getting started guide <https://git    
458 and `reference documentation <https://gitlab.c    
459 which both cover more details than the above s    
460                                                   
461 Quotes from Linus about regression                
462 ----------------------------------                
463                                                   
464 Find below a few real life examples of how Lin    
465 be handled:                                       
466                                                   
467  * From `2017-10-26 (1/2)                         
468    <https://lore.kernel.org/lkml/CA+55aFwiiQYJ+    
469                                                   
470        If you break existing user space setups    
471                                                   
472        It's not ok to say "but we'll fix the u    
473                                                   
474        Really. NOT OK.                            
475                                                   
476        [...]                                      
477                                                   
478        The first rule is:                         
479                                                   
480         - we don't cause regressions              
481                                                   
482        and the corollary is that when regressi    
483        them and fix them, instead of blaming u    
484                                                   
485        The fact that you have apparently been     
486        three weeks means that I will revert, a    
487        requests until the people involved unde    
488        is done.                                   
489                                                   
490  * From `2017-10-26 (2/2)                         
491    <https://lore.kernel.org/lkml/CA+55aFxW7NMAM    
492                                                   
493        People should basically always feel lik    
494        and simply not have to worry about it.     
495                                                   
496        I refuse to introduce "you can only upd    
497        update that other program" kind of limi    
498        work for you, the rule is that it conti    
499                                                   
500        There have been exceptions, but they ar    
501        generally have some major and fundament    
502        that were basically entirely unavoidabl    
503        avoid them. Maybe we can't practically     
504        after it is decades old and nobody uses    
505        more. Maybe there's a serious security     
506        and people actually depended on that fu    
507        there was some fundamental other breaka    
508        flag day for very core and fundamental     
509                                                   
510        And notice that this is very much about    
511                                                   
512        Behavioral changes happen, and maybe we    
513        feature any more. There's a number of f    
514        are printed out as zeroes, simply becau    
515        the kernel any more, or because showing    
516        an information leak). But the numbers g    
517        the code that used to parse the fields     
518        see everything they used to see, and so    
519        but things still _work_, even if they m    
520        (or no longer relevant) information.       
521                                                   
522        But if something actually breaks, then     
523        reverted. And it gets fixed in the *ker    
524        your user space then". It was a kernel     
525        problem, it needs to be the kernel that    
526        have a "upgrade in place" model. We don    
527        user space".                               
528                                                   
529        And I seriously will refuse to take cod    
530        understand and honor this very simple r    
531                                                   
532        This rule is also not going to change.     
533                                                   
534        And yes, I realize that the kernel is "    
535        proud of it.                               
536                                                   
537        I have seen, and can point to, lots of     
538        break that use case in order to make pr    
539        undocumented behavior, it sucks to be y    
540        do what you want to do, and you have to    
541        way", and I simply don't think that's a    
542        alpha releases that have experimental u    
543        up for. The kernel hasn't been in that     
544        decades.                                   
545                                                   
546        We do API breakage _inside_ the kernel     
547        internal problems by saying "you now ne    
548        about internal kernel API's, and the pe    
549        obviously have to fix up all the in-ker    
550        can say "I now broke the API you used,     
551        up". Whoever broke something gets to fi    
552                                                   
553        And we simply do not break user space.     
554                                                   
555  * From `2020-05-21                               
556    <https://lore.kernel.org/all/CAHk-=wiVi7mSrs    
557                                                   
558        The rules about regressions have never     
559        documented behavior, or where the code     
560                                                   
561        The rules about regressions are always     
562                                                   
563        Users are literally the _only_ thing th    
564                                                   
565        No amount of "you shouldn't have used t    
566        undefined, it's your own fault your app    
567        simply because of a kernel bug" is at a    
568                                                   
569        Now, reality is never entirely black-an    
570        like "serious security issue" etc that     
571        that may break user space. But even the    
572        really have other options that would al    
573                                                   
574        And obviously, if users take years to e    
575        broke, or if we have sane ways to work     
576        doesn't make for too much trouble for u    
577        handful of users, and they can use a ke    
578        around it" kind of things) we've also b    
579                                                   
580        But no, "that was documented to be brok    
581        code was in staging or because the man-    
582        irrelevant. If staging code is so usefu    
583        that means that it's basically regular     
584        "please clean this up".                    
585                                                   
586        The other side of the coin is that peop    
587        stability" are entirely wrong. API's do    
588        any changes to an API you like - as lon    
589                                                   
590        Again, the regression rule is not about    
591        API's, and not about the phase of the m    
592                                                   
593        It's entirely about "we caused problems    
594                                                   
595  * From `2017-11-05                               
596    <https://lore.kernel.org/all/CA+55aFzUvbGjD8    
597                                                   
598        And our regression rule has never been     
599        That would mean that we could never mak    
600                                                   
601        For example, we do things like add new     
602        time, which we then sometimes even add     
603        directory.                                 
604                                                   
605        So clearly behavior changes all the tim    
606        regression per se.                         
607                                                   
608        The rule for a regression for the kerne    
609        workflow breaks. Not some test. Not a "    
610        X, now I can't".                           
611                                                   
612  * From `2018-08-03                               
613    <https://lore.kernel.org/all/CA+55aFwWZX=CXm    
614                                                   
615        YOU ARE MISSING THE #1 KERNEL RULE.        
616                                                   
617        We do not regress, and we do not regres    
618                                                   
619        And the reason you state for your opini    
620        are wrong.                                 
621                                                   
622        Your "good reasons" are pure and utter     
623                                                   
624        The whole point of "we do not regress"     
625        the kernel and never have to worry abou    
626                                                   
627        > Kernel had a bug which has been fixed    
628                                                   
629        That is *ENTIRELY* immaterial.             
630                                                   
631        Guys, whether something was buggy or no    
632                                                   
633        Why?                                       
634                                                   
635        Bugs happen. That's a fact of life. Arg    
636        something because we were fixing a bug"    
637        tens of bugs every single day, thinking    
638        we can break something is simply NOT TR    
639                                                   
640        So bugs simply aren't even relevant to     
641        they get found, they get fixed, and it     
642        break users".                              
643                                                   
644        Because the only thing that matters IS     
645                                                   
646        How hard is that to understand?            
647                                                   
648        Anybody who uses "but it was buggy" as     
649        the point. As far as the USER was conce    
650        worked for him/her.                        
651                                                   
652        Maybe it worked *because* the user had     
653        maybe it worked because the user didn't    
654        matter. It worked for the user.            
655                                                   
656        Breaking a user workflow for a "bug" is    
657        for breakage you can imagine.              
658                                                   
659        It's basically saying "I took something    
660        but now it's better". Do you not see ho    
661        is?                                        
662                                                   
663        And without users, your program is not     
664        piece of code that you might as well th    
665                                                   
666        Seriously. This is *why* the #1 rule fo    
667        don't break users". Because "I fixed a     
668        ARGUMENT if that bug fix broke a user s    
669        MUCH BIGGER bug by "fixing" something t    
670        even care about.                           
671                                                   
672        And dammit, we upgrade the kernel ALL T    
673        other programs at all. It is absolutely    
674        and dependencies are horribly bad.         
675                                                   
676        And it is also required simply because     
677        upgrade random other tools that I don't    
678        the kernel, and I want any of my users     
679        time.                                      
680                                                   
681        So no. Your rule is COMPLETELY wrong. I    
682        without upgrading some other random bin    
683                                                   
684  * From `2021-06-05                               
685    <https://lore.kernel.org/all/CAHk-=wiUVqHN76    
686                                                   
687        THERE ARE NO VALID ARGUMENTS FOR REGRES    
688                                                   
689        Honestly, security people need to under    
690        a success case of security. It's a fail    
691                                                   
692        Yes, "not working" may be secure. But s    
693                                                   
694  * From `2011-05-06 (1/3)                         
695    <https://lore.kernel.org/all/BANLkTim9YvResB    
696                                                   
697        Binary compatibility is more important.    
698                                                   
699        And if binaries don't use the interface    
700        parse it wrongly - see the fairly recen    
701        /proc/self/mountinfo), then it's a regr    
702                                                   
703        And regressions get reverted, unless th    
704        similar that makes us go "Oh Gods, we r    
705                                                   
706        I don't understand why this simple logi    
707        developers to understand. Reality matte    
708        NOT AT ALL.                                
709                                                   
710        If you made an interface that can be us    
711        interface description, then we're stuck    
712        simply doesn't matter.                     
713                                                   
714        You could help fix the tools, and try t    
715        issues that way. There aren't that many    
716                                                   
717    From `2011-05-06 (2/3)                         
718    <https://lore.kernel.org/all/BANLkTi=KVXjKR8    
719                                                   
720        it's clearly NOT an internal tracepoint    
721        used by powertop.                          
722                                                   
723    From `2011-05-06 (3/3)                         
724    <https://lore.kernel.org/all/BANLkTinazaXRdG    
725                                                   
726        We have programs that use that ABI and     
727                                                   
728  * From `2012-07-06 <https://lore.kernel.org/al    
729                                                   
730        > Now this got me wondering if Debian _    
731        > standard distro userspace.               
732                                                   
733        Oh, if the kernel breaks some standard     
734        of people run Debian unstable              
735                                                   
736  * From `2019-09-15                               
737    <https://lore.kernel.org/lkml/CAHk-=wiP4K8DR    
738                                                   
739        One _particularly_ last-minute revert i    
740        the version change itself) done just be    
741        it's very annoying, it's perhaps also i    
742                                                   
743        What's instructive about it is that I r    
744        actually buggy. In fact, it was doing e    
745        and did it very well. In fact it did it    
746        improved IO patterns it caused then end    
747        regression due to a real bug in a compl    
748                                                   
749        The actual details of that regression a    
750        revert out as instructive, though. It's    
751        example of what counts as a regression,    
752        regressions" kernel rule means. The rev    
753        API's, and it didn't introduce any new     
754        another problem, and as such caused a k    
755        user. So it got reverted.                  
756                                                   
757        The point here being that we revert bas    
758        not based on some "it changes the ABI"     
759        The problem was really pre-existing, an    
760        trigger before. The better IO patterns     
761        happened to expose an old bug, and peop    
762        previously benign behavior of that old     
763                                                   
764        And never fear, we'll re-introduce the     
765        patterns once we've decided just how to    
766        bad interaction with an interface that     
767        to rely on incidental behavior for befo    
768        to hash through how to do that (there a    
769        patches by three different developers b    
770        be more coming...). In the meantime, I     
771        the problem to users for this release,     
772        re-introduced (perhaps even backported     
773        consensus about the issue it exposed.      
774                                                   
775        Take-away from the whole thing: it's no    
776        kernel-userspace ABI, or fix a bug, or     
777        "should never have worked in the first     
778        something breaks existing users' workfl    
779                                                   
780        Anyway, that was my little aside on the    
781        it's that "first rule of kernel program    
782        worth just bringing it up every once in    
783                                                   
784 ..                                                
785    end-of-content                                 
786 ..                                                
787    This text is available under GPL-2.0+ or CC    
788    of the file. If you want to distribute this    
789    please use "The Linux kernel developers" fo    
790    this as source:                                
791    https://git.kernel.org/pub/scm/linux/kernel    
792 ..                                                
793    Note: Only the content of this RST file as     
794    is available under CC-BY-4.0, as versions o    
795    (for example by the kernel's build system)     
796    files which use a more restrictive license.    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php