Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 1027 lines 48 kB view raw
1.. SPDX-License-Identifier: (GPL-2.0+ OR CC-BY-4.0) 2.. See the bottom of this file for additional redistribution information. 3 4Handling regressions 5++++++++++++++++++++ 6 7*We don't cause regressions* -- this document describes what this "first rule of 8Linux kernel development" means in practice for developers. It complements 9Documentation/admin-guide/reporting-regressions.rst, which covers the topic from a 10user's point of view; if you never read that text, go and at least skim over it 11before continuing here. 12 13The important bits (aka "The TL;DR") 14==================================== 15 16#. Ensure subscribers of the `regression mailing list <https://lore.kernel.org/regressions/>`_ 17 (regressions@lists.linux.dev) quickly become aware of any new regression 18 report: 19 20 * When receiving a mailed report that did not CC the list, bring it into the 21 loop by immediately sending at least a brief "Reply-all" with the list 22 CCed. 23 24 * Forward or bounce any reports submitted in bug trackers to the list. 25 26#. Make the Linux kernel regression tracking bot "regzbot" track the issue (this 27 is optional, but recommended): 28 29 * For mailed reports, check if the reporter included a line like ``#regzbot 30 introduced: v5.13..v5.14-rc1``. If not, send a reply (with the regressions 31 list in CC) containing a paragraph like the following, which tells regzbot 32 when the issue started to happen:: 33 34 #regzbot ^introduced: 1f2e3d4c5b6a 35 36 * When forwarding reports from a bug tracker to the regressions list (see 37 above), include a paragraph like the following:: 38 39 #regzbot introduced: v5.13..v5.14-rc1 40 #regzbot from: Some N. Ice Human <some.human@example.com> 41 #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 42 43#. When submitting fixes for regressions, add "Closes:" tags to the patch 44 description pointing to all places where the issue was reported, as 45 mandated by Documentation/process/submitting-patches.rst and 46 :ref:`Documentation/process/5.Posting.rst <development_posting>`. If you are 47 only fixing part of the issue that caused the regression, you may use 48 "Link:" tags instead. regzbot currently makes no distinction between the 49 two. 50 51#. Try to fix regressions quickly once the culprit has been identified; fixes 52 for most regressions should be merged within two weeks, but some need to be 53 resolved within two or three days. 54 55 56All the details on Linux kernel regressions relevant for developers 57=================================================================== 58 59 60The important basics in more detail 61----------------------------------- 62 63 64What to do when receiving regression reports 65~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 66 67Ensure the Linux kernel's regression tracker and others subscribers of the 68`regression mailing list <https://lore.kernel.org/regressions/>`_ 69(regressions@lists.linux.dev) become aware of any newly reported regression: 70 71 * When you receive a report by mail that did not CC the list, immediately bring 72 it into the loop by sending at least a brief "Reply-all" with the list CCed; 73 try to ensure it gets CCed again in case you reply to a reply that omitted 74 the list. 75 76 * If a report submitted in a bug tracker hits your Inbox, forward or bounce it 77 to the list. Consider checking the list archives beforehand, if the reporter 78 already forwarded the report as instructed by 79 Documentation/admin-guide/reporting-issues.rst. 80 81When doing either, consider making the Linux kernel regression tracking bot 82"regzbot" immediately start tracking the issue: 83 84 * For mailed reports, check if the reporter included a "regzbot command" like 85 ``#regzbot introduced: 1f2e3d4c5b6a``. If not, send a reply (with the 86 regressions list in CC) with a paragraph like the following::: 87 88 #regzbot ^introduced: v5.13..v5.14-rc1 89 90 This tells regzbot the version range in which the issue started to happen; 91 you can specify a range using commit-ids as well or state a single commit-id 92 in case the reporter bisected the culprit. 93 94 Note the caret (^) before the "introduced": it tells regzbot to treat the 95 parent mail (the one you reply to) as the initial report for the regression 96 you want to see tracked; that's important, as regzbot will later look out 97 for patches with "Closes:" tags pointing to the report in the archives on 98 lore.kernel.org. 99 100 * When forwarding a regression reported to a bug tracker, include a paragraph 101 with these regzbot commands:: 102 103 #regzbot introduced: 1f2e3d4c5b6a 104 #regzbot from: Some N. Ice Human <some.human@example.com> 105 #regzbot monitor: http://some.bugtracker.example.com/ticket?id=123456789 106 107 Regzbot will then automatically associate patches with the report that 108 contain "Closes:" tags pointing to your mail or the mentioned ticket. 109 110What's important when fixing regressions 111~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 113You don't need to do anything special when submitting fixes for regression, just 114remember to do what Documentation/process/submitting-patches.rst, 115:ref:`Documentation/process/5.Posting.rst <development_posting>`, and 116Documentation/process/stable-kernel-rules.rst already explain in more detail: 117 118 * Point to all places where the issue was reported using "Closes:" tags:: 119 120 Closes: https://lore.kernel.org/r/30th.anniversary.repost@klaava.Helsinki.FI/ 121 Closes: https://bugzilla.kernel.org/show_bug.cgi?id=1234567890 122 123 If you are only fixing part of the issue, you may use "Link:" instead as 124 described in the first document mentioned above. regzbot currently treats 125 both of these equivalently and considers the linked reports as resolved. 126 127 * Add a "Fixes:" tag to specify the commit causing the regression. 128 129 * If the culprit was merged in an earlier development cycle, explicitly mark 130 the fix for backporting using the ``Cc: stable@vger.kernel.org`` tag. 131 132All this is expected from you and important when it comes to regression, as 133these tags are of great value for everyone (you included) that might be looking 134into the issue weeks, months, or years later. These tags are also crucial for 135tools and scripts used by other kernel developers or Linux distributions; one of 136these tools is regzbot, which heavily relies on the "Closes:" tags to associate 137reports for regression with changes resolving them. 138 139Expectations and best practices for fixing regressions 140~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 141 142As a Linux kernel developer, you are expected to give your best to prevent 143situations where a regression caused by a recent change of yours leaves users 144only these options: 145 146 * Run a kernel with a regression that impacts usage. 147 148 * Switch to an older or newer kernel series. 149 150 * Continue running an outdated and thus potentially insecure kernel for more 151 than three weeks after the regression's culprit was identified. Ideally it 152 should be less than two. And it ought to be just a few days, if the issue is 153 severe or affects many users -- either in general or in prevalent 154 environments. 155 156How to realize that in practice depends on various factors. Use the following 157rules of thumb as a guide. 158 159In general: 160 161 * Prioritize work on regressions over all other Linux kernel work, unless the 162 latter concerns a severe issue (e.g. acute security vulnerability, data loss, 163 bricked hardware, ...). 164 165 * Expedite fixing mainline regressions that recently made it into a proper 166 mainline, stable, or longterm release (either directly or via backport). 167 168 * Do not consider regressions from the current cycle as something that can wait 169 till the end of the cycle, as the issue might discourage or prevent users and 170 CI systems from testing mainline now or generally. 171 172 * Work with the required care to avoid additional or bigger damage, even if 173 resolving an issue then might take longer than outlined below. 174 175On timing once the culprit of a regression is known: 176 177 * Aim to mainline a fix within two or three days, if the issue is severe or 178 bothering many users -- either in general or in prevalent conditions like a 179 particular hardware environment, distribution, or stable/longterm series. 180 181 * Aim to mainline a fix by Sunday after the next, if the culprit made it 182 into a recent mainline, stable, or longterm release (either directly or via 183 backport); if the culprit became known early during a week and is simple to 184 resolve, try to mainline the fix within the same week. 185 186 * For other regressions, aim to mainline fixes before the hindmost Sunday 187 within the next three weeks. One or two Sundays later are acceptable, if the 188 regression is something people can live with easily for a while -- like a 189 mild performance regression. 190 191 * It's strongly discouraged to delay mainlining regression fixes till the next 192 merge window, except when the fix is extraordinarily risky or when the 193 culprit was mainlined more than a year ago. 194 195On procedure: 196 197 * Always consider reverting the culprit, as it's often the quickest and least 198 dangerous way to fix a regression. Don't worry about mainlining a fixed 199 variant later: that should be straight-forward, as most of the code went 200 through review once already. 201 202 * Try to resolve any regressions introduced in mainline during the past 203 twelve months before the current development cycle ends: Linus wants such 204 regressions to be handled like those from the current cycle, unless fixing 205 bears unusual risks. 206 207 * Consider CCing Linus on discussions or patch review, if a regression seems 208 tangly. Do the same in precarious or urgent cases -- especially if the 209 subsystem maintainer might be unavailable. Also CC the stable team, when you 210 know such a regression made it into a mainline, stable, or longterm release. 211 212 * For urgent regressions, consider asking Linus to pick up the fix straight 213 from the mailing list: he is totally fine with that for uncontroversial 214 fixes. Ideally though such requests should happen in accordance with the 215 subsystem maintainers or come directly from them. 216 217 * In case you are unsure if a fix is worth the risk applying just days before 218 a new mainline release, send Linus a mail with the usual lists and people in 219 CC; in it, summarize the situation while asking him to consider picking up 220 the fix straight from the list. He then himself can make the call and when 221 needed even postpone the release. Such requests again should ideally happen 222 in accordance with the subsystem maintainers or come directly from them. 223 224Regarding stable and longterm kernels: 225 226 * You are free to leave regressions to the stable team, if they at no point in 227 time occurred with mainline or were fixed there already. 228 229 * If a regression made it into a proper mainline release during the past 230 twelve months, ensure to tag the fix with "Cc: stable@vger.kernel.org", as a 231 "Fixes:" tag alone does not guarantee a backport. Please add the same tag, 232 in case you know the culprit was backported to stable or longterm kernels. 233 234 * When receiving reports about regressions in recent stable or longterm kernel 235 series, please evaluate at least briefly if the issue might happen in current 236 mainline as well -- and if that seems likely, take hold of the report. If in 237 doubt, ask the reporter to check mainline. 238 239 * Whenever you want to swiftly resolve a regression that recently also made it 240 into a proper mainline, stable, or longterm release, fix it quickly in 241 mainline; when appropriate thus involve Linus to fast-track the fix (see 242 above). That's because the stable team normally does neither revert nor fix 243 any changes that cause the same problems in mainline. 244 245 * In case of urgent regression fixes you might want to ensure prompt 246 backporting by dropping the stable team a note once the fix was mainlined; 247 this is especially advisable during merge windows and shortly thereafter, as 248 the fix otherwise might land at the end of a huge patch queue. 249 250On patch flow: 251 252 * Developers, when trying to reach the time periods mentioned above, remember 253 to account for the time it takes to get fixes tested, reviewed, and merged by 254 Linus, ideally with them being in linux-next at least briefly. Hence, if a 255 fix is urgent, make it obvious to ensure others handle it appropriately. 256 257 * Reviewers, you are kindly asked to assist developers in reaching the time 258 periods mentioned above by reviewing regression fixes in a timely manner. 259 260 * Subsystem maintainers, you likewise are encouraged to expedite the handling 261 of regression fixes. Thus evaluate if skipping linux-next is an option for 262 the particular fix. Also consider sending git pull requests more often than 263 usual when needed. And try to avoid holding onto regression fixes over 264 weekends -- especially when the fix is marked for backporting. 265 266 267More aspects regarding regressions developers should be aware of 268---------------------------------------------------------------- 269 270 271How to deal with changes where a risk of regression is known 272~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 273 274Evaluate how big the risk of regressions is, for example by performing a code 275search in Linux distributions and Git forges. Also consider asking other 276developers or projects likely to be affected to evaluate or even test the 277proposed change; if problems surface, maybe some solution acceptable for all 278can be found. 279 280If the risk of regressions in the end seems to be relatively small, go ahead 281with the change, but let all involved parties know about the risk. Hence, make 282sure your patch description makes this aspect obvious. Once the change is 283merged, tell the Linux kernel's regression tracker and the regressions mailing 284list about the risk, so everyone has the change on the radar in case reports 285trickle in. Depending on the risk, you also might want to ask the subsystem 286maintainer to mention the issue in his mainline pull request. 287 288What else is there to known about regressions? 289~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 291Check out Documentation/admin-guide/reporting-regressions.rst, it covers a lot 292of other aspects you want might want to be aware of: 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 of a regression 299 300 * how to handle tricky situations, e.g. when a regression is caused by a 301 security fix or when fixing a regression might cause another one 302 303Whom to ask for advice when it comes to regressions 304~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 305 306Send a mail to the regressions mailing list (regressions@lists.linux.dev) while 307CCing the Linux kernel's regression tracker (regressions@leemhuis.info); if the 308issue might better be dealt with in private, feel free to omit the list. 309 310 311More about regression tracking and regzbot 312------------------------------------------ 313 314 315Why the Linux kernel has a regression tracker, and why is regzbot used? 316~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 318Rules like "no regressions" need someone to ensure they are followed, otherwise 319they are broken either accidentally or on purpose. History has shown this to be 320true for the Linux kernel as well. That's why Thorsten Leemhuis volunteered to 321keep an eye on things as the Linux kernel's regression tracker, who's 322occasionally helped by other people. Neither of them are paid to do this, 323that's why regression tracking is done on a best effort basis. 324 325Earlier attempts to manually track regressions have shown it's an exhausting and 326frustrating work, which is why they were abandoned after a while. To prevent 327this from happening again, Thorsten developed regzbot to facilitate the work, 328with the long term goal to automate regression tracking as much as possible for 329everyone involved. 330 331How does regression tracking work with regzbot? 332~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 334The bot watches for replies to reports of tracked regressions. Additionally, 335it's looking out for posted or committed patches referencing such reports 336with "Closes:" tags; replies to such patch postings are tracked as well. 337Combined this data provides good insights into the current state of the fixing 338process. 339 340Regzbot tries to do its job with as little overhead as possible for both 341reporters and developers. In fact, only reporters are burdened with an extra 342duty: they need to tell regzbot about the regression report using the ``#regzbot 343introduced`` command outlined above; if they don't do that, someone else can 344take care of that using ``#regzbot ^introduced``. 345 346For developers there normally is no extra work involved, they just need to make 347sure to do something that was expected long before regzbot came to light: add 348links to the patch description pointing to all reports about the issue fixed. 349 350Do I have to use regzbot? 351~~~~~~~~~~~~~~~~~~~~~~~~~ 352 353It's in the interest of everyone if you do, as kernel maintainers like Linus 354Torvalds partly rely on regzbot's tracking in their work -- for example when 355deciding to release a new version or extend the development phase. For this they 356need to be aware of all unfixed regression; to do that, Linus is known to look 357into the weekly reports sent by regzbot. 358 359Do I have to tell regzbot about every regression I stumble upon? 360~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 362Ideally yes: we are all humans and easily forget problems when something more 363important unexpectedly comes up -- for example a bigger problem in the Linux 364kernel or something in real life that's keeping us away from keyboards for a 365while. Hence, it's best to tell regzbot about every regression, except when you 366immediately write a fix and commit it to a tree regularly merged to the affected 367kernel series. 368 369How to see which regressions regzbot tracks currently? 370~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 371 372Check `regzbot's web-interface <https://linux-regtracking.leemhuis.info/regzbot/>`_ 373for the latest info; alternatively, `search for the latest regression report 374<https://lore.kernel.org/lkml/?q=%22Linux+regressions+report%22+f%3Aregzbot>`_, 375which regzbot normally sends out once a week on Sunday evening (UTC), which is a 376few hours before Linus usually publishes new (pre-)releases. 377 378What places is regzbot monitoring? 379~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 380 381Regzbot is watching the most important Linux mailing lists as well as the git 382repositories of linux-next, mainline, and stable/longterm. 383 384What kind of issues are supposed to be tracked by regzbot? 385~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 387The bot is meant to track regressions, hence please don't involve regzbot for 388regular issues. But it's okay for the Linux kernel's regression tracker if you 389use regzbot to track severe issues, like reports about hangs, corrupted data, 390or internal errors (Panic, Oops, BUG(), warning, ...). 391 392Can I add regressions found by CI systems to regzbot's tracking? 393~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 395Feel free to do so, if the particular regression likely has impact on practical 396use cases and thus might be noticed by users; hence, please don't involve 397regzbot for theoretical regressions unlikely to show themselves in real world 398usage. 399 400How to interact with regzbot? 401~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 403By using a 'regzbot command' in a direct or indirect reply to the mail with the 404regression report. These commands need to be in their own paragraph (IOW: they 405need to be separated from the rest of the mail using blank lines). 406 407One such command is ``#regzbot introduced: <version or commit>``, which makes 408regzbot consider your mail as a regressions report added to the tracking, as 409already described above; ``#regzbot ^introduced: <version or commit>`` is another 410such command, which makes regzbot consider the parent mail as a report for a 411regression which it starts to track. 412 413Once one of those two commands has been utilized, other regzbot commands can be 414used in direct or indirect replies to the report. You can write them below one 415of the `introduced` commands or in replies to the mail that used one of them 416or 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 ticket where additions aspects of 423 the issue or a fix are discussed -- for example the posting of a patch fixing 424 the regression:: 425 426 #regzbot monitor: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ 427 428 Monitoring only works for lore.kernel.org and bugzilla.kernel.org; regzbot 429 will consider all messages in that thread or ticket as related to the fixing 430 process. 431 432 * Point to a place with further details of interest, like a mailing list post 433 or a ticket in a bug tracker that are slightly related, but about a different 434 topic:: 435 436 #regzbot link: https://bugzilla.kernel.org/show_bug.cgi?id=123456789 437 438 * Mark a regression as fixed by a commit that is heading upstream or already 439 landed:: 440 441 #regzbot fix: 1f2e3d4c5d 442 443 * Mark a regression as a duplicate of another one already tracked by regzbot:: 444 445 #regzbot dup-of: https://lore.kernel.org/all/30th.anniversary.repost@klaava.Helsinki.FI/ 446 447 * Mark a regression as invalid:: 448 449 #regzbot invalid: wasn't a regression, problem has always existed 450 451Is there more to tell about regzbot and its commands? 452~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 453 454More detailed and up-to-date information about the Linux 455kernel's regression tracking bot can be found on its 456`project page <https://gitlab.com/knurd42/regzbot>`_, which among others 457contains a `getting started guide <https://gitlab.com/knurd42/regzbot/-/blob/main/docs/getting_started.md>`_ 458and `reference documentation <https://gitlab.com/knurd42/regzbot/-/blob/main/docs/reference.md>`_ 459which both cover more details than the above section. 460 461Quotes from Linus about regression 462---------------------------------- 463 464The following statements from Linus Torvalds provide some insight into Linux 465"no regressions" rule and how he expects regressions to be handled: 466 467On how quickly regressions should be fixed 468~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 470* From `2026-01-22 <https://lore.kernel.org/all/CAHk-=wheQNiW_WtHGO7bKkT7Uib-p+ai2JP9M+z+FYcZ6CAxYA@mail.gmail.com/>`_:: 471 472 But a user complaining should basically result in an immediate fix - 473 possibly a "revert and rethink". 474 475 With a later clarification on `2026-01-28 <https://lore.kernel.org/all/CAHk-%3Dwi86AosXs66-yi54%2BmpQjPu0upxB8ZAfG%2BLsMyJmcuMSA@mail.gmail.com/>`_:: 476 477 It's also worth noting that "immediate" obviously doesn't mean "right 478 this *second* when the problem has been reported". 479 480 But if it's a regression with a known commit that caused it, I think 481 the rule of thumb should generally be "within a week", preferably 482 before the next rc. 483 484* From `2023-04-21 <https://lore.kernel.org/all/CAHk-=wgD98pmSK3ZyHk_d9kZ2bhgN6DuNZMAJaV0WTtbkf=RDw@mail.gmail.com/>`_:: 485 486 Known-broken commits either 487 (a) get a timely fix that doesn't have other questions 488 or 489 (b) get reverted 490 491* From `2021-09-20(2) <https://lore.kernel.org/all/CAHk-=wgOvmtRw1TNbMC1rn5YqyTKyn0hz+sc4k0DGNn++u9aYw@mail.gmail.com/>`_:: 492 493 [...] review shouldn't hold up reported regressions of existing code. That's 494 just basic _testing_ - either the fix should be applied, or - if the fix is 495 too invasive or too ugly - the problematic source of the regression should 496 be reverted. 497 498 Review should be about new code, it shouldn't be holding up "there's a 499 bug report, here's the obvious fix". 500 501* From `2023-05-08 <https://lore.kernel.org/all/CAHk-=wgzU8_dGn0Yg+DyX7ammTkDUCyEJ4C=NvnHRhxKWC7Wpw@mail.gmail.com/>`_:: 502 503 If something doesn't even build, it should damn well be fixed ASAP. 504 505On how fixing regressions with reverts can help prevent maintainer burnout 506~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 508* From `2026-01-28 <https://lore.kernel.org/all/CAHk-%3Dwi86AosXs66-yi54%2BmpQjPu0upxB8ZAfG%2BLsMyJmcuMSA@mail.gmail.com/>`_:: 509 510 > So how can I/we make "immediate fixes" happen more often without 511 > contributing to maintainer burnout? 512 513 [...] the "revert and rethink" model [...] often a good idea in general [...] 514 515 Exactly so that maintainers don't get stressed out over having a pending 516 problem report that people keep pestering them about. 517 518 I think people are sometimes a bit too bought into whatever changes 519 they made, and reverting is seen as "too drastic", but I think it's 520 often the quick and easy solution for when there isn't some obvious 521 response to a regression report. 522 523On mainlining fixes when the last -rc or a new release is close 524~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 525 526* From `2026-02-01 <https://lore.kernel.org/all/CAHk-%3DwhXTw1oPsa%2BTLuY1Rc9D1OAiPVOdR_-R2xG45kwDObKdA@mail.gmail.com/>`_:: 527 528 So I think I'd rather see them hit rc8 (later today) and have a week 529 of testing in my tree and be reverted if they cause problems, than 530 have them go in after rc8 and then cause problems in the 6.19 release 531 instead. 532 533* From `2023-04-20 <https://lore.kernel.org/all/CAHk-=wis_qQy4oDNynNKi5b7Qhosmxtoj1jxo5wmB6SRUwQUBQ@mail.gmail.com/>`_:: 534 535 But something like this, where the regression was in the previous release 536 and it's just a clear fix with no semantic subtlety, I consider to be just a 537 regular regression that should be expedited - partly to make it into stable, 538 and partly to avoid having to put the fix into _another_ stable kernel. 539 540On sending merge requests with just one fix 541~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 543* From `2024-04-24 <https://lore.kernel.org/all/CAHk-=wjy_ph9URuFt-pq+2AJ__p7gFDx=yzVSCsx16xAYvNw9g@mail.gmail.com/>`_:: 544 545 If the issue is just that there's nothing else happening, I think people 546 should just point me to the patch and say "can you apply this single fix?" 547 548* From `2023-04-20 <https://lore.kernel.org/all/CAHk-=wis_qQy4oDNynNKi5b7Qhosmxtoj1jxo5wmB6SRUwQUBQ@mail.gmail.com/>`_:: 549 550 I'm always open to direct fixes when there is no controversy about the fix. 551 No problem. I still happily deal with individual patches. 552 553On the importance of pointing to bug reports using Link:/Closes: tags 554~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 555 556* From `2025-07-29(1) <https://lore.kernel.org/all/CAHk-=wj2kJRPWx8B09AAtzj+_g+T6UBX11TP0ebs1WJdTtv=WQ@mail.gmail.com/>`_:: 557 558 [...] revert like this, it really would be good to link to the problems, so 559 that when people try to re-enable it, they have the history for why it 560 didn't work the first time. 561 562* From `2022-05-08 <https://lore.kernel.org/all/CAHk-=wjMmSZzMJ3Xnskdg4+GGz=5p5p+GSYyFBTh0f-DgvdBWg@mail.gmail.com/>`_:: 563 564 So I have to once more complain [...] 565 566 [...] There's no link to the actual problem the patch fixes. 567 568* From `2022-06-22 <https://lore.kernel.org/all/CAHk-=wjxzafG-=J8oT30s7upn4RhBs6TX-uVFZ5rME+L5_DoJA@mail.gmail.com/>`_:: 569 570 See, *that* link [to the report] would have been useful in the commit. 571 572On why the "no regressions" rule exists 573~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 575* From `2026-01-22 <https://lore.kernel.org/all/CAHk-=wheQNiW_WtHGO7bKkT7Uib-p+ai2JP9M+z+FYcZ6CAxYA@mail.gmail.com/>`_:: 576 577 But the basic rule is: be so good about backwards compatibility that 578 users never have to worry about upgrading. They should absolutely feel 579 confident that any kernel-reported problem will either be solved, or 580 have an easy solution that is appropriate for *them* (ie a 581 non-technical user shouldn't be expected to be able to do a lot). 582 583 Because the last thing we want is people holding back from trying new 584 kernels. 585 586* From `2024-05-28 <https://lore.kernel.org/all/CAHk-=wgtb7y-bEh7tPDvDWru7ZKQ8-KMjZ53Tsk37zsPPdwXbA@mail.gmail.com/>`_:: 587 588 I introduced that "no regressions" rule something like two decades 589 ago, because people need to be able to update their kernel without 590 fear of something they relied on suddenly stopping to work. 591 592* From `2018-08-03 <https://lore.kernel.org/all/CA+55aFwWZX=CXmWDTkDGb36kf12XmTehmQjbiMPCqCRG2hi9kw@mail.gmail.com/>`_:: 593 594 The whole point of "we do not regress" is so that people can upgrade 595 the kernel and never have to worry about it. 596 597 [...] 598 599 Because the only thing that matters IS THE USER. 600 601* From `2017-10-26(1) <https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/>`_:: 602 603 If the kernel used to work for you, the rule is that it continues to work 604 for you. 605 606 [...] 607 608 People should basically always feel like they can update their kernel 609 and simply not have to worry about it. 610 611 I refuse to introduce "you can only update the kernel if you also 612 update that other program" kind of limitations. If the kernel used to 613 work for you, the rule is that it continues to work for you. 614 615On exceptions to the "no regressions" rule 616~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 618* From `2026-01-22 <https://lore.kernel.org/all/CAHk-=wheQNiW_WtHGO7bKkT7Uib-p+ai2JP9M+z+FYcZ6CAxYA@mail.gmail.com/>`_:: 619 620 There are _very_ few exceptions to that rule, the main one being "the 621 problem was a fundamental huge and gaping security issue and we *had* to 622 make that change, and we couldn't even make your limited use-case just 623 continue to work". 624 625 The other exception is "the problem was reported years after it was 626 introduced, and now most people rely on the new behavior". 627 628 [...] 629 630 Now, if it's one or two users and you can just get them to recompile, 631 that's one thing. Niche hardware and odd use-cases can sometimes be 632 solved that way, and regressions can sometimes be fixed by handholding 633 every single reporter if the reporter is willing and able to change 634 his or her workflow. 635 636* From `2023-04-20 <https://lore.kernel.org/all/CAHk-=wis_qQy4oDNynNKi5b7Qhosmxtoj1jxo5wmB6SRUwQUBQ@mail.gmail.com/>`_:: 637 638 And yes, I do consider "regression in an earlier release" to be a 639 regression that needs fixing. 640 641 There's obviously a time limit: if that "regression in an earlier 642 release" was a year or more ago, and just took forever for people to 643 notice, and it had semantic changes that now mean that fixing the 644 regression could cause a _new_ regression, then that can cause me to 645 go "Oh, now the new semantics are what we have to live with". 646 647* From `2017-10-26(2) <https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/>`_:: 648 649 There have been exceptions, but they are few and far between, and they 650 generally have some major and fundamental reasons for having happened, 651 that were basically entirely unavoidable, and people _tried_hard_ to 652 avoid them. Maybe we can't practically support the hardware any more 653 after it is decades old and nobody uses it with modern kernels any 654 more. Maybe there's a serious security issue with how we did things, 655 and people actually depended on that fundamentally broken model. Maybe 656 there was some fundamental other breakage that just _had_ to have a 657 flag day for very core and fundamental reasons. 658 659On situations where updating something in userspace can resolve regressions 660~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 661 662* From `2018-08-03 <https://lore.kernel.org/all/CA+55aFwWZX=CXmWDTkDGb36kf12XmTehmQjbiMPCqCRG2hi9kw@mail.gmail.com/>`_:: 663 664 And dammit, we upgrade the kernel ALL THE TIME without upgrading any 665 other programs at all. It is absolutely required, because flag-days 666 and dependencies are horribly bad. 667 668 And it is also required simply because I as a kernel developer do not 669 upgrade random other tools that I don't even care about as I develop the 670 kernel, and I want any of my users to feel safe doing the same time. 671 672* From `2017-10-26(3) <https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/>`_:: 673 674 But if something actually breaks, then the change must get fixed or 675 reverted. And it gets fixed in the *kernel*. Not by saying "well, fix your 676 user space then". It was a kernel change that exposed the problem, it needs 677 to be the kernel that corrects for it, because we have a "upgrade in place" 678 model. We don't have a "upgrade with new user space". 679 680 And I seriously will refuse to take code from people who do not understand 681 and honor this very simple rule. 682 683 This rule is also not going to change. 684 685 And yes, I realize that the kernel is "special" in this respect. I'm proud 686 of it. 687 688* From `2017-10-26(4) <https://lore.kernel.org/all/CA+55aFwiiQYJ+YoLKCXjN_beDVfu38mg=Ggg5LFOcqHE8Qi7Zw@mail.gmail.com/>`_:: 689 690 If you break existing user space setups THAT IS A REGRESSION. 691 692 It's not ok to say "but we'll fix the user space setup". 693 694 Really. NOT OK. 695 696On what qualifies as userspace interface, ABI, API, documented interfaces, etc. 697~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 699* From `2026-01-20 <https://lore.kernel.org/all/CAHk-=wga8Qu0-OSE9VZbviq9GuqwhPhLUXeAt-S7_9+fMCLkKg@mail.gmail.com/>`_:: 700 701 So I absolutely detest the whole notion of "ABI changes". It's a 702 meaningless concept, and I hate it with a passion, [...] 703 704 The Linux rule for regressions is basically based on the philosophical 705 question of "If a tree falls in the forest, and nobody is around to 706 hear it, does it make a sound?". 707 708 So the only thing that matters is if something breaks user-*conscious* 709 behavior. 710 711 And when that happens, the distinction between "bug fix" and "new 712 feature" and "ABI change" matters not one whit, and the change needs 713 to be done differently. 714 715 [...] 716 717 I just wanted to point out that the argument about whether it's an ABI 718 change or not is irrelevant. If it turns out that some program - not a test 719 script, but something with relevance to conscious user expectations ~ 720 depended on the old broken behavior, then it needs to be done some other 721 way. 722 723* From `2026-02-13 <https://lore.kernel.org/all/CAHk-=whY-N8kjm8kiFUV5Ei-8AuYw--EPGD-AR3Pd+5GTx2sAQ@mail.gmail.com/>`_:: 724 725 > [...] this should not fall under the don't break user space rule [...] 726 727 Note that the rule is about breaking *users*, not breaking user space per 728 se. [...] 729 730 If some user setup breaks, things need fixing. 731 732 [...] but I want to make it very clear that there are no excuses about "user 733 space applications". 734 735* From `2021-09-20(4) <https://lore.kernel.org/all/CAHk-=wi7DB2SJ-wngVvsJ7Ak2cM556Q8437sOXo4EJt2BWPdEg@mail.gmail.com/>`_:: 736 737 [...] a regression is a bit like Schrödinger's cat - if nobody is around 738 to notice it and it doesn't actually affect any real workload, then you 739 can treat the regression as if it doesn't exist. 740 741* From `2020-05-21 <https://lore.kernel.org/all/CAHk-=wiVi7mSrsMP=fLXQrXK_UimybW=ziLOwSzFTtoXUacWVQ@mail.gmail.com/>`_:: 742 743 The rules about regressions have never been about any kind of documented 744 behavior, or where the code lives. 745 746 The rules about regressions are always about "breaks user workflow". 747 748 Users are literally the _only_ thing that matters. 749 750* From `2019-09-15 <https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/>`_:: 751 752 One _particularly_ last-minute revert is the top-most commit (ignoring 753 the version change itself) done just before the release, and while 754 it's very annoying, it's perhaps also instructive. 755 756 What's instructive about it is that I reverted a commit that wasn't 757 actually buggy. In fact, it was doing exactly what it set out to do, 758 and did it very well. In fact it did it _so_ well that the much 759 improved IO patterns it caused then ended up revealing a user-visible 760 regression due to a real bug in a completely unrelated area. 761 762 The actual details of that regression are not the reason I point that 763 revert out as instructive, though. It's more that it's an instructive 764 example of what counts as a regression, and what the whole "no 765 regressions" kernel rule means. 766 767 [...] The reverted commit didn't change any API's, and it didn't introduce 768 any new bugs. But it ended up exposing another problem, and as such caused 769 a kernel upgrade to fail for a user. So it got reverted. 770 771 The point here being that we revert based on user-reported _behavior_, not 772 based on some "it changes the ABI" or "it caused a bug" concept. The problem 773 was really pre-existing, and it just didn't happen to trigger before. [...] 774 775 Take-away from the whole thing: it's not about whether you change the 776 kernel-userspace ABI, or fix a bug, or about whether the old code 777 "should never have worked in the first place". It's about whether 778 something breaks existing users' workflow. 779 780* From `2017-11-05 <https://lore.kernel.org/all/CA+55aFzUvbGjD8nQ-+3oiMBx14c_6zOj2n7KLN3UsJ-qsd4Dcw@mail.gmail.com/>`_:: 781 782 And our regression rule has never been "behavior doesn't change". 783 That would mean that we could never make any changes at all. 784 785* From `2020-05-21 <https://lore.kernel.org/all/CAHk-=wiVi7mSrsMP=fLXQrXK_UimybW=ziLOwSzFTtoXUacWVQ@mail.gmail.com/>`_:: 786 787 No amount of "you shouldn't have used this" or "that behavior was 788 undefined, it's your own fault your app broke" or "that used to work 789 simply because of a kernel bug" is at all relevant. 790 791* From `2021-05-21 <https://lore.kernel.org/all/CAHk-=wiVi7mSrsMP=fLXQrXK_UimybW=ziLOwSzFTtoXUacWVQ@mail.gmail.com/>`_:: 792 793 But no, "that was documented to be broken" (whether it's because the code 794 was in staging or because the man-page said something else) is irrelevant. 795 If staging code is so useful that people end up using it, that means that 796 it's basically regular kernel code with a flag saying "please clean this 797 up". 798 799 [...] 800 801 The other side of the coin is that people who talk about "API stability" are 802 entirely wrong. API's don't matter either. You can make any changes to an 803 API you like - as long as nobody notices. 804 805 Again, the regression rule is not about documentation, not about API's, and 806 not about the phase of the moon. 807 808* From `2012-07-06 <https://lore.kernel.org/all/CA+55aFwnLJ+0sjx92EGREGTWOx84wwKaraSzpTNJwPVV8edw8g@mail.gmail.com/>`_:: 809 810 > Now this got me wondering if Debian _unstable_ actually qualifies as a 811 > standard distro userspace. 812 813 Oh, if the kernel breaks some standard user space, that counts. Tons 814 of people run Debian unstable 815 816* From `2011-05-06 <https://lore.kernel.org/all/BANLkTi=KVXjKR82sqsz4gwjr+E0vtqCmvA@mail.gmail.com/>`_:: 817 818 It's clearly NOT an internal tracepoint. By definition. It's being 819 used by powertop. 820 821On regressions noticed by users or test-suites/CIs 822~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 823 824* From `2026-01-22 <https://lore.kernel.org/all/CAHk-=wheQNiW_WtHGO7bKkT7Uib-p+ai2JP9M+z+FYcZ6CAxYA@mail.gmail.com/>`_:: 825 826 Users complaining is the only real line in the end. 827 828 [...] a test-suite complaining is then often a *very* good indication that 829 maybe users will hit some problem, and test suite issues should be taken 830 very seriously [...] 831 832 But a test-suite error isn't necessarily where you have to draw the 833 line - it's a big red flag [...] 834 835* From `2024-29-01 <https://lore.kernel.org/all/CAHk-=wg8BrZEzjJ5kUyZzHPZmFqH6ooMN1gRBCofxxCfucgjaw@mail.gmail.com/>`_:: 836 837 The "no regressions" rule is not about made-up "if I do this, behavior 838 changes". 839 840 The "no regressions" rule is about *users*. 841 842 If you have an actual user that has been doing insane things, and we 843 change something, and now the insane thing no longer works, at that 844 point it's a regression, and we'll sigh, and go "Users are insane" and 845 have to fix it. 846 847 But if you have some random test that now behaves differently, it's 848 not a regression. It's a *warning* sign, sure: tests are useful. 849 850On accepting when a regression occurred 851~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 852 853* From `2026-01-22 <https://lore.kernel.org/all/CAHk-=wheQNiW_WtHGO7bKkT7Uib-p+ai2JP9M+z+FYcZ6CAxYA@mail.gmail.com/>`_:: 854 855 But starting to argue about users reporting breaking changes is 856 basically the final line for me. I have a couple of people that I have 857 in my spam block-list and refuse to have anything to do with, and they 858 have generally been about exactly that. 859 860 Note how it's not about making mistakes and _causing_ the regression. 861 That's normal. That's development. But then arguing about it is a 862 no-no. 863 864* From `2024-06-23 <https://lore.kernel.org/all/CAHk-=wi_KMO_rJ6OCr8mAWBRg-irziM=T9wxGC+J1VVoQb39gw@mail.gmail.com/>`_:: 865 866 We don't introduce regressions and then blame others. 867 868 There's a very clear rule in kernel development: things that break 869 other things ARE NOT FIXES. 870 871 EVER. 872 873 They get reverted, or the thing they broke gets fixed. 874 875* From `2021-06-05 <https://lore.kernel.org/all/CAHk-=wiUVqHN76YUwhkjZzwTdjMMJf_zN4+u7vEJjmEGh3recw@mail.gmail.com/>`_:: 876 877 THERE ARE NO VALID ARGUMENTS FOR REGRESSIONS. 878 879 Honestly, security people need to understand that "not working" is not 880 a success case of security. It's a failure case. 881 882 Yes, "not working" may be secure. But security in that case is *pointless*. 883 884* From `2017-10-26(5) <https://lore.kernel.org/lkml/CA+55aFwiiQYJ+YoLKCXjN_beDVfu38mg=Ggg5LFOcqHE8Qi7Zw@mail.gmail.com/>`_:: 885 886 [...] when regressions *do* occur, we admit to them and fix them, instead of 887 blaming user space. 888 889 The fact that you have apparently been denying the regression now for 890 three weeks means that I will revert, and I will stop pulling apparmor 891 requests until the people involved understand how kernel development 892 is done. 893 894On back-and-forth 895~~~~~~~~~~~~~~~~~ 896 897* From `2024-05-28 <https://lore.kernel.org/all/CAHk-=wgtb7y-bEh7tPDvDWru7ZKQ8-KMjZ53Tsk37zsPPdwXbA@mail.gmail.com/>`_:: 898 899 The "no regressions" rule is that we do not introduce NEW bugs. 900 901 It *literally* came about because we had an endless dance of "fix two 902 bugs, introduce one new one", and that then resulted in a system that 903 you cannot TRUST. 904 905* From `2021-09-20(1) <https://lore.kernel.org/all/CAHk-=wi7DB2SJ-wngVvsJ7Ak2cM556Q8437sOXo4EJt2BWPdEg@mail.gmail.com/>`_:: 906 907 And the thing that makes regressions special is that back when I 908 wasn't so strict about these things, we'd end up in endless "seesaw 909 situations" where somebody would fix something, it would break 910 something else, then that something else would break, and it would 911 never actually converge on anything reliable at all. 912 913* From `2015-08-13 <https://lore.kernel.org/all/CA+55aFxk8-BsiKwr_S-c+4G6wihKPQVMLE34H9wOZpeua6W9+Q@mail.gmail.com/>`_:: 914 915 The strict policy of no regressions actually originally started mainly wrt 916 suspend/resume issues, where the "fix one machine, break another" kind of 917 back-and-forth caused endless problems, and meant that we didn't actually 918 necessarily make any forward progress, just moving a problem around. 919 920On changes with a risk of causing regressions 921~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 923* From `2023-06-02 <https://lore.kernel.org/all/CAHk-=wgyAGUMHmQM-5Eb556z5xiHZB7cF05qjrtUH4F7P-1rSA@mail.gmail.com/>`_:: 924 925 So what I think you should do is to fix the bug right, with a clean 926 patch, and no crazy hacks. That is something we can then apply and 927 test. All the while knowing full well that "uhhuh, this is a visible 928 change, we may have to revert it". 929 930 If then some *real* load ends up showing a regression, we may just be 931 screwed. Our current behavior may be buggy, but we have the rule that 932 once user space depends on kernel bugs, they become features pretty 933 much by definition, however much we might dislike it. 934 935On in-kernel workarounds to avoid regressions 936~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 938* From `2017-10-26(6) <https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/>`_:: 939 940 Behavioral changes happen, and maybe we don't even support some 941 feature any more. There's a number of fields in /proc/<pid>/stat that 942 are printed out as zeroes, simply because they don't even *exist* in 943 the kernel any more, or because showing them was a mistake (typically 944 an information leak). But the numbers got replaced by zeroes, so that 945 the code that used to parse the fields still works. The user might not 946 see everything they used to see, and so behavior is clearly different, 947 but things still _work_, even if they might no longer show sensitive 948 (or no longer relevant) information. 949 950On regressions caused by bugfixes 951~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 953* From `2018-08-03 <https://lore.kernel.org/all/CA+55aFwWZX=CXmWDTkDGb36kf12XmTehmQjbiMPCqCRG2hi9kw@mail.gmail.com/>`_:: 954 955 > Kernel had a bug which has been fixed 956 957 That is *ENTIRELY* immaterial. 958 959 Guys, whether something was buggy or not DOES NOT MATTER. 960 961 [...] 962 963 It's basically saying "I took something that worked, and I broke it, 964 but now it's better". Do you not see how f*cking insane that statement 965 is? 966 967On internal API changes 968~~~~~~~~~~~~~~~~~~~~~~~ 969 970* From `2017-10-26(7) <https://lore.kernel.org/lkml/CA+55aFxW7NMAMvYhkvz1UPbUTUJewRt6Yb51QAx5RtrWOwjebg@mail.gmail.com/>`_:: 971 972 We do API breakage _inside_ the kernel all the time. We will fix 973 internal problems by saying "you now need to do XYZ", but then it's 974 about internal kernel API's, and the people who do that then also 975 obviously have to fix up all the in-kernel users of that API. Nobody 976 can say "I now broke the API you used, and now _you_ need to fix it 977 up". Whoever broke something gets to fix it too. 978 979On regressions only found after a long time 980~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 981 982* From `2024-03-28 <https://lore.kernel.org/all/CAHk-=wgFuoHpMk_Z_R3qMXVDgq0N1592+bABkyGjwwSL4zBtHA@mail.gmail.com/>`_:: 983 984 I'm definitely not reverting a patch from almost a decade ago as a 985 regression. 986 987 If it took that long to find, it can't be that critical of a regression. 988 989 So yes, let's treat it as a regular bug. 990 991On testing regressions fixes in linux-next 992~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 993 994* On `maintainers summit 2024 <https://lwn.net/Articles/990599/>`_:: 995 996 So running fixes though linux-next is just a waste of time. 997 998On a few other aspects related to regressions 999~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1000 1001* From `2025-07-29(2) <https://lore.kernel.org/all/CAHk-=wjj9DvOZtmTkoLtyfHmy5mNKy6q_96d9=4FUEDXre=cww@mail.gmail.com/>`_ 1002 [which `is not quite a regression, but a huge inconvenience <https://lore.kernel.org/all/CAHk-=wgO0Rx2LcYT4f75Xs46orbJ4JxO2jbAFQnVKDYAjV5HeQ@mail.gmail.com/>`_]:: 1003 1004 I no longer have sound. 1005 1006 I also suspect that it's purely because "make oldconfig" doesn't work, 1007 and probably turned off my old Intel HDA settings. Or something. 1008 1009 Renaming config parameters is *bad*. I've harped on the Kconfig phase 1010 of the kernel build probably being our nastiest point, and a real pain 1011 point to people getting involved with development simply because 1012 building your own kernel can be so daunting with hundreds of fairly 1013 esoteric questions. 1014 1015.. 1016 end-of-content 1017.. 1018 This text is available under GPL-2.0+ or CC-BY-4.0, as stated at the top 1019 of the file. If you want to distribute this text under CC-BY-4.0 only, 1020 please use "The Linux kernel developers" for author attribution and link 1021 this as source: 1022 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/process/handling-regressions.rst 1023.. 1024 Note: Only the content of this RST file as found in the Linux kernel sources 1025 is available under CC-BY-4.0, as versions of this text that were processed 1026 (for example by the kernel's build system) might contain content taken from 1027 files which use a more restrictive license.