sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget0/translations/zh_CN/admin-guide/reporting-issuesmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/zh_TW/admin-guide/reporting-issuesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/it_IT/admin-guide/reporting-issuesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ja_JP/admin-guide/reporting-issuesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ko_KR/admin-guide/reporting-issuesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/sp_SP/admin-guide/reporting-issuesmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h0SPDX-License-Identifier: (GPL-2.0+ OR CC-BY-4.0)h]h0SPDX-License-Identifier: (GPL-2.0+ OR CC-BY-4.0)}(hhhhubah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhJ/var/lib/git/docbuild/linux/Documentation/admin-guide/reporting-issues.rsthKubh)}(hFSee the bottom of this file for additional redistribution information.h]hFSee the bottom of this file for additional redistribution information.}(hhhhubah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsection)}(hhh](htitle)}(hReporting issuesh]hReporting issues}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hThe short guide (aka TL;DR)h]hThe short guide (aka TL;DR)}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh paragraph)}(hXZAre you facing a regression with vanilla kernels from the same stable or longterm series? One still supported? Then search the `LKML `_ and the `Linux stable mailing list `_ archives for matching reports to join. If you don't find any, install `the latest release from that series `_. If it still shows the issue, report it to the stable mailing list (stable@vger.kernel.org) and CC the regressions list (regressions@lists.linux.dev); ideally also CC the maintainer and the mailing list for the subsystem in question.h](hAre you facing a regression with vanilla kernels from the same stable or longterm series? One still supported? Then search the }(hAre you facing a regression with vanilla kernels from the same stable or longterm series? One still supported? Then search the hhhhhNhNubh reference)}(h'`LKML `_h]hLKML}(hLKMLhhhhhNhNubah}(h]h ]h"]h$]h&]namehrefurihttps://lore.kernel.org/lkml/uh1hhhubhtarget)}(h h]h}(h]lkmlah ]h"]lkmlah$]h&]refurijuh1j referencedKhhubh and the }(h and the hhhhhNhNubh)}(h>`Linux stable mailing list `_h]hLinux stable mailing list}(hLinux stable mailing listhjhhhNhNubah}(h]h ]h"]h$]h&]nameLinux stable mailing listjhttps://lore.kernel.org/stable/uh1hhhubj)}(h" h]h}(h]linux-stable-mailing-listah ]h"]linux stable mailing listah$]h&]refurij-uh1jjKhhubhI archives for matching reports to join. If you don’t find any, install }(hG archives for matching reports to join. If you don't find any, install hhhhhNhNubh)}(h<`the latest release from that series `_h]h#the latest release from that series}(h#the latest release from that serieshj@hhhNhNubah}(h]h ]h"]h$]h&]name#the latest release from that seriesjhttps://kernel.org/uh1hhhubj)}(h h]h}(h]#the-latest-release-from-that-seriesah ]h"]#the latest release from that seriesah$]h&]refurijQuh1jjKhhubhE. If it still shows the issue, report it to the stable mailing list (}(hE. If it still shows the issue, report it to the stable mailing list (hhhhhNhNubh)}(hstable@vger.kernel.orgh]hstable@vger.kernel.org}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:stable@vger.kernel.orguh1hhhubh) and CC the regressions list (}(h) and CC the regressions list (hhhhhNhNubh)}(hregressions@lists.linux.devh]hregressions@lists.linux.dev}(hhhjyhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:regressions@lists.linux.devuh1hhhubhU); ideally also CC the maintainer and the mailing list for the subsystem in question.}(hU); ideally also CC the maintainer and the mailing list for the subsystem in question.hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hXIn all other cases try your best guess which kernel part might be causing the issue. Check the :ref:`MAINTAINERS ` file for how its developers expect to be told about problems, which most of the time will be by email with a mailing list in CC. Check the destination's archives for matching reports; search the `LKML `_ and the web, too. If you don't find any to join, install `the latest mainline kernel `_. If the issue is present there, send a report.h](h_In all other cases try your best guess which kernel part might be causing the issue. Check the }(h_In all other cases try your best guess which kernel part might be causing the issue. Check the hjhhhNhNubh)}(h :ref:`MAINTAINERS `h]hinline)}(hjh]h MAINTAINERS}(hhhjhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocadmin-guide/reporting-issues refdomainjreftyperef refexplicitrefwarn reftarget maintainersuh1hhhhKhjubh file for how its developers expect to be told about problems, which most of the time will be by email with a mailing list in CC. Check the destination’s archives for matching reports; search the }(h file for how its developers expect to be told about problems, which most of the time will be by email with a mailing list in CC. Check the destination's archives for matching reports; search the hjhhhNhNubh)}(h'`LKML `_h]hLKML}(hLKMLhjhhhNhNubah}(h]h ]h"]h$]h&]namejjhttps://lore.kernel.org/lkml/uh1hhjubj)}(h h]h}(h]id1ah ]h"]h$]lkmlah&]refurijuh1jjKhjubh< and the web, too. If you don’t find any to join, install }(h: and the web, too. If you don't find any to join, install hjhhhNhNubh)}(h3`the latest mainline kernel `_h]hthe latest mainline kernel}(hthe latest mainline kernelhjhhhNhNubah}(h]h ]h"]h$]h&]namethe latest mainline kerneljhttps://kernel.org/uh1hhjubj)}(h h]h}(h]the-latest-mainline-kernelah ]h"]the latest mainline kernelah$]h&]refurijuh1jjKhjubh/. If the issue is present there, send a report.}(h/. If the issue is present there, send a report.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXWThe issue was fixed there, but you would like to see it resolved in a still supported stable or longterm series as well? Then install its latest release. If it shows the problem, search for the change that fixed it in mainline and check if backporting is in the works or was discarded; if it's neither, ask those who handled the change for it.h]hXYThe issue was fixed there, but you would like to see it resolved in a still supported stable or longterm series as well? Then install its latest release. If it shows the problem, search for the change that fixed it in mainline and check if backporting is in the works or was discarded; if it’s neither, ask those who handled the change for it.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX**General remarks**: When installing and testing a kernel as outlined above, ensure it's vanilla (IOW: not patched and not using add-on modules). Also make sure it's built and running in a healthy environment and not already tainted before the issue occurs.h](hstrong)}(h**General remarks**h]hGeneral remarks}(hhhj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj"ubh: When installing and testing a kernel as outlined above, ensure it’s vanilla (IOW: not patched and not using add-on modules). Also make sure it’s built and running in a healthy environment and not already tainted before the issue occurs.}(h: When installing and testing a kernel as outlined above, ensure it's vanilla (IOW: not patched and not using add-on modules). Also make sure it's built and running in a healthy environment and not already tainted before the issue occurs.hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hhhhubh)}(hXIf you are facing multiple issues with the Linux kernel at once, report each separately. While writing your report, include all information relevant to the issue, like the kernel and the distro used. In case of a regression, CC the regressions mailing list (regressions@lists.linux.dev) to your report. Also try to pin-point the culprit with a bisection; if you succeed, include its commit-id and CC everyone in the sign-off-by chain.h](hXIf you are facing multiple issues with the Linux kernel at once, report each separately. While writing your report, include all information relevant to the issue, like the kernel and the distro used. In case of a regression, CC the regressions mailing list (}(hXIf you are facing multiple issues with the Linux kernel at once, report each separately. While writing your report, include all information relevant to the issue, like the kernel and the distro used. In case of a regression, CC the regressions mailing list (hjAhhhNhNubh)}(hregressions@lists.linux.devh]hregressions@lists.linux.dev}(hhhjJhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:regressions@lists.linux.devuh1hhjAubh) to your report. Also try to pin-point the culprit with a bisection; if you succeed, include its commit-id and CC everyone in the sign-off-by chain.}(h) to your report. Also try to pin-point the culprit with a bisection; if you succeed, include its commit-id and CC everyone in the sign-off-by chain.hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK(hhhhubh)}(hOnce the report is out, answer any questions that come up and help where you can. That includes keeping the ball rolling by occasionally retesting with newer releases and sending a status update afterwards.h]hOnce the report is out, answer any questions that come up and help where you can. That includes keeping the ball rolling by occasionally retesting with newer releases and sending a status update afterwards.}(hjghjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hhhhubeh}(h]the-short-guide-aka-tl-drah ]h"]the short guide (aka tl;dr)ah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hAStep-by-step guide how to report issues to the kernel maintainersh]hAStep-by-step guide how to report issues to the kernel maintainers}(hjhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hhhhhK4ubh)}(hXThe above TL;DR outlines roughly how to report issues to the Linux kernel developers. It might be all that's needed for people already familiar with reporting issues to Free/Libre & Open Source Software (FLOSS) projects. For everyone else there is this section. It is more detailed and uses a step-by-step approach. It still tries to be brief for readability and leaves out a lot of details; those are described below the step-by-step guide in a reference section, which explains each of the steps in more detail.h]hXThe above TL;DR outlines roughly how to report issues to the Linux kernel developers. It might be all that’s needed for people already familiar with reporting issues to Free/Libre & Open Source Software (FLOSS) projects. For everyone else there is this section. It is more detailed and uses a step-by-step approach. It still tries to be brief for readability and leaves out a lot of details; those are described below the step-by-step guide in a reference section, which explains each of the steps in more detail.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj{hhubh)}(hX\Note: this section covers a few more aspects than the TL;DR and does things in a slightly different order. That's in your interest, to make sure you notice early if an issue that looks like a Linux kernel problem is actually caused by something else. These steps thus help to ensure the time you invest in this process won't feel wasted in the end:h]hX`Note: this section covers a few more aspects than the TL;DR and does things in a slightly different order. That’s in your interest, to make sure you notice early if an issue that looks like a Linux kernel problem is actually caused by something else. These steps thus help to ensure the time you invest in this process won’t feel wasted in the end:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hj{hhubh block_quote)}(hhh]h bullet_list)}(hhh](h list_item)}(hX`Are you facing an issue with a Linux kernel a hardware or software vendor provided? Then in almost all cases you are better off to stop reading this document and reporting the issue to your vendor instead, unless you are willing to install the latest Linux version yourself. Be aware the latter will often be needed anyway to hunt down and fix issues. h]h)}(hX_Are you facing an issue with a Linux kernel a hardware or software vendor provided? Then in almost all cases you are better off to stop reading this document and reporting the issue to your vendor instead, unless you are willing to install the latest Linux version yourself. Be aware the latter will often be needed anyway to hunt down and fix issues.h]hX_Are you facing an issue with a Linux kernel a hardware or software vendor provided? Then in almost all cases you are better off to stop reading this document and reporting the issue to your vendor instead, unless you are willing to install the latest Linux version yourself. Be aware the latter will often be needed anyway to hunt down and fix issues.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXPerform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the `Linux Kernel Mailing List (LKML) `_. If you find matching reports, join the discussion instead of sending a new one. h]h)}(hXPerform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the `Linux Kernel Mailing List (LKML) `_. If you find matching reports, join the discussion instead of sending a new one.h](hPerform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the }(hPerform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the hjhhhNhNubh)}(hC`Linux Kernel Mailing List (LKML) `_h]h Linux Kernel Mailing List (LKML)}(h Linux Kernel Mailing List (LKML)hjhhhNhNubah}(h]h ]h"]h$]h&]name Linux Kernel Mailing List (LKML)jhttps://lore.kernel.org/lkml/uh1hhjubj)}(h h]h}(h]linux-kernel-mailing-list-lkmlah ]h"] linux kernel mailing list (lkml)ah$]h&]refurijuh1jjKhjubhQ. If you find matching reports, join the discussion instead of sending a new one.}(hQ. If you find matching reports, join the discussion instead of sending a new one.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hSee if the issue you are dealing with qualifies as regression, security issue, or a really severe problem: those are 'issues of high priority' that need special handling in some steps that are about to follow. h]h)}(hSee if the issue you are dealing with qualifies as regression, security issue, or a really severe problem: those are 'issues of high priority' that need special handling in some steps that are about to follow.h]hSee if the issue you are dealing with qualifies as regression, security issue, or a really severe problem: those are ‘issues of high priority’ that need special handling in some steps that are about to follow.}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hRMake sure it's not the kernel's surroundings that are causing the issue you face. h]h)}(hQMake sure it's not the kernel's surroundings that are causing the issue you face.h]hUMake sure it’s not the kernel’s surroundings that are causing the issue you face.}(hj'hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj!ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hGCreate a fresh backup and put system repair and restore tools at hand. h]h)}(hFCreate a fresh backup and put system repair and restore tools at hand.h]hFCreate a fresh backup and put system repair and restore tools at hand.}(hj?hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhj9ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hEnsure your system does not enhance its kernels by building additional kernel modules on-the-fly, which solutions like DKMS might be doing locally without your knowledge. h]h)}(hEnsure your system does not enhance its kernels by building additional kernel modules on-the-fly, which solutions like DKMS might be doing locally without your knowledge.h]hEnsure your system does not enhance its kernels by building additional kernel modules on-the-fly, which solutions like DKMS might be doing locally without your knowledge.}(hjWhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjQubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hCheck if your kernel was 'tainted' when the issue occurred, as the event that made the kernel set this flag might be causing the issue you face. h]h)}(hCheck if your kernel was 'tainted' when the issue occurred, as the event that made the kernel set this flag might be causing the issue you face.h]hCheck if your kernel was ‘tainted’ when the issue occurred, as the event that made the kernel set this flag might be causing the issue you face.}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjiubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hX?Write down coarsely how to reproduce the issue. If you deal with multiple issues at once, create separate notes for each of them and make sure they work independently on a freshly booted system. That's needed, as each issue needs to get reported to the kernel developers separately, unless they are strongly entangled. h]h)}(hX>Write down coarsely how to reproduce the issue. If you deal with multiple issues at once, create separate notes for each of them and make sure they work independently on a freshly booted system. That's needed, as each issue needs to get reported to the kernel developers separately, unless they are strongly entangled.h]hX@Write down coarsely how to reproduce the issue. If you deal with multiple issues at once, create separate notes for each of them and make sure they work independently on a freshly booted system. That’s needed, as each issue needs to get reported to the kernel developers separately, unless they are strongly entangled.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hIf you are facing a regression within a stable or longterm version line (say something broke when updating from 5.10.4 to 5.10.5), scroll down to 'Dealing with regressions within a stable and longterm kernel line'. h]h)}(hIf you are facing a regression within a stable or longterm version line (say something broke when updating from 5.10.4 to 5.10.5), scroll down to 'Dealing with regressions within a stable and longterm kernel line'.h]hIf you are facing a regression within a stable or longterm version line (say something broke when updating from 5.10.4 to 5.10.5), scroll down to ‘Dealing with regressions within a stable and longterm kernel line’.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXLocate the driver or kernel subsystem that seems to be causing the issue. Find out how and where its developers expect reports. Note: most of the time this won't be bugzilla.kernel.org, as issues typically need to be sent by mail to a maintainer and a public mailing list. h]h)}(hXLocate the driver or kernel subsystem that seems to be causing the issue. Find out how and where its developers expect reports. Note: most of the time this won't be bugzilla.kernel.org, as issues typically need to be sent by mail to a maintainer and a public mailing list.h]hXLocate the driver or kernel subsystem that seems to be causing the issue. Find out how and where its developers expect reports. Note: most of the time this won’t be bugzilla.kernel.org, as issues typically need to be sent by mail to a maintainer and a public mailing list.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hSearch the archives of the bug tracker or mailing list in question thoroughly for reports that might match your issue. If you find anything, join the discussion instead of sending a new report. h]h)}(hSearch the archives of the bug tracker or mailing list in question thoroughly for reports that might match your issue. If you find anything, join the discussion instead of sending a new report.h]hSearch the archives of the bug tracker or mailing list in question thoroughly for reports that might match your issue. If you find anything, join the discussion instead of sending a new report.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKDhjubah}(h]h ]h"]h$]h&]uh1jhj{hhhNhNubh)}(h8After these preparations you'll now enter the main part:h]h:After these preparations you’ll now enter the main part:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhj{hhubj)}(hhh]j)}(hhh](j)}(hX3Unless you are already running the latest 'mainline' Linux kernel, better go and install it for the reporting process. Testing and reporting with the latest 'stable' Linux can be an acceptable alternative in some situations; during the merge window that actually might be even the best approach, but in that development phase it can be an even better idea to suspend your efforts for a few days anyway. Whatever version you choose, ideally use a 'vanilla' build. Ignoring these advices will dramatically increase the risk your report will be rejected or ignored. h]h)}(hX2Unless you are already running the latest 'mainline' Linux kernel, better go and install it for the reporting process. Testing and reporting with the latest 'stable' Linux can be an acceptable alternative in some situations; during the merge window that actually might be even the best approach, but in that development phase it can be an even better idea to suspend your efforts for a few days anyway. Whatever version you choose, ideally use a 'vanilla' build. Ignoring these advices will dramatically increase the risk your report will be rejected or ignored.h]hX>Unless you are already running the latest ‘mainline’ Linux kernel, better go and install it for the reporting process. Testing and reporting with the latest ‘stable’ Linux can be an acceptable alternative in some situations; during the merge window that actually might be even the best approach, but in that development phase it can be an even better idea to suspend your efforts for a few days anyway. Whatever version you choose, ideally use a ‘vanilla’ build. Ignoring these advices will dramatically increase the risk your report will be rejected or ignored.}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hKEnsure the kernel you just installed does not 'taint' itself when running. h]h)}(hJEnsure the kernel you just installed does not 'taint' itself when running.h]hNEnsure the kernel you just installed does not ‘taint’ itself when running.}(hj!hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hReproduce the issue with the kernel you just installed. If it doesn't show up there, scroll down to the instructions for issues only happening with stable and longterm kernels. h]h)}(hReproduce the issue with the kernel you just installed. If it doesn't show up there, scroll down to the instructions for issues only happening with stable and longterm kernels.h]hReproduce the issue with the kernel you just installed. If it doesn’t show up there, scroll down to the instructions for issues only happening with stable and longterm kernels.}(hj9hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXlOptimize your notes: try to find and write the most straightforward way to reproduce your issue. Make sure the end result has all the important details, and at the same time is easy to read and understand for others that hear about it for the first time. And if you learned something in this process, consider searching again for existing reports about the issue. h]h)}(hXkOptimize your notes: try to find and write the most straightforward way to reproduce your issue. Make sure the end result has all the important details, and at the same time is easy to read and understand for others that hear about it for the first time. And if you learned something in this process, consider searching again for existing reports about the issue.h]hXkOptimize your notes: try to find and write the most straightforward way to reproduce your issue. Make sure the end result has all the important details, and at the same time is easy to read and understand for others that hear about it for the first time. And if you learned something in this process, consider searching again for existing reports about the issue.}(hjQhjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjKubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hIf your failure involves a 'panic', 'Oops', 'warning', or 'BUG', consider decoding the kernel log to find the line of code that triggered the error. h]h)}(hIf your failure involves a 'panic', 'Oops', 'warning', or 'BUG', consider decoding the kernel log to find the line of code that triggered the error.h]hIf your failure involves a ‘panic’, ‘Oops’, ‘warning’, or ‘BUG’, consider decoding the kernel log to find the line of code that triggered the error.}(hjihjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjcubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hgIf your problem is a regression, try to narrow down when the issue was introduced as much as possible. h]h)}(hfIf your problem is a regression, try to narrow down when the issue was introduced as much as possible.h]hfIf your problem is a regression, try to narrow down when the issue was introduced as much as possible.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXStart to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel's build configuration (.config) and the output from ``dmesg`` available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from ``lspci``. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you're ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those 'issues of high priority': they need special care which is explained in 'Special handling for high priority issues' below. h]h)}(hXStart to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel's build configuration (.config) and the output from ``dmesg`` available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from ``lspci``. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you're ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those 'issues of high priority': they need special care which is explained in 'Special handling for high priority issues' below.h](hX?Start to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel’s build configuration (.config) and the output from }(hX=Start to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel's build configuration (.config) and the output from hjhhhNhNubhliteral)}(h ``dmesg``h]hdmesg}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from }(h available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from hjhhhNhNubj)}(h ``lspci``h]hlspci}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX%. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you’re ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those ‘issues of high priority’: they need special care which is explained in ‘Special handling for high priority issues’ below.}(hX. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you're ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those 'issues of high priority': they need special care which is explained in 'Special handling for high priority issues' below.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXWait for reactions and keep the thing rolling until you can accept the outcome in one way or the other. Thus react publicly and in a timely manner to any inquiries. Test proposed fixes. Do proactive testing: retest with at least every first release candidate (RC) of a new mainline version and report your results. Send friendly reminders if things stall. And try to help yourself, if you don't get any help or if it's unsatisfying. h]h)}(hXWait for reactions and keep the thing rolling until you can accept the outcome in one way or the other. Thus react publicly and in a timely manner to any inquiries. Test proposed fixes. Do proactive testing: retest with at least every first release candidate (RC) of a new mainline version and report your results. Send friendly reminders if things stall. And try to help yourself, if you don't get any help or if it's unsatisfying.h]hXWait for reactions and keep the thing rolling until you can accept the outcome in one way or the other. Thus react publicly and in a timely manner to any inquiries. Test proposed fixes. Do proactive testing: retest with at least every first release candidate (RC) of a new mainline version and report your results. Send friendly reminders if things stall. And try to help yourself, if you don’t get any help or if it’s unsatisfying.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKthjubah}(h]h ]h"]h$]h&]uh1jhj{hhhNhNubh)}(hhh](h)}(h>Reporting regressions within a stable and longterm kernel lineh]h>Reporting regressions within a stable and longterm kernel line}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThis subsection is for you, if you followed above process and got sent here at the point about regression within a stable or longterm kernel version line. You face one of those if something breaks when updating from 5.10.4 to 5.10.5 (a switch from 5.9.15 to 5.10.5 does not qualify). The developers want to fix such regressions as quickly as possible, hence there is a streamlined process to report them:h]hXThis subsection is for you, if you followed above process and got sent here at the point about regression within a stable or longterm kernel version line. You face one of those if something breaks when updating from 5.10.4 to 5.10.5 (a switch from 5.9.15 to 5.10.5 does not qualify). The developers want to fix such regressions as quickly as possible, hence there is a streamlined process to report them:}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]j)}(hhh](j)}(hCheck if the kernel developers still maintain the Linux kernel version line you care about: go to the `front page of kernel.org `_ and make sure it mentions the latest release of the particular version line without an '[EOL]' tag. h]h)}(hCheck if the kernel developers still maintain the Linux kernel version line you care about: go to the `front page of kernel.org `_ and make sure it mentions the latest release of the particular version line without an '[EOL]' tag.h](hgCheck if the kernel developers still maintain the Linux kernel version line you care about: go to the }(hgCheck if the kernel developers still maintain the Linux kernel version line you care about: go to the hj!hhhNhNubh)}(h1`front page of kernel.org `_h]hfront page of kernel.org}(hfront page of kernel.orghj*hhhNhNubah}(h]h ]h"]h$]h&]namefront page of kernel.orgjhttps://kernel.org/uh1hhj!ubj)}(h h]h}(h]front-page-of-kernel-orgah ]h"]front page of kernel.orgah$]h&]refurij;uh1jjKhj!ubhh and make sure it mentions the latest release of the particular version line without an ‘[EOL]’ tag.}(hd and make sure it mentions the latest release of the particular version line without an '[EOL]' tag.hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hoCheck the archives of the `Linux stable mailing list `_ for existing reports. h]h)}(hnCheck the archives of the `Linux stable mailing list `_ for existing reports.h](hCheck the archives of the }(hCheck the archives of the hj^hhhNhNubh)}(h>`Linux stable mailing list `_h]hLinux stable mailing list}(hLinux stable mailing listhjghhhNhNubah}(h]h ]h"]h$]h&]nameLinux stable mailing listjhttps://lore.kernel.org/stable/uh1hhj^ubj)}(h" h]h}(h]id2ah ]h"]h$]linux stable mailing listah&]refurijxuh1jjKhj^ubh for existing reports.}(h for existing reports.hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjZubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXHInstall the latest release from the particular version line as a vanilla kernel. Ensure this kernel is not tainted and still shows the problem, as the issue might have already been fixed there. If you first noticed the problem with a vendor kernel, check a vanilla build of the last version known to work performs fine as well. h]h)}(hXGInstall the latest release from the particular version line as a vanilla kernel. Ensure this kernel is not tainted and still shows the problem, as the issue might have already been fixed there. If you first noticed the problem with a vendor kernel, check a vanilla build of the last version known to work performs fine as well.h]hXGInstall the latest release from the particular version line as a vanilla kernel. Ensure this kernel is not tainted and still shows the problem, as the issue might have already been fixed there. If you first noticed the problem with a vendor kernel, check a vanilla build of the last version known to work performs fine as well.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXSend a short problem report to the Linux stable mailing list (stable@vger.kernel.org) and CC the Linux regressions mailing list (regressions@lists.linux.dev); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that's working fine. Then wait for further instructions. h]h)}(hXSend a short problem report to the Linux stable mailing list (stable@vger.kernel.org) and CC the Linux regressions mailing list (regressions@lists.linux.dev); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that's working fine. Then wait for further instructions.h](h>Send a short problem report to the Linux stable mailing list (}(h>Send a short problem report to the Linux stable mailing list (hjhhhNhNubh)}(hstable@vger.kernel.orgh]hstable@vger.kernel.org}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:stable@vger.kernel.orguh1hhjubh-) and CC the Linux regressions mailing list (}(h-) and CC the Linux regressions mailing list (hjhhhNhNubh)}(hregressions@lists.linux.devh]hregressions@lists.linux.dev}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:regressions@lists.linux.devuh1hhjubhX#); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that’s working fine. Then wait for further instructions.}(hX!); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that's working fine. Then wait for further instructions.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hHThe reference section below explains each of these steps in more detail.h]hHThe reference section below explains each of these steps in more detail.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]>reporting-regressions-within-a-stable-and-longterm-kernel-lineah ]h"]>reporting regressions within a stable and longterm kernel lineah$]h&]uh1hhj{hhhhhKubh)}(hhh](h)}(h=Reporting issues only occurring in older kernel version linesh]h=Reporting issues only occurring in older kernel version lines}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hX4This subsection is for you, if you tried the latest mainline kernel as outlined above, but failed to reproduce your issue there; at the same time you want to see the issue fixed in a still supported stable or longterm series or vendor kernels regularly rebased on those. If that the case, follow these steps:h]hX4This subsection is for you, if you tried the latest mainline kernel as outlined above, but failed to reproduce your issue there; at the same time you want to see the issue fixed in a still supported stable or longterm series or vendor kernels regularly rebased on those. If that the case, follow these steps:}(hj'hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]j)}(hhh](j)}(hPrepare yourself for the possibility that going through the next few steps might not get the issue solved in older releases: the fix might be too big or risky to get backported there. h]h)}(hPrepare yourself for the possibility that going through the next few steps might not get the issue solved in older releases: the fix might be too big or risky to get backported there.h]hPrepare yourself for the possibility that going through the next few steps might not get the issue solved in older releases: the fix might be too big or risky to get backported there.}(hj?hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(hxPerform the first three steps in the section "Dealing with regressions within a stable and longterm kernel line" above. h]h)}(hwPerform the first three steps in the section "Dealing with regressions within a stable and longterm kernel line" above.h]h{Perform the first three steps in the section “Dealing with regressions within a stable and longterm kernel line” above.}(hjWhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjQubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(hXSearch the Linux kernel version control system for the change that fixed the issue in mainline, as its commit message might tell you if the fix is scheduled for backporting already. If you don't find anything that way, search the appropriate mailing lists for posts that discuss such an issue or peer-review possible fixes; then check the discussions if the fix was deemed unsuitable for backporting. If backporting was not considered at all, join the newest discussion, asking if it's in the cards. h]h)}(hXSearch the Linux kernel version control system for the change that fixed the issue in mainline, as its commit message might tell you if the fix is scheduled for backporting already. If you don't find anything that way, search the appropriate mailing lists for posts that discuss such an issue or peer-review possible fixes; then check the discussions if the fix was deemed unsuitable for backporting. If backporting was not considered at all, join the newest discussion, asking if it's in the cards.h]hXSearch the Linux kernel version control system for the change that fixed the issue in mainline, as its commit message might tell you if the fix is scheduled for backporting already. If you don’t find anything that way, search the appropriate mailing lists for posts that discuss such an issue or peer-review possible fixes; then check the discussions if the fix was deemed unsuitable for backporting. If backporting was not considered at all, join the newest discussion, asking if it’s in the cards.}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1jhj6ubj)}(hOne of the former steps should lead to a solution. If that doesn't work out, ask the maintainers for the subsystem that seems to be causing the issue for advice; CC the mailing list for the particular subsystem as well as the stable mailing list. h]h)}(hOne of the former steps should lead to a solution. If that doesn't work out, ask the maintainers for the subsystem that seems to be causing the issue for advice; CC the mailing list for the particular subsystem as well as the stable mailing list.h]hOne of the former steps should lead to a solution. If that doesn’t work out, ask the maintainers for the subsystem that seems to be causing the issue for advice; CC the mailing list for the particular subsystem as well as the stable mailing list.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhj3ubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hHThe reference section below explains each of these steps in more detail.h]hHThe reference section below explains each of these steps in more detail.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]=reporting-issues-only-occurring-in-older-kernel-version-linesah ]h"]=reporting issues only occurring in older kernel version linesah$]h&]uh1hhj{hhhhhKubeh}(h]Astep-by-step-guide-how-to-report-issues-to-the-kernel-maintainersah ]h"]Astep-by-step guide how to report issues to the kernel maintainersah$]h&]uh1hhhhhhhhK4ubh)}(hhh](h)}(h=Reference section: Reporting issues to the kernel maintainersh]h=Reference section: Reporting issues to the kernel maintainers}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXThe detailed guides above outline all the major steps in brief fashion, which should be enough for most people. But sometimes there are situations where even experienced users might wonder how to actually do one of those steps. That's what this section is for, as it will provide a lot more details on each of the above steps. Consider this as reference documentation: it's possible to read it from top to bottom. But it's mainly meant to skim over and a place to look up details how to actually perform those steps.h]hX The detailed guides above outline all the major steps in brief fashion, which should be enough for most people. But sometimes there are situations where even experienced users might wonder how to actually do one of those steps. That’s what this section is for, as it will provide a lot more details on each of the above steps. Consider this as reference documentation: it’s possible to read it from top to bottom. But it’s mainly meant to skim over and a place to look up details how to actually perform those steps.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h>A few words of general advice before digging into the details:h]h>A few words of general advice before digging into the details:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]j)}(hhh](j)}(hXTThe Linux kernel developers are well aware this process is complicated and demands more than other FLOSS projects. We'd love to make it simpler. But that would require work in various places as well as some infrastructure, which would need constant maintenance; nobody has stepped up to do that work, so that's just how things are for now. h]h)}(hXSThe Linux kernel developers are well aware this process is complicated and demands more than other FLOSS projects. We'd love to make it simpler. But that would require work in various places as well as some infrastructure, which would need constant maintenance; nobody has stepped up to do that work, so that's just how things are for now.h]hXWThe Linux kernel developers are well aware this process is complicated and demands more than other FLOSS projects. We’d love to make it simpler. But that would require work in various places as well as some infrastructure, which would need constant maintenance; nobody has stepped up to do that work, so that’s just how things are for now.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXA warranty or support contract with some vendor doesn't entitle you to request fixes from developers in the upstream Linux kernel community: such contracts are completely outside the scope of the Linux kernel, its development community, and this document. That's why you can't demand anything such a contract guarantees in this context, not even if the developer handling the issue works for the vendor in question. If you want to claim your rights, use the vendor's support channel instead. When doing so, you might want to mention you'd like to see the issue fixed in the upstream Linux kernel; motivate them by saying it's the only way to ensure the fix in the end will get incorporated in all Linux distributions. h]h)}(hXA warranty or support contract with some vendor doesn't entitle you to request fixes from developers in the upstream Linux kernel community: such contracts are completely outside the scope of the Linux kernel, its development community, and this document. That's why you can't demand anything such a contract guarantees in this context, not even if the developer handling the issue works for the vendor in question. If you want to claim your rights, use the vendor's support channel instead. When doing so, you might want to mention you'd like to see the issue fixed in the upstream Linux kernel; motivate them by saying it's the only way to ensure the fix in the end will get incorporated in all Linux distributions.h]hXA warranty or support contract with some vendor doesn’t entitle you to request fixes from developers in the upstream Linux kernel community: such contracts are completely outside the scope of the Linux kernel, its development community, and this document. That’s why you can’t demand anything such a contract guarantees in this context, not even if the developer handling the issue works for the vendor in question. If you want to claim your rights, use the vendor’s support channel instead. When doing so, you might want to mention you’d like to see the issue fixed in the upstream Linux kernel; motivate them by saying it’s the only way to ensure the fix in the end will get incorporated in all Linux distributions.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXUIf you never reported an issue to a FLOSS project before you should consider reading `How to Report Bugs Effectively `_, `How To Ask Questions The Smart Way `_, and `How to ask good questions `_. h]h)}(hXTIf you never reported an issue to a FLOSS project before you should consider reading `How to Report Bugs Effectively `_, `How To Ask Questions The Smart Way `_, and `How to ask good questions `_.h](hUIf you never reported an issue to a FLOSS project before you should consider reading }(hUIf you never reported an issue to a FLOSS project before you should consider reading hj*hhhNhNubh)}(hZ`How to Report Bugs Effectively `_h]hHow to Report Bugs Effectively}(hHow to Report Bugs Effectivelyhj3hhhNhNubah}(h]h ]h"]h$]h&]nameHow to Report Bugs Effectivelyj6https://www.chiark.greenend.org.uk/~sgtatham/bugs.htmluh1hhj*ubj)}(h9 h]h}(h]how-to-report-bugs-effectivelyah ]h"]how to report bugs effectivelyah$]h&]refurijDuh1jjKhj*ubh, }(h, hj*hhhNhNubh)}(hY`How To Ask Questions The Smart Way `_h]h"How To Ask Questions The Smart Way}(h"How To Ask Questions The Smart WayhjWhhhNhNubah}(h]h ]h"]h$]h&]name"How To Ask Questions The Smart Wayj1http://www.catb.org/esr/faqs/smart-questions.htmluh1hhj*ubj)}(h4 h]h}(h]"how-to-ask-questions-the-smart-wayah ]h"]"how to ask questions the smart wayah$]h&]refurijhuh1jjKhj*ubh, and }(h, and hj*hhhNhNubh)}(hC`How to ask good questions `_h]hHow to ask good questions}(hHow to ask good questionshj{hhhNhNubah}(h]h ]h"]h$]h&]nameHow to ask good questionsj$https://jvns.ca/blog/good-questions/uh1hhj*ubj)}(h' h]h}(h]how-to-ask-good-questionsah ]h"]how to ask good questionsah$]h&]refurijuh1jjKhj*ubh.}(h.hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hpWith that off the table, find below the details on how to properly report issues to the Linux kernel developers.h]hpWith that off the table, find below the details on how to properly report issues to the Linux kernel developers.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hhh](h)}(h0Make sure you're using the upstream Linux kernelh]h2Make sure you’re using the upstream Linux kernel}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hXa*Are you facing an issue with a Linux kernel a hardware or software vendor provided? Then in almost all cases you are better off to stop reading this document and reporting the issue to your vendor instead, unless you are willing to install the latest Linux version yourself. Be aware the latter will often be needed anyway to hunt down and fix issues.*h]hemphasis)}(hjh]hX_Are you facing an issue with a Linux kernel a hardware or software vendor provided? Then in almost all cases you are better off to stop reading this document and reporting the issue to your vendor instead, unless you are willing to install the latest Linux version yourself. Be aware the latter will often be needed anyway to hunt down and fix issues.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXLike most programmers, Linux kernel developers don't like to spend time dealing with reports for issues that don't even happen with their current code. It's just a waste everybody's time, especially yours. Unfortunately such situations easily happen when it comes to the kernel and often leads to frustration on both sides. That's because almost all Linux-based kernels pre-installed on devices (Computers, Laptops, Smartphones, Routers, …) and most shipped by Linux distributors are quite distant from the official Linux kernel as distributed by kernel.org: these kernels from these vendors are often ancient from the point of Linux development or heavily modified, often both.h]hXLike most programmers, Linux kernel developers don’t like to spend time dealing with reports for issues that don’t even happen with their current code. It’s just a waste everybody’s time, especially yours. Unfortunately such situations easily happen when it comes to the kernel and often leads to frustration on both sides. That’s because almost all Linux-based kernels pre-installed on devices (Computers, Laptops, Smartphones, Routers, …) and most shipped by Linux distributors are quite distant from the official Linux kernel as distributed by kernel.org: these kernels from these vendors are often ancient from the point of Linux development or heavily modified, often both.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXMost of these vendor kernels are quite unsuitable for reporting issues to the Linux kernel developers: an issue you face with one of them might have been fixed by the Linux kernel developers months or years ago already; additionally, the modifications and enhancements by the vendor might be causing the issue you face, even if they look small or totally unrelated. That's why you should report issues with these kernels to the vendor. Its developers should look into the report and, in case it turns out to be an upstream issue, fix it directly upstream or forward the report there. In practice that often does not work out or might not what you want. You thus might want to consider circumventing the vendor by installing the very latest Linux kernel core yourself. If that's an option for you move ahead in this process, as a later step in this guide will explain how to do that once it rules out other potential causes for your issue.h]hXMost of these vendor kernels are quite unsuitable for reporting issues to the Linux kernel developers: an issue you face with one of them might have been fixed by the Linux kernel developers months or years ago already; additionally, the modifications and enhancements by the vendor might be causing the issue you face, even if they look small or totally unrelated. That’s why you should report issues with these kernels to the vendor. Its developers should look into the report and, in case it turns out to be an upstream issue, fix it directly upstream or forward the report there. In practice that often does not work out or might not what you want. You thus might want to consider circumventing the vendor by installing the very latest Linux kernel core yourself. If that’s an option for you move ahead in this process, as a later step in this guide will explain how to do that once it rules out other potential causes for your issue.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM&hjhhubh)}(hXNote, the previous paragraph is starting with the word 'most', as sometimes developers in fact are willing to handle reports about issues occurring with vendor kernels. If they do in the end highly depends on the developers and the issue in question. Your chances are quite good if the distributor applied only small modifications to a kernel based on a recent Linux version; that for example often holds true for the mainline kernels shipped by Debian GNU/Linux Sid or Fedora Rawhide. Some developers will also accept reports about issues with kernels from distributions shipping the latest stable kernel, as long as its only slightly modified; that for example is often the case for Arch Linux, regular Fedora releases, and openSUSE Tumbleweed. But keep in mind, you better want to use a mainline Linux and avoid using a stable kernel for this process, as outlined in the section 'Install a fresh kernel for testing' in more detail.h]hXNote, the previous paragraph is starting with the word ‘most’, as sometimes developers in fact are willing to handle reports about issues occurring with vendor kernels. If they do in the end highly depends on the developers and the issue in question. Your chances are quite good if the distributor applied only small modifications to a kernel based on a recent Linux version; that for example often holds true for the mainline kernels shipped by Debian GNU/Linux Sid or Fedora Rawhide. Some developers will also accept reports about issues with kernels from distributions shipping the latest stable kernel, as long as its only slightly modified; that for example is often the case for Arch Linux, regular Fedora releases, and openSUSE Tumbleweed. But keep in mind, you better want to use a mainline Linux and avoid using a stable kernel for this process, as outlined in the section ‘Install a fresh kernel for testing’ in more detail.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hjhhubh)}(hXuObviously you are free to ignore all this advice and report problems with an old or heavily modified vendor kernel to the upstream Linux developers. But note, those often get rejected or ignored, so consider yourself warned. But it's still better than not reporting the issue at all: sometimes such reports directly or indirectly will help to get the issue fixed over time.h]hXwObviously you are free to ignore all this advice and report problems with an old or heavily modified vendor kernel to the upstream Linux developers. But note, those often get rejected or ignored, so consider yourself warned. But it’s still better than not reporting the issue at all: sometimes such reports directly or indirectly will help to get the issue fixed over time.}(hj$hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMAhjhhubeh}(h]0make-sure-you-re-using-the-upstream-linux-kernelah ]h"]0make sure you're using the upstream linux kernelah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h&Search for existing reports, first runh]h&Search for existing reports, first run}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hhhhhMIubj)}(hhh]h)}(h*Perform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the Linux Kernel Mailing List (LKML). If you find matching reports, join the discussion instead of sending a new one.*h]j)}(hjNh]hPerform a rough search for existing reports with your favorite internet search engine; additionally, check the archives of the Linux Kernel Mailing List (LKML). If you find matching reports, join the discussion instead of sending a new one.}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hhhhMKhjIubah}(h]h ]h"]h$]h&]uh1jhj8hhhhhNubh)}(hXReporting an issue that someone else already brought forward is often a waste of time for everyone involved, especially you as the reporter. So it's in your own interest to thoroughly check if somebody reported the issue already. At this step of the process it's okay to just perform a rough search: a later step will tell you to perform a more detailed search once you know where your issue needs to be reported to. Nevertheless, do not hurry with this step of the reporting process, it can save you time and trouble.h]hX Reporting an issue that someone else already brought forward is often a waste of time for everyone involved, especially you as the reporter. So it’s in your own interest to thoroughly check if somebody reported the issue already. At this step of the process it’s okay to just perform a rough search: a later step will tell you to perform a more detailed search once you know where your issue needs to be reported to. Nevertheless, do not hurry with this step of the reporting process, it can save you time and trouble.}(hjkhjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhj8hhubh)}(hSimply search the internet with your favorite search engine first. Afterwards, search the `Linux Kernel Mailing List (LKML) archives `_.h](hZSimply search the internet with your favorite search engine first. Afterwards, search the }(hZSimply search the internet with your favorite search engine first. Afterwards, search the hjwhhhNhNubh)}(hL`Linux Kernel Mailing List (LKML) archives `_h]h)Linux Kernel Mailing List (LKML) archives}(h)Linux Kernel Mailing List (LKML) archiveshjhhhNhNubah}(h]h ]h"]h$]h&]name)Linux Kernel Mailing List (LKML) archivesjhttps://lore.kernel.org/lkml/uh1hhjwubj)}(h h]h}(h]'linux-kernel-mailing-list-lkml-archivesah ]h"])linux kernel mailing list (lkml) archivesah$]h&]refurijuh1jjKhjwubh.}(hjhjwhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMXhj8hhubh)}(hXMIf you get flooded with results consider telling your search engine to limit search timeframe to the past month or year. And wherever you search, make sure to use good search terms; vary them a few times, too. While doing so try to look at the issue from the perspective of someone else: that will help you to come up with other words to use as search terms. Also make sure not to use too many search terms at once. Remember to search with and without information like the name of the kernel driver or the name of the affected hardware component. But its exact brand name (say 'ASUS Red Devil Radeon RX 5700 XT Gaming OC') often is not much helpful, as it is too specific. Instead try search terms like the model line (Radeon 5700 or Radeon 5000) and the code name of the main chip ('Navi' or 'Navi10') with and without its manufacturer ('AMD').h]hX]If you get flooded with results consider telling your search engine to limit search timeframe to the past month or year. And wherever you search, make sure to use good search terms; vary them a few times, too. While doing so try to look at the issue from the perspective of someone else: that will help you to come up with other words to use as search terms. Also make sure not to use too many search terms at once. Remember to search with and without information like the name of the kernel driver or the name of the affected hardware component. But its exact brand name (say ‘ASUS Red Devil Radeon RX 5700 XT Gaming OC’) often is not much helpful, as it is too specific. Instead try search terms like the model line (Radeon 5700 or Radeon 5000) and the code name of the main chip (‘Navi’ or ‘Navi10’) with and without its manufacturer (‘AMD’).}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hj8hhubh)}(hXIn case you find an existing report about your issue, join the discussion, as you might be able to provide valuable additional information. That can be important even when a fix is prepared or in its final stages already, as developers might look for people that can provide additional information or test a proposed fix. Jump to the section 'Duties after the report went out' for details on how to get properly involved.h]hXIn case you find an existing report about your issue, join the discussion, as you might be able to provide valuable additional information. That can be important even when a fix is prepared or in its final stages already, as developers might look for people that can provide additional information or test a proposed fix. Jump to the section ‘Duties after the report went out’ for details on how to get properly involved.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhj8hhubh)}(hX/Note, searching `bugzilla.kernel.org `_ might also be a good idea, as that might provide valuable insights or turn up matching reports. If you find the latter, just keep in mind: most subsystems expect reports in different places, as described below in the section "Check where you need to report your issue". The developers that should take care of the issue thus might not even be aware of the bugzilla ticket. Hence, check the ticket if the issue already got reported as outlined in this document and if not consider doing so.h](hNote, searching }(hNote, searching hjhhhNhNubh)}(h5`bugzilla.kernel.org `_h]hbugzilla.kernel.org}(hbugzilla.kernel.orghjhhhNhNubah}(h]h ]h"]h$]h&]namejjhttps://bugzilla.kernel.org/uh1hhjubj)}(h h]h}(h]bugzilla-kernel-orgah ]h"]bugzilla.kernel.orgah$]h&]refurijuh1jjKhjubhX might also be a good idea, as that might provide valuable insights or turn up matching reports. If you find the latter, just keep in mind: most subsystems expect reports in different places, as described below in the section “Check where you need to report your issue”. The developers that should take care of the issue thus might not even be aware of the bugzilla ticket. Hence, check the ticket if the issue already got reported as outlined in this document and if not consider doing so.}(hX might also be a good idea, as that might provide valuable insights or turn up matching reports. If you find the latter, just keep in mind: most subsystems expect reports in different places, as described below in the section "Check where you need to report your issue". The developers that should take care of the issue thus might not even be aware of the bugzilla ticket. Hence, check the ticket if the issue already got reported as outlined in this document and if not consider doing so.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMohj8hhubeh}(h]%search-for-existing-reports-first-runah ]h"]&search for existing reports, first runah$]h&]uh1hhjhhhhhMIubh)}(hhh](h)}(hIssue of high priority?h]hIssue of high priority?}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMzubj)}(hhh]h)}(h*See if the issue you are dealing with qualifies as regression, security issue, or a really severe problem: those are 'issues of high priority' that need special handling in some steps that are about to follow.*h]j)}(hj h]hSee if the issue you are dealing with qualifies as regression, security issue, or a really severe problem: those are ‘issues of high priority’ that need special handling in some steps that are about to follow.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhM|hj ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hX*Linus Torvalds and the leading Linux kernel developers want to see some issues fixed as soon as possible, hence there are 'issues of high priority' that get handled slightly differently in the reporting process. Three type of cases qualify: regressions, security issues, and really severe problems.h]hX.Linus Torvalds and the leading Linux kernel developers want to see some issues fixed as soon as possible, hence there are ‘issues of high priority’ that get handled slightly differently in the reporting process. Three type of cases qualify: regressions, security issues, and really severe problems.}(hj2 hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXYou deal with a regression if some application or practical use case running fine with one Linux kernel works worse or not at all with a newer version compiled using a similar configuration. The document Documentation/admin-guide/reporting-regressions.rst explains this in more detail. It also provides a good deal of other information about regressions you might want to be aware of; it for example explains how to add your issue to the list of tracked regressions, to ensure it won't fall through the cracks.h]hXYou deal with a regression if some application or practical use case running fine with one Linux kernel works worse or not at all with a newer version compiled using a similar configuration. The document Documentation/admin-guide/reporting-regressions.rst explains this in more detail. It also provides a good deal of other information about regressions you might want to be aware of; it for example explains how to add your issue to the list of tracked regressions, to ensure it won’t fall through the cracks.}(hj@ hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hWhat qualifies as security issue is left to your judgment. Consider reading Documentation/process/security-bugs.rst before proceeding, as it provides additional details how to best handle security issues.h]hWhat qualifies as security issue is left to your judgment. Consider reading Documentation/process/security-bugs.rst before proceeding, as it provides additional details how to best handle security issues.}(hjN hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXAn issue is a 'really severe problem' when something totally unacceptably bad happens. That's for example the case when a Linux kernel corrupts the data it's handling or damages hardware it's running on. You're also dealing with a severe issue when the kernel suddenly stops working with an error message ('kernel panic') or without any farewell note at all. Note: do not confuse a 'panic' (a fatal error where the kernel stop itself) with a 'Oops' (a recoverable error), as the kernel remains running after the latter.h]hXAn issue is a ‘really severe problem’ when something totally unacceptably bad happens. That’s for example the case when a Linux kernel corrupts the data it’s handling or damages hardware it’s running on. You’re also dealing with a severe issue when the kernel suddenly stops working with an error message (‘kernel panic’) or without any farewell note at all. Note: do not confuse a ‘panic’ (a fatal error where the kernel stop itself) with a ‘Oops’ (a recoverable error), as the kernel remains running after the latter.}(hj\ hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]issue-of-high-priorityah ]h"]issue of high priority?ah$]h&]uh1hhjhhhhhMzubh)}(hhh](h)}(hEnsure a healthy environmenth]hEnsure a healthy environment}(hju hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp hhhhhMubj)}(hhh]h)}(hS*Make sure it's not the kernel's surroundings that are causing the issue you face.*h]j)}(hj h]hUMake sure it’s not the kernel’s surroundings that are causing the issue you face.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjp hhhhhNubh)}(hProblems that look a lot like a kernel issue are sometimes caused by build or runtime environment. It's hard to rule out that problem completely, but you should minimize it:h]hProblems that look a lot like a kernel issue are sometimes caused by build or runtime environment. It’s hard to rule out that problem completely, but you should minimize it:}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjp hhubj)}(hhh]j)}(hhh](j)}(hUse proven tools when building your kernel, as bugs in the compiler or the binutils can cause the resulting kernel to misbehave. h]h)}(hUse proven tools when building your kernel, as bugs in the compiler or the binutils can cause the resulting kernel to misbehave.h]hUse proven tools when building your kernel, as bugs in the compiler or the binutils can cause the resulting kernel to misbehave.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hEnsure your computer components run within their design specifications; that's especially important for the main processor, the main memory, and the motherboard. Therefore, stop undervolting or overclocking when facing a potential kernel issue. h]h)}(hEnsure your computer components run within their design specifications; that's especially important for the main processor, the main memory, and the motherboard. Therefore, stop undervolting or overclocking when facing a potential kernel issue.h]hEnsure your computer components run within their design specifications; that’s especially important for the main processor, the main memory, and the motherboard. Therefore, stop undervolting or overclocking when facing a potential kernel issue.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hTry to make sure it's not faulty hardware that is causing your issue. Bad main memory for example can result in a multitude of issues that will manifest itself in problems looking like kernel issues. h]h)}(hTry to make sure it's not faulty hardware that is causing your issue. Bad main memory for example can result in a multitude of issues that will manifest itself in problems looking like kernel issues.h]hTry to make sure it’s not faulty hardware that is causing your issue. Bad main memory for example can result in a multitude of issues that will manifest itself in problems looking like kernel issues.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hIf you're dealing with a filesystem issue, you might want to check the file system in question with ``fsck``, as it might be damaged in a way that leads to unexpected kernel behavior. h]h)}(hIf you're dealing with a filesystem issue, you might want to check the file system in question with ``fsck``, as it might be damaged in a way that leads to unexpected kernel behavior.h](hfIf you’re dealing with a filesystem issue, you might want to check the file system in question with }(hdIf you're dealing with a filesystem issue, you might want to check the file system in question with hj hhhNhNubj)}(h``fsck``h]hfsck}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhK, as it might be damaged in a way that leads to unexpected kernel behavior.}(hK, as it might be damaged in a way that leads to unexpected kernel behavior.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hXWhen dealing with a regression, make sure it's not something else that changed in parallel to updating the kernel. The problem for example might be caused by other software that was updated at the same time. It can also happen that a hardware component coincidentally just broke when you rebooted into a new kernel for the first time. Updating the systems BIOS or changing something in the BIOS Setup can also lead to problems that on look a lot like a kernel regression. h]h)}(hXWhen dealing with a regression, make sure it's not something else that changed in parallel to updating the kernel. The problem for example might be caused by other software that was updated at the same time. It can also happen that a hardware component coincidentally just broke when you rebooted into a new kernel for the first time. Updating the systems BIOS or changing something in the BIOS Setup can also lead to problems that on look a lot like a kernel regression.h]hXWhen dealing with a regression, make sure it’s not something else that changed in parallel to updating the kernel. The problem for example might be caused by other software that was updated at the same time. It can also happen that a hardware component coincidentally just broke when you rebooted into a new kernel for the first time. Updating the systems BIOS or changing something in the BIOS Setup can also lead to problems that on look a lot like a kernel regression.}(hj/ hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj) ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjp hhhNhNubeh}(h]ensure-a-healthy-environmentah ]h"]ensure a healthy environmentah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hPrepare for emergenciesh]hPrepare for emergencies}(hjZ hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU hhhhhMubj)}(hhh]h)}(hH*Create a fresh backup and put system repair and restore tools at hand.*h]j)}(hjk h]hFCreate a fresh backup and put system repair and restore tools at hand.}(hhhjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji ubah}(h]h ]h"]h$]h&]uh1hhhhMhjf ubah}(h]h ]h"]h$]h&]uh1jhjU hhhhhNubh)}(hXReminder, you are dealing with computers, which sometimes do unexpected things, especially if you fiddle with crucial parts like the kernel of its operating system. That's what you are about to do in this process. Thus, make sure to create a fresh backup; also ensure you have all tools at hand to repair or reinstall the operating system as well as everything you need to restore the backup.h]hXReminder, you are dealing with computers, which sometimes do unexpected things, especially if you fiddle with crucial parts like the kernel of its operating system. That’s what you are about to do in this process. Thus, make sure to create a fresh backup; also ensure you have all tools at hand to repair or reinstall the operating system as well as everything you need to restore the backup.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjU hhubeh}(h]prepare-for-emergenciesah ]h"]prepare for emergenciesah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h*Make sure your kernel doesn't get enhancedh]h,Make sure your kernel doesn’t get enhanced}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj)}(hhh]h)}(h*Ensure your system does not enhance its kernels by building additional kernel modules on-the-fly, which solutions like DKMS might be doing locally without your knowledge.*h]j)}(hj h]hEnsure your system does not enhance its kernels by building additional kernel modules on-the-fly, which solutions like DKMS might be doing locally without your knowledge.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hXThe risk your issue report gets ignored or rejected dramatically increases if your kernel gets enhanced in any way. That's why you should remove or disable mechanisms like akmods and DKMS: those build add-on kernel modules automatically, for example when you install a new Linux kernel or boot it for the first time. Also remove any modules they might have installed. Then reboot before proceeding.h]hXThe risk your issue report gets ignored or rejected dramatically increases if your kernel gets enhanced in any way. That’s why you should remove or disable mechanisms like akmods and DKMS: those build add-on kernel modules automatically, for example when you install a new Linux kernel or boot it for the first time. Also remove any modules they might have installed. Then reboot before proceeding.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hX|Note, you might not be aware that your system is using one of these solutions: they often get set up silently when you install Nvidia's proprietary graphics driver, VirtualBox, or other software that requires a some support from a module not part of the Linux kernel. That why your might need to uninstall the packages with such software to get rid of any 3rd party kernel module.h]hX~Note, you might not be aware that your system is using one of these solutions: they often get set up silently when you install Nvidia’s proprietary graphics driver, VirtualBox, or other software that requires a some support from a module not part of the Linux kernel. That why your might need to uninstall the packages with such software to get rid of any 3rd party kernel module.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]*make-sure-your-kernel-doesn-t-get-enhancedah ]h"]*make sure your kernel doesn't get enhancedah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hCheck 'taint' flagh]hCheck ‘taint’ flag}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj)}(hhh]h)}(h*Check if your kernel was 'tainted' when the issue occurred, as the event that made the kernel set this flag might be causing the issue you face.*h]j)}(hj h]hCheck if your kernel was ‘tainted’ when the issue occurred, as the event that made the kernel set this flag might be causing the issue you face.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hX&The kernel marks itself with a 'taint' flag when something happens that might lead to follow-up errors that look totally unrelated. The issue you face might be such an error if your kernel is tainted. That's why it's in your interest to rule this out early before investing more time into this process. This is the only reason why this step is here, as this process later will tell you to install the latest mainline kernel; you will need to check the taint flag again then, as that's when it matters because it's the kernel the report will focus on.h]hX2The kernel marks itself with a ‘taint’ flag when something happens that might lead to follow-up errors that look totally unrelated. The issue you face might be such an error if your kernel is tainted. That’s why it’s in your interest to rule this out early before investing more time into this process. This is the only reason why this step is here, as this process later will tell you to install the latest mainline kernel; you will need to check the taint flag again then, as that’s when it matters because it’s the kernel the report will focus on.}(hj$ hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hXOn a running system is easy to check if the kernel tainted itself: if ``cat /proc/sys/kernel/tainted`` returns '0' then the kernel is not tainted and everything is fine. Checking that file is impossible in some situations; that's why the kernel also mentions the taint status when it reports an internal problem (a 'kernel bug'), a recoverable error (a 'kernel Oops') or a non-recoverable error before halting operation (a 'kernel panic'). Look near the top of the error messages printed when one of these occurs and search for a line starting with 'CPU:'. It should end with 'Not tainted' if the kernel was not tainted when it noticed the problem; it was tainted if you see 'Tainted:' followed by a few spaces and some letters.h](hFOn a running system is easy to check if the kernel tainted itself: if }(hFOn a running system is easy to check if the kernel tainted itself: if hj0 hhhNhNubj)}(h ``cat /proc/sys/kernel/tainted``h]hcat /proc/sys/kernel/tainted}(hhhj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0 ubhX returns ‘0’ then the kernel is not tainted and everything is fine. Checking that file is impossible in some situations; that’s why the kernel also mentions the taint status when it reports an internal problem (a ‘kernel bug’), a recoverable error (a ‘kernel Oops’) or a non-recoverable error before halting operation (a ‘kernel panic’). Look near the top of the error messages printed when one of these occurs and search for a line starting with ‘CPU:’. It should end with ‘Not tainted’ if the kernel was not tainted when it noticed the problem; it was tainted if you see ‘Tainted:’ followed by a few spaces and some letters.}(hXr returns '0' then the kernel is not tainted and everything is fine. Checking that file is impossible in some situations; that's why the kernel also mentions the taint status when it reports an internal problem (a 'kernel bug'), a recoverable error (a 'kernel Oops') or a non-recoverable error before halting operation (a 'kernel panic'). Look near the top of the error messages printed when one of these occurs and search for a line starting with 'CPU:'. It should end with 'Not tainted' if the kernel was not tainted when it noticed the problem; it was tainted if you see 'Tainted:' followed by a few spaces and some letters.hj0 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hIf your kernel is tainted, study Documentation/admin-guide/tainted-kernels.rst to find out why. Try to eliminate the reason. Often it's caused by one these three things:h]hIf your kernel is tainted, study Documentation/admin-guide/tainted-kernels.rst to find out why. Try to eliminate the reason. Often it’s caused by one these three things:}(hjT hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj)}(hhh]henumerated_list)}(hhh](j)}(hXA recoverable error (a 'kernel Oops') occurred and the kernel tainted itself, as the kernel knows it might misbehave in strange ways after that point. In that case check your kernel or system log and look for a section that starts with this:: Oops: 0000 [#1] SMP That's the first Oops since boot-up, as the '#1' between the brackets shows. Every Oops and any other problem that happens after that point might be a follow-up problem to that first Oops, even if both look totally unrelated. Rule this out by getting rid of the cause for the first Oops and reproducing the issue afterwards. Sometimes simply restarting will be enough, sometimes a change to the configuration followed by a reboot can eliminate the Oops. But don't invest too much time into this at this point of the process, as the cause for the Oops might already be fixed in the newer Linux kernel version you are going to install later in this process. h](h)}(hA recoverable error (a 'kernel Oops') occurred and the kernel tainted itself, as the kernel knows it might misbehave in strange ways after that point. In that case check your kernel or system log and look for a section that starts with this::h]hA recoverable error (a ‘kernel Oops’) occurred and the kernel tainted itself, as the kernel knows it might misbehave in strange ways after that point. In that case check your kernel or system log and look for a section that starts with this:}(hA recoverable error (a 'kernel Oops') occurred and the kernel tainted itself, as the kernel knows it might misbehave in strange ways after that point. In that case check your kernel or system log and look for a section that starts with this:hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjh ubh literal_block)}(hOops: 0000 [#1] SMPh]hOops: 0000 [#1] SMP}(hhhj} ubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhjh ubh)}(hXThat's the first Oops since boot-up, as the '#1' between the brackets shows. Every Oops and any other problem that happens after that point might be a follow-up problem to that first Oops, even if both look totally unrelated. Rule this out by getting rid of the cause for the first Oops and reproducing the issue afterwards. Sometimes simply restarting will be enough, sometimes a change to the configuration followed by a reboot can eliminate the Oops. But don't invest too much time into this at this point of the process, as the cause for the Oops might already be fixed in the newer Linux kernel version you are going to install later in this process.h]hXThat’s the first Oops since boot-up, as the ‘#1’ between the brackets shows. Every Oops and any other problem that happens after that point might be a follow-up problem to that first Oops, even if both look totally unrelated. Rule this out by getting rid of the cause for the first Oops and reproducing the issue afterwards. Sometimes simply restarting will be enough, sometimes a change to the configuration followed by a reboot can eliminate the Oops. But don’t invest too much time into this at this point of the process, as the cause for the Oops might already be fixed in the newer Linux kernel version you are going to install later in this process.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjh ubeh}(h]h ]h"]h$]h&]uh1jhje ubj)}(hXaYour system uses a software that installs its own kernel modules, for example Nvidia's proprietary graphics driver or VirtualBox. The kernel taints itself when it loads such module from external sources (even if they are Open Source): they sometimes cause errors in unrelated kernel areas and thus might be causing the issue you face. You therefore have to prevent those modules from loading when you want to report an issue to the Linux kernel developers. Most of the time the easiest way to do that is: temporarily uninstall such software including any modules they might have installed. Afterwards reboot. h]h)}(hX`Your system uses a software that installs its own kernel modules, for example Nvidia's proprietary graphics driver or VirtualBox. The kernel taints itself when it loads such module from external sources (even if they are Open Source): they sometimes cause errors in unrelated kernel areas and thus might be causing the issue you face. You therefore have to prevent those modules from loading when you want to report an issue to the Linux kernel developers. Most of the time the easiest way to do that is: temporarily uninstall such software including any modules they might have installed. Afterwards reboot.h]hXbYour system uses a software that installs its own kernel modules, for example Nvidia’s proprietary graphics driver or VirtualBox. The kernel taints itself when it loads such module from external sources (even if they are Open Source): they sometimes cause errors in unrelated kernel areas and thus might be causing the issue you face. You therefore have to prevent those modules from loading when you want to report an issue to the Linux kernel developers. Most of the time the easiest way to do that is: temporarily uninstall such software including any modules they might have installed. Afterwards reboot.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhje ubj)}(hXaThe kernel also taints itself when it's loading a module that resides in the staging tree of the Linux kernel source. That's a special area for code (mostly drivers) that does not yet fulfill the normal Linux kernel quality standards. When you report an issue with such a module it's obviously okay if the kernel is tainted; just make sure the module in question is the only reason for the taint. If the issue happens in an unrelated area reboot and temporarily block the module from being loaded by specifying ``foo.blacklist=1`` as kernel parameter (replace 'foo' with the name of the module in question). h]h)}(hX_The kernel also taints itself when it's loading a module that resides in the staging tree of the Linux kernel source. That's a special area for code (mostly drivers) that does not yet fulfill the normal Linux kernel quality standards. When you report an issue with such a module it's obviously okay if the kernel is tainted; just make sure the module in question is the only reason for the taint. If the issue happens in an unrelated area reboot and temporarily block the module from being loaded by specifying ``foo.blacklist=1`` as kernel parameter (replace 'foo' with the name of the module in question).h](hXThe kernel also taints itself when it’s loading a module that resides in the staging tree of the Linux kernel source. That’s a special area for code (mostly drivers) that does not yet fulfill the normal Linux kernel quality standards. When you report an issue with such a module it’s obviously okay if the kernel is tainted; just make sure the module in question is the only reason for the taint. If the issue happens in an unrelated area reboot and temporarily block the module from being loaded by specifying }(hXThe kernel also taints itself when it's loading a module that resides in the staging tree of the Linux kernel source. That's a special area for code (mostly drivers) that does not yet fulfill the normal Linux kernel quality standards. When you report an issue with such a module it's obviously okay if the kernel is tainted; just make sure the module in question is the only reason for the taint. If the issue happens in an unrelated area reboot and temporarily block the module from being loaded by specifying hj hhhNhNubj)}(h``foo.blacklist=1``h]hfoo.blacklist=1}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhQ as kernel parameter (replace ‘foo’ with the name of the module in question).}(hM as kernel parameter (replace 'foo' with the name of the module in question).hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhje ubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffixjuh1jc hj` ubah}(h]h ]h"]h$]h&]uh1jhj hhhNhNubeh}(h]check-taint-flagah ]h"]h$]check 'taint' flagah&]uh1hhjhhhhhMjKubh)}(hhh](h)}(hDocument how to reproduce issueh]hDocument how to reproduce issue}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM$ubj)}(hhh]h)}(hX@*Write down coarsely how to reproduce the issue. If you deal with multiple issues at once, create separate notes for each of them and make sure they work independently on a freshly booted system. That's needed, as each issue needs to get reported to the kernel developers separately, unless they are strongly entangled.*h]j)}(hj h]hX@Write down coarsely how to reproduce the issue. If you deal with multiple issues at once, create separate notes for each of them and make sure they work independently on a freshly booted system. That’s needed, as each issue needs to get reported to the kernel developers separately, unless they are strongly entangled.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhM&hj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hX;If you deal with multiple issues at once, you'll have to report each of them separately, as they might be handled by different developers. Describing various issues in one report also makes it quite difficult for others to tear it apart. Hence, only combine issues in one report if they are very strongly entangled.h]hX=If you deal with multiple issues at once, you’ll have to report each of them separately, as they might be handled by different developers. Describing various issues in one report also makes it quite difficult for others to tear it apart. Hence, only combine issues in one report if they are very strongly entangled.}(hj. hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj hhubh)}(hAdditionally, during the reporting process you will have to test if the issue happens with other kernel versions. Therefore, it will make your work easier if you know exactly how to reproduce an issue quickly on a freshly booted system.h]hAdditionally, during the reporting process you will have to test if the issue happens with other kernel versions. Therefore, it will make your work easier if you know exactly how to reproduce an issue quickly on a freshly booted system.}(hj< hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hj hhubh)}(hXNote: it's often fruitless to report issues that only happened once, as they might be caused by a bit flip due to cosmic radiation. That's why you should try to rule that out by reproducing the issue before going further. Feel free to ignore this advice if you are experienced enough to tell a one-time error due to faulty hardware apart from a kernel issue that rarely happens and thus is hard to reproduce.h]hXNote: it’s often fruitless to report issues that only happened once, as they might be caused by a bit flip due to cosmic radiation. That’s why you should try to rule that out by reproducing the issue before going further. Feel free to ignore this advice if you are experienced enough to tell a one-time error due to faulty hardware apart from a kernel issue that rarely happens and thus is hard to reproduce.}(hjJ hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hj hhubeh}(h]document-how-to-reproduce-issueah ]h"]document how to reproduce issueah$]h&]uh1hhjhhhhhM$ubh)}(hhh](h)}(h(Regression in stable or longterm kernel?h]h(Regression in stable or longterm kernel?}(hjc hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ hhhhhM?ubj)}(hhh]h)}(h*If you are facing a regression within a stable or longterm version line (say something broke when updating from 5.10.4 to 5.10.5), scroll down to 'Dealing with regressions within a stable and longterm kernel line'.*h]j)}(hjt h]hIf you are facing a regression within a stable or longterm version line (say something broke when updating from 5.10.4 to 5.10.5), scroll down to ‘Dealing with regressions within a stable and longterm kernel line’.}(hhhjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr ubah}(h]h ]h"]h$]h&]uh1hhhhMAhjo ubah}(h]h ]h"]h$]h&]uh1jhj^ hhhhhNubh)}(hXRegression within a stable and longterm kernel version line are something the Linux developers want to fix badly, as such issues are even more unwanted than regression in the main development branch, as they can quickly affect a lot of people. The developers thus want to learn about such issues as quickly as possible, hence there is a streamlined process to report them. Note, regressions with newer kernel version line (say something broke when switching from 5.9.15 to 5.10.5) do not qualify.h]hXRegression within a stable and longterm kernel version line are something the Linux developers want to fix badly, as such issues are even more unwanted than regression in the main development branch, as they can quickly affect a lot of people. The developers thus want to learn about such issues as quickly as possible, hence there is a streamlined process to report them. Note, regressions with newer kernel version line (say something broke when switching from 5.9.15 to 5.10.5) do not qualify.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhj^ hhubeh}(h]'regression-in-stable-or-longterm-kernelah ]h"](regression in stable or longterm kernel?ah$]h&]uh1hhjhhhhhM?ubh)}(hhh](h)}(h)Check where you need to report your issueh]h)Check where you need to report your issue}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMOubj)}(hhh]h)}(hX*Locate the driver or kernel subsystem that seems to be causing the issue. Find out how and where its developers expect reports. Note: most of the time this won't be bugzilla.kernel.org, as issues typically need to be sent by mail to a maintainer and a public mailing list.*h]j)}(hj h]hXLocate the driver or kernel subsystem that seems to be causing the issue. Find out how and where its developers expect reports. Note: most of the time this won’t be bugzilla.kernel.org, as issues typically need to be sent by mail to a maintainer and a public mailing list.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMQhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hXIt's crucial to send your report to the right people, as the Linux kernel is a big project and most of its developers are only familiar with a small subset of it. Quite a few programmers for example only care for just one driver, for example one for a WiFi chip; its developer likely will only have small or no knowledge about the internals of remote or unrelated "subsystems", like the TCP stack, the PCIe/PCI subsystem, memory management or file systems.h]hXIt’s crucial to send your report to the right people, as the Linux kernel is a big project and most of its developers are only familiar with a small subset of it. Quite a few programmers for example only care for just one driver, for example one for a WiFi chip; its developer likely will only have small or no knowledge about the internals of remote or unrelated “subsystems”, like the TCP stack, the PCIe/PCI subsystem, memory management or file systems.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhj hhubh)}(hXProblem is: the Linux kernel lacks a central bug tracker where you can simply file your issue and make it reach the developers that need to know about it. That's why you have to find the right place and way to report issues yourself. You can do that with the help of a script (see below), but it mainly targets kernel developers and experts. For everybody else the MAINTAINERS file is the better place.h]hXProblem is: the Linux kernel lacks a central bug tracker where you can simply file your issue and make it reach the developers that need to know about it. That’s why you have to find the right place and way to report issues yourself. You can do that with the help of a script (see below), but it mainly targets kernel developers and experts. For everybody else the MAINTAINERS file is the better place.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM]hj hhubh)}(hhh](h)}(h How to read the MAINTAINERS fileh]h How to read the MAINTAINERS file}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMeubh)}(hXTo illustrate how to use the :ref:`MAINTAINERS ` file, lets assume the WiFi in your Laptop suddenly misbehaves after updating the kernel. In that case it's likely an issue in the WiFi driver. Obviously it could also be some code it builds upon, but unless you suspect something like that stick to the driver. If it's really something else, the driver's developers will get the right people involved.h](hTo illustrate how to use the }(hTo illustrate how to use the hj hhhNhNubh)}(h :ref:`MAINTAINERS `h]j)}(hj h]h MAINTAINERS}(hhhj hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainj reftyperef refexplicitrefwarnj maintainersuh1hhhhMfhj ubhXe file, lets assume the WiFi in your Laptop suddenly misbehaves after updating the kernel. In that case it’s likely an issue in the WiFi driver. Obviously it could also be some code it builds upon, but unless you suspect something like that stick to the driver. If it’s really something else, the driver’s developers will get the right people involved.}(hX_ file, lets assume the WiFi in your Laptop suddenly misbehaves after updating the kernel. In that case it's likely an issue in the WiFi driver. Obviously it could also be some code it builds upon, but unless you suspect something like that stick to the driver. If it's really something else, the driver's developers will get the right people involved.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMfhj hhubh)}(hvSadly, there is no way to check which code is driving a particular hardware component that is both universal and easy.h]hvSadly, there is no way to check which code is driving a particular hardware component that is both universal and easy.}(hj9 hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMmhj hhubh)}(hIn case of a problem with the WiFi driver you for example might want to look at the output of ``lspci -k``, as it lists devices on the PCI/PCIe bus and the kernel module driving it::h](h^In case of a problem with the WiFi driver you for example might want to look at the output of }(h^In case of a problem with the WiFi driver you for example might want to look at the output of hjE hhhNhNubj)}(h ``lspci -k``h]hlspci -k}(hhhjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE ubhK, as it lists devices on the PCI/PCIe bus and the kernel module driving it:}(hK, as it lists devices on the PCI/PCIe bus and the kernel module driving it:hjE hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMphj hhubj| )}(h[user@something ~]$ lspci -k [...] 3a:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) Subsystem: Bigfoot Networks, Inc. Device 1535 Kernel driver in use: ath10k_pci Kernel modules: ath10k_pci [...]h]h[user@something ~]$ lspci -k [...] 3a:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32) Subsystem: Bigfoot Networks, Inc. Device 1535 Kernel driver in use: ath10k_pci Kernel modules: ath10k_pci [...]}(hhhjg ubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMthj hhubh)}(hXXBut this approach won't work if your WiFi chip is connected over USB or some other internal bus. In those cases you might want to check your WiFi manager or the output of ``ip link``. Look for the name of the problematic network interface, which might be something like 'wlp58s0'. This name can be used like this to find the module driving it::h](hBut this approach won’t work if your WiFi chip is connected over USB or some other internal bus. In those cases you might want to check your WiFi manager or the output of }(hBut this approach won't work if your WiFi chip is connected over USB or some other internal bus. In those cases you might want to check your WiFi manager or the output of hju hhhNhNubj)}(h ``ip link``h]hip link}(hhhj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubh. Look for the name of the problematic network interface, which might be something like ‘wlp58s0’. This name can be used like this to find the module driving it:}(h. Look for the name of the problematic network interface, which might be something like 'wlp58s0'. This name can be used like this to find the module driving it:hju hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM|hj hhubj| )}(hn[user@something ~]$ realpath --relative-to=/sys/module/ /sys/class/net/wlp58s0/device/driver/module ath10k_pcih]hn[user@something ~]$ realpath --relative-to=/sys/module/ /sys/class/net/wlp58s0/device/driver/module ath10k_pci}(hhhj ubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj hhubh)}(hIn case tricks like these don't bring you any further, try to search the internet on how to narrow down the driver or subsystem in question. And if you are unsure which it is: just try your best guess, somebody will help you if you guessed poorly.h]hIn case tricks like these don’t bring you any further, try to search the internet on how to narrow down the driver or subsystem in question. And if you are unsure which it is: just try your best guess, somebody will help you if you guessed poorly.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hXqOnce you know the driver or subsystem, you want to search for it in the MAINTAINERS file. In the case of 'ath10k_pci' you won't find anything, as the name is too specific. Sometimes you will need to search on the net for help; but before doing so, try a somewhat shorted or modified name when searching the MAINTAINERS file, as then you might find something like this::h]hXvOnce you know the driver or subsystem, you want to search for it in the MAINTAINERS file. In the case of ‘ath10k_pci’ you won’t find anything, as the name is too specific. Sometimes you will need to search on the net for help; but before doing so, try a somewhat shorted or modified name when searching the MAINTAINERS file, as then you might find something like this:}(hXpOnce you know the driver or subsystem, you want to search for it in the MAINTAINERS file. In the case of 'ath10k_pci' you won't find anything, as the name is too specific. Sometimes you will need to search on the net for help; but before doing so, try a somewhat shorted or modified name when searching the MAINTAINERS file, as then you might find something like this:hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj| )}(hXcQUALCOMM ATHEROS ATH10K WIRELESS DRIVER Mail: A. Some Human Mailing list: ath10k@lists.infradead.org Status: Supported Web-page: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k SCM: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git Files: drivers/net/wireless/ath/ath10k/h]hXcQUALCOMM ATHEROS ATH10K WIRELESS DRIVER Mail: A. Some Human Mailing list: ath10k@lists.infradead.org Status: Supported Web-page: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k SCM: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git Files: drivers/net/wireless/ath/ath10k/}(hhhj ubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj hhubh)}(hX*Note: the line description will be abbreviations, if you read the plain MAINTAINERS file found in the root of the Linux source tree. 'Mail:' for example will be 'M:', 'Mailing list:' will be 'L', and 'Status:' will be 'S:'. A section near the top of the file explains these and other abbreviations.h]hXBNote: the line description will be abbreviations, if you read the plain MAINTAINERS file found in the root of the Linux source tree. ‘Mail:’ for example will be ‘M:’, ‘Mailing list:’ will be ‘L’, and ‘Status:’ will be ‘S:’. A section near the top of the file explains these and other abbreviations.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hX First look at the line 'Status'. Ideally it should be 'Supported' or 'Maintained'. If it states 'Obsolete' then you are using some outdated approach that was replaced by a newer solution you need to switch to. Sometimes the code only has someone who provides 'Odd Fixes' when feeling motivated. And with 'Orphan' you are totally out of luck, as nobody takes care of the code anymore. That only leaves these options: arrange yourself to live with the issue, fix it yourself, or find a programmer somewhere willing to fix it.h]hX#First look at the line ‘Status’. Ideally it should be ‘Supported’ or ‘Maintained’. If it states ‘Obsolete’ then you are using some outdated approach that was replaced by a newer solution you need to switch to. Sometimes the code only has someone who provides ‘Odd Fixes’ when feeling motivated. And with ‘Orphan’ you are totally out of luck, as nobody takes care of the code anymore. That only leaves these options: arrange yourself to live with the issue, fix it yourself, or find a programmer somewhere willing to fix it.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hX{After checking the status, look for a line starting with 'bugs:': it will tell you where to find a subsystem specific bug tracker to file your issue. The example above does not have such a line. That is the case for most sections, as Linux kernel development is completely driven by mail. Very few subsystems use a bug tracker, and only some of those rely on bugzilla.kernel.org.h]hXAfter checking the status, look for a line starting with ‘bugs:’: it will tell you where to find a subsystem specific bug tracker to file your issue. The example above does not have such a line. That is the case for most sections, as Linux kernel development is completely driven by mail. Very few subsystems use a bug tracker, and only some of those rely on bugzilla.kernel.org.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hXIn this and many other cases you thus have to look for lines starting with 'Mail:' instead. Those mention the name and the email addresses for the maintainers of the particular code. Also look for a line starting with 'Mailing list:', which tells you the public mailing list where the code is developed. Your report later needs to go by mail to those addresses. Additionally, for all issue reports sent by email, make sure to add the Linux Kernel Mailing List (LKML) to CC. Don't omit either of the mailing lists when sending your issue report by mail later! Maintainers are busy people and might leave some work for other developers on the subsystem specific list; and LKML is important to have one place where all issue reports can be found.h](hXIn this and many other cases you thus have to look for lines starting with ‘Mail:’ instead. Those mention the name and the email addresses for the maintainers of the particular code. Also look for a line starting with ‘Mailing list:’, which tells you the public mailing list where the code is developed. Your report later needs to go by mail to those addresses. Additionally, for all issue reports sent by email, make sure to add the Linux Kernel Mailing List (LKML) <}(hXIn this and many other cases you thus have to look for lines starting with 'Mail:' instead. Those mention the name and the email addresses for the maintainers of the particular code. Also look for a line starting with 'Mailing list:', which tells you the public mailing list where the code is developed. Your report later needs to go by mail to those addresses. Additionally, for all issue reports sent by email, make sure to add the Linux Kernel Mailing List (LKML) to CC. Don’t omit either of the mailing lists when sending your issue report by mail later! Maintainers are busy people and might leave some work for other developers on the subsystem specific list; and LKML is important to have one place where all issue reports can be found.}(hX> to CC. Don't omit either of the mailing lists when sending your issue report by mail later! Maintainers are busy people and might leave some work for other developers on the subsystem specific list; and LKML is important to have one place where all issue reports can be found.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] how-to-read-the-maintainers-fileah ]h"] how to read the maintainers fileah$]h&]uh1hhj hhhhhMeubh)}(hhh](h)}(h1Finding the maintainers with the help of a scripth]h1Finding the maintainers with the help of a script}(hj+hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhMubh)}(hXpFor people that have the Linux sources at hand there is a second option to find the proper place to report: the script 'scripts/get_maintainer.pl' which tries to find all people to contact. It queries the MAINTAINERS file and needs to be called with a path to the source code in question. For drivers compiled as module if often can be found with a command like this::h]hXsFor people that have the Linux sources at hand there is a second option to find the proper place to report: the script ‘scripts/get_maintainer.pl’ which tries to find all people to contact. It queries the MAINTAINERS file and needs to be called with a path to the source code in question. For drivers compiled as module if often can be found with a command like this:}(hXoFor people that have the Linux sources at hand there is a second option to find the proper place to report: the script 'scripts/get_maintainer.pl' which tries to find all people to contact. It queries the MAINTAINERS file and needs to be called with a path to the source code in question. For drivers compiled as module if often can be found with a command like this:hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&hhubj| )}(h$ modinfo ath10k_pci | grep filename | sed 's!/lib/modules/.*/kernel/!!; s!filename:!!; s!\.ko\(\|\.xz\)!!' drivers/net/wireless/ath/ath10k/ath10k_pci.koh]h$ modinfo ath10k_pci | grep filename | sed 's!/lib/modules/.*/kernel/!!; s!filename:!!; s!\.ko\(\|\.xz\)!!' drivers/net/wireless/ath/ath10k/ath10k_pci.ko}(hhhjFubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj&hhubh)}(h"Pass parts of this to the script::h]h!Pass parts of this to the script:}(h!Pass parts of this to the script:hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&hhubj| )}(hX$ ./scripts/get_maintainer.pl -f drivers/net/wireless/ath/ath10k* Some Human (supporter:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER) Another S. Human (maintainer:NETWORKING DRIVERS) ath10k@lists.infradead.org (open list:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER) linux-wireless@vger.kernel.org (open list:NETWORKING DRIVERS (WIRELESS)) netdev@vger.kernel.org (open list:NETWORKING DRIVERS) linux-kernel@vger.kernel.org (open list)h]hX$ ./scripts/get_maintainer.pl -f drivers/net/wireless/ath/ath10k* Some Human (supporter:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER) Another S. Human (maintainer:NETWORKING DRIVERS) ath10k@lists.infradead.org (open list:QUALCOMM ATHEROS ATH10K WIRELESS DRIVER) linux-wireless@vger.kernel.org (open list:NETWORKING DRIVERS (WIRELESS)) netdev@vger.kernel.org (open list:NETWORKING DRIVERS) linux-kernel@vger.kernel.org (open list)}(hhhjcubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj&hhubh)}(hXyDon't sent your report to all of them. Send it to the maintainers, which the script calls "supporter:"; additionally CC the most specific mailing list for the code as well as the Linux Kernel Mailing List (LKML). In this case you thus would need to send the report to 'Some Human ' with 'ath10k@lists.infradead.org' and 'linux-kernel@vger.kernel.org' in CC.h](hX!Don’t sent your report to all of them. Send it to the maintainers, which the script calls “supporter:”; additionally CC the most specific mailing list for the code as well as the Linux Kernel Mailing List (LKML). In this case you thus would need to send the report to ‘Some Human <}(hXDon't sent your report to all of them. Send it to the maintainers, which the script calls "supporter:"; additionally CC the most specific mailing list for the code as well as the Linux Kernel Mailing List (LKML). In this case you thus would need to send the report to 'Some Human ’ with }(h>' with hjqhhhNhNubh)}(h'ath10k@lists.infradead.orgh]h‘ath10k@lists.infradead.org}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:'ath10k@lists.infradead.orguh1hhjqubh’ and }(h' and hjqhhhNhNubh)}(h'linux-kernel@vger.kernel.orgh]h‘linux-kernel@vger.kernel.org}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]refuri$mailto:'linux-kernel@vger.kernel.orguh1hhjqubh ’ in CC.}(h' in CC.hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&hhubh)}(hX6Note: in case you cloned the Linux sources with git you might want to call ``get_maintainer.pl`` a second time with ``--git``. The script then will look at the commit history to find which people recently worked on the code in question, as they might be able to help. But use these results with care, as it can easily send you in a wrong direction. That for example happens quickly in areas rarely changed (like old or unmaintained drivers): sometimes such code is modified during tree-wide cleanups by developers that do not care about the particular driver at all.h](hKNote: in case you cloned the Linux sources with git you might want to call }(hKNote: in case you cloned the Linux sources with git you might want to call hjhhhNhNubj)}(h``get_maintainer.pl``h]hget_maintainer.pl}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh a second time with }(h a second time with hjhhhNhNubj)}(h ``--git``h]h--git}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX. The script then will look at the commit history to find which people recently worked on the code in question, as they might be able to help. But use these results with care, as it can easily send you in a wrong direction. That for example happens quickly in areas rarely changed (like old or unmaintained drivers): sometimes such code is modified during tree-wide cleanups by developers that do not care about the particular driver at all.}(hX. The script then will look at the commit history to find which people recently worked on the code in question, as they might be able to help. But use these results with care, as it can easily send you in a wrong direction. That for example happens quickly in areas rarely changed (like old or unmaintained drivers): sometimes such code is modified during tree-wide cleanups by developers that do not care about the particular driver at all.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&hhubeh}(h]1finding-the-maintainers-with-the-help-of-a-scriptah ]h"]1finding the maintainers with the help of a scriptah$]h&]uh1hhj hhhhhMubeh}(h])check-where-you-need-to-report-your-issueah ]h"])check where you need to report your issueah$]h&]uh1hhjhhhhhMOubh)}(hhh](h)}(h'Search for existing reports, second runh]h'Search for existing reports, second run}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(h*Search the archives of the bug tracker or mailing list in question thoroughly for reports that might match your issue. If you find anything, join the discussion instead of sending a new report.*h]j)}(hjh]hSearch the archives of the bug tracker or mailing list in question thoroughly for reports that might match your issue. If you find anything, join the discussion instead of sending a new report.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXAs mentioned earlier already: reporting an issue that someone else already brought forward is often a waste of time for everyone involved, especially you as the reporter. That's why you should search for existing report again, now that you know where they need to be reported to. If it's mailing list, you will often find its archives on `lore.kernel.org `_.h](hXVAs mentioned earlier already: reporting an issue that someone else already brought forward is often a waste of time for everyone involved, especially you as the reporter. That’s why you should search for existing report again, now that you know where they need to be reported to. If it’s mailing list, you will often find its archives on }(hXRAs mentioned earlier already: reporting an issue that someone else already brought forward is often a waste of time for everyone involved, especially you as the reporter. That's why you should search for existing report again, now that you know where they need to be reported to. If it's mailing list, you will often find its archives on hj5hhhNhNubh)}(h-`lore.kernel.org `_h]hlore.kernel.org}(hlore.kernel.orghj>hhhNhNubah}(h]h ]h"]h$]h&]namejFjhttps://lore.kernel.org/uh1hhj5ubj)}(h h]h}(h]lore-kernel-orgah ]h"]lore.kernel.orgah$]h&]refurijNuh1jjKhj5ubh.}(hjhj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXBut some list are hosted in different places. That for example is the case for the ath10k WiFi driver used as example in the previous step. But you'll often find the archives for these lists easily on the net. Searching for 'archive ath10k@lists.infradead.org' for example will lead you to the `Info page for the ath10k mailing list `_, which at the top links to its `list archives `_. Sadly this and quite a few other lists miss a way to search the archives. In those cases use a regular internet search engine and add something like 'site:lists.infradead.org/pipermail/ath10k/' to your search terms, which limits the results to the archives at that URL.h](hBut some list are hosted in different places. That for example is the case for the ath10k WiFi driver used as example in the previous step. But you’ll often find the archives for these lists easily on the net. Searching for ‘archive }(hBut some list are hosted in different places. That for example is the case for the ath10k WiFi driver used as example in the previous step. But you'll often find the archives for these lists easily on the net. Searching for 'archive hjfhhhNhNubh)}(hath10k@lists.infradead.orgh]hath10k@lists.infradead.org}(hhhjohhhNhNubah}(h]h ]h"]h$]h&]refuri!mailto:ath10k@lists.infradead.orguh1hhjfubh%’ for example will lead you to the }(h#' for example will lead you to the hjfhhhNhNubh)}(h^`Info page for the ath10k mailing list `_h]h%Info page for the ath10k mailing list}(h%Info page for the ath10k mailing listhjhhhNhNubah}(h]h ]h"]h$]h&]name%Info page for the ath10k mailing listj3https://lists.infradead.org/mailman/listinfo/ath10kuh1hhjfubj)}(h6 h]h}(h]%info-page-for-the-ath10k-mailing-listah ]h"]%info page for the ath10k mailing listah$]h&]refurijuh1jjKhjfubh , which at the top links to its }(h , which at the top links to its hjfhhhNhNubh)}(h@`list archives `_h]h list archives}(h list archiveshjhhhNhNubah}(h]h ]h"]h$]h&]name list archivesj-https://lists.infradead.org/pipermail/ath10k/uh1hhjfubj)}(h0 h]h}(h] list-archivesah ]h"] list archivesah$]h&]refurijuh1jjKhjfubhX. Sadly this and quite a few other lists miss a way to search the archives. In those cases use a regular internet search engine and add something like ‘site:lists.infradead.org/pipermail/ath10k/’ to your search terms, which limits the results to the archives at that URL.}(hX. Sadly this and quite a few other lists miss a way to search the archives. In those cases use a regular internet search engine and add something like 'site:lists.infradead.org/pipermail/ath10k/' to your search terms, which limits the results to the archives at that URL.hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hX It's also wise to check the internet, LKML and maybe bugzilla.kernel.org again at this point. If your report needs to be filed in a bug tracker, you may want to check the mailing list archives for the subsystem as well, as someone might have reported it only there.h]hX It’s also wise to check the internet, LKML and maybe bugzilla.kernel.org again at this point. If your report needs to be filed in a bug tracker, you may want to check the mailing list archives for the subsystem as well, as someone might have reported it only there.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hyFor details how to search and what to do if you find matching reports see "Search for existing reports, first run" above.h]h}For details how to search and what to do if you find matching reports see “Search for existing reports, first run” above.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hDo not hurry with this step of the reporting process: spending 30 to 60 minutes or even more time can save you and others quite a lot of time and trouble.h]hDo not hurry with this step of the reporting process: spending 30 to 60 minutes or even more time can save you and others quite a lot of time and trouble.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]&search-for-existing-reports-second-runah ]h"]'search for existing reports, second runah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h"Install a fresh kernel for testingh]h"Install a fresh kernel for testing}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hX4*Unless you are already running the latest 'mainline' Linux kernel, better go and install it for the reporting process. Testing and reporting with the latest 'stable' Linux can be an acceptable alternative in some situations; during the merge window that actually might be even the best approach, but in that development phase it can be an even better idea to suspend your efforts for a few days anyway. Whatever version you choose, ideally use a 'vanilla' built. Ignoring these advices will dramatically increase the risk your report will be rejected or ignored.*h]j)}(hjh]hX>Unless you are already running the latest ‘mainline’ Linux kernel, better go and install it for the reporting process. Testing and reporting with the latest ‘stable’ Linux can be an acceptable alternative in some situations; during the merge window that actually might be even the best approach, but in that development phase it can be an even better idea to suspend your efforts for a few days anyway. Whatever version you choose, ideally use a ‘vanilla’ built. Ignoring these advices will dramatically increase the risk your report will be rejected or ignored.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hX6As mentioned in the detailed explanation for the first step already: Like most programmers, Linux kernel developers don't like to spend time dealing with reports for issues that don't even happen with the current code. It's just a waste everybody's time, especially yours. That's why it's in everybody's interest that you confirm the issue still exists with the latest upstream code before reporting it. You are free to ignore this advice, but as outlined earlier: doing so dramatically increases the risk that your issue report might get rejected or simply ignored.h]hXDAs mentioned in the detailed explanation for the first step already: Like most programmers, Linux kernel developers don’t like to spend time dealing with reports for issues that don’t even happen with the current code. It’s just a waste everybody’s time, especially yours. That’s why it’s in everybody’s interest that you confirm the issue still exists with the latest upstream code before reporting it. You are free to ignore this advice, but as outlined earlier: doing so dramatically increases the risk that your issue report might get rejected or simply ignored.}(hj7hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(h`_ and not modified or enhanced in any way. h]h)}(hX.The over next subsection describes way to obtain and install such a kernel. It also outlines that using a pre-compiled kernel are fine, but better are vanilla, which means: it was built using Linux sources taken straight `from kernel.org `_ and not modified or enhanced in any way.h](hThe over next subsection describes way to obtain and install such a kernel. It also outlines that using a pre-compiled kernel are fine, but better are vanilla, which means: it was built using Linux sources taken straight }(hThe over next subsection describes way to obtain and install such a kernel. It also outlines that using a pre-compiled kernel are fine, but better are vanilla, which means: it was built using Linux sources taken straight hjshhhNhNubh)}(h(`from kernel.org `_h]hfrom kernel.org}(hfrom kernel.orghj|hhhNhNubah}(h]h ]h"]h$]h&]namefrom kernel.orgjhttps://kernel.org/uh1hhjsubj)}(h h]h}(h]from-kernel-orgah ]h"]from kernel.orgah$]h&]refurijuh1jjKhjsubh) and not modified or enhanced in any way.}(h) and not modified or enhanced in any way.hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjoubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhjQubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hhh](h)}(h&Choosing the right version for testingh]h&Choosing the right version for testing}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM$ubh)}(hXcHead over to `kernel.org `_ to find out which version you want to use for testing. Ignore the big yellow button that says 'Latest release' and look a little lower at the table. At its top you'll see a line starting with mainline, which most of the time will point to a pre-release with a version number like '5.8-rc2'. If that's the case, you'll want to use this mainline kernel for testing, as that where all fixes have to be applied first. Do not let that 'rc' scare you, these 'development kernels' are pretty reliable — and you made a backup, as you were instructed above, didn't you?h](h Head over to }(h Head over to hjhhhNhNubh)}(h#`kernel.org `_h]h kernel.org}(h kernel.orghjhhhNhNubah}(h]h ]h"]h$]h&]namejjhttps://kernel.org/uh1hhjubj)}(h h]h}(h] kernel-orgah ]h"] kernel.orgah$]h&]refurijuh1jjKhjubhXK to find out which version you want to use for testing. Ignore the big yellow button that says ‘Latest release’ and look a little lower at the table. At its top you’ll see a line starting with mainline, which most of the time will point to a pre-release with a version number like ‘5.8-rc2’. If that’s the case, you’ll want to use this mainline kernel for testing, as that where all fixes have to be applied first. Do not let that ‘rc’ scare you, these ‘development kernels’ are pretty reliable — and you made a backup, as you were instructed above, didn’t you?}(hX3 to find out which version you want to use for testing. Ignore the big yellow button that says 'Latest release' and look a little lower at the table. At its top you'll see a line starting with mainline, which most of the time will point to a pre-release with a version number like '5.8-rc2'. If that's the case, you'll want to use this mainline kernel for testing, as that where all fixes have to be applied first. Do not let that 'rc' scare you, these 'development kernels' are pretty reliable — and you made a backup, as you were instructed above, didn't you?hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hjhhubh)}(hXgIn about two out of every nine to ten weeks, mainline might point you to a proper release with a version number like '5.7'. If that happens, consider suspending the reporting process until the first pre-release of the next version (5.8-rc1) shows up on kernel.org. That's because the Linux development cycle then is in its two-week long 'merge window'. The bulk of the changes and all intrusive ones get merged for the next release during this time. It's a bit more risky to use mainline during this period. Kernel developers are also often quite busy then and might have no spare time to deal with issue reports. It's also quite possible that one of the many changes applied during the merge window fixes the issue you face; that's why you soon would have to retest with a newer kernel version anyway, as outlined below in the section 'Duties after the report went out'.h]hX{In about two out of every nine to ten weeks, mainline might point you to a proper release with a version number like ‘5.7’. If that happens, consider suspending the reporting process until the first pre-release of the next version (5.8-rc1) shows up on kernel.org. That’s because the Linux development cycle then is in its two-week long ‘merge window’. The bulk of the changes and all intrusive ones get merged for the next release during this time. It’s a bit more risky to use mainline during this period. Kernel developers are also often quite busy then and might have no spare time to deal with issue reports. It’s also quite possible that one of the many changes applied during the merge window fixes the issue you face; that’s why you soon would have to retest with a newer kernel version anyway, as outlined below in the section ‘Duties after the report went out’.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM/hjhhubh)}(hXThat's why it might make sense to wait till the merge window is over. But don't to that if you're dealing with something that shouldn't wait. In that case consider obtaining the latest mainline kernel via git (see below) or use the latest stable version offered on kernel.org. Using that is also acceptable in case mainline for some reason does currently not work for you. An in general: using it for reproducing the issue is also better than not reporting it issue at all.h]hXThat’s why it might make sense to wait till the merge window is over. But don’t to that if you’re dealing with something that shouldn’t wait. In that case consider obtaining the latest mainline kernel via git (see below) or use the latest stable version offered on kernel.org. Using that is also acceptable in case mainline for some reason does currently not work for you. An in general: using it for reproducing the issue is also better than not reporting it issue at all.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM<hjhhubh)}(hXBetter avoid using the latest stable kernel outside merge windows, as all fixes must be applied to mainline first. That's why checking the latest mainline kernel is so important: any issue you want to see fixed in older version lines needs to be fixed in mainline first before it can get backported, which can take a few days or weeks. Another reason: the fix you hope for might be too hard or risky for backporting; reporting the issue again hence is unlikely to change anything.h]hXBetter avoid using the latest stable kernel outside merge windows, as all fixes must be applied to mainline first. That’s why checking the latest mainline kernel is so important: any issue you want to see fixed in older version lines needs to be fixed in mainline first before it can get backported, which can take a few days or weeks. Another reason: the fix you hope for might be too hard or risky for backporting; reporting the issue again hence is unlikely to change anything.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjhhubh)}(hXThese aspects are also why longterm kernels (sometimes called "LTS kernels") are unsuitable for this part of the reporting process: they are to distant from the current code. Hence go and test mainline first and follow the process further: if the issue doesn't occur with mainline it will guide you how to get it fixed in older version lines, if that's in the cards for the fix in question.h]hXThese aspects are also why longterm kernels (sometimes called “LTS kernels”) are unsuitable for this part of the reporting process: they are to distant from the current code. Hence go and test mainline first and follow the process further: if the issue doesn’t occur with mainline it will guide you how to get it fixed in older version lines, if that’s in the cards for the fix in question.}(hj'hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjhhubeh}(h]&choosing-the-right-version-for-testingah ]h"]&choosing the right version for testingah$]h&]uh1hhjhhhhhM$ubh)}(hhh](h)}(h"How to obtain a fresh Linux kernelh]h"How to obtain a fresh Linux kernel}(hj@hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hhhhhMSubh)}(hX**Using a pre-compiled kernel**: This is often the quickest, easiest, and safest way for testing — especially is you are unfamiliar with the Linux kernel. The problem: most of those shipped by distributors or add-on repositories are build from modified Linux sources. They are thus not vanilla and therefore often unsuitable for testing and issue reporting: the changes might cause the issue you face or influence it somehow.h](j')}(h**Using a pre-compiled kernel**h]hUsing a pre-compiled kernel}(hhhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjLubhX: This is often the quickest, easiest, and safest way for testing — especially is you are unfamiliar with the Linux kernel. The problem: most of those shipped by distributors or add-on repositories are build from modified Linux sources. They are thus not vanilla and therefore often unsuitable for testing and issue reporting: the changes might cause the issue you face or influence it somehow.}(hX: This is often the quickest, easiest, and safest way for testing — especially is you are unfamiliar with the Linux kernel. The problem: most of those shipped by distributors or add-on repositories are build from modified Linux sources. They are thus not vanilla and therefore often unsuitable for testing and issue reporting: the changes might cause the issue you face or influence it somehow.hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMUhj;hhubh)}(hX:But you are in luck if you are using a popular Linux distribution: for quite a few of them you'll find repositories on the net that contain packages with the latest mainline or stable Linux built as vanilla kernel. It's totally okay to use these, just make sure from the repository's description they are vanilla or at least close to it. Additionally ensure the packages contain the latest versions as offered on kernel.org. The packages are likely unsuitable if they are older than a week, as new mainline and stable kernels typically get released at least once a week.h]hX@But you are in luck if you are using a popular Linux distribution: for quite a few of them you’ll find repositories on the net that contain packages with the latest mainline or stable Linux built as vanilla kernel. It’s totally okay to use these, just make sure from the repository’s description they are vanilla or at least close to it. Additionally ensure the packages contain the latest versions as offered on kernel.org. The packages are likely unsuitable if they are older than a week, as new mainline and stable kernels typically get released at least once a week.}(hjkhjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hj;hhubh)}(hXPlease note that you might need to build your own kernel manually later: that's sometimes needed for debugging or testing fixes, as described later in this document. Also be aware that pre-compiled kernels might lack debug symbols that are needed to decode messages the kernel prints when a panic, Oops, warning, or BUG occurs; if you plan to decode those, you might be better off compiling a kernel yourself (see the end of this subsection and the section titled 'Decode failure messages' for details).h]hXPlease note that you might need to build your own kernel manually later: that’s sometimes needed for debugging or testing fixes, as described later in this document. Also be aware that pre-compiled kernels might lack debug symbols that are needed to decode messages the kernel prints when a panic, Oops, warning, or BUG occurs; if you plan to decode those, you might be better off compiling a kernel yourself (see the end of this subsection and the section titled ‘Decode failure messages’ for details).}(hjyhjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehj;hhubh)}(hX**Using git**: Developers and experienced Linux users familiar with git are often best served by obtaining the latest Linux kernel sources straight from the `official development repository on kernel.org `_. Those are likely a bit ahead of the latest mainline pre-release. Don't worry about it: they are as reliable as a proper pre-release, unless the kernel's development cycle is currently in the middle of a merge window. But even then they are quite reliable.h](j')}(h **Using git**h]h Using git}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubh: Developers and experienced Linux users familiar with git are often best served by obtaining the latest Linux kernel sources straight from the }(h: Developers and experienced Linux users familiar with git are often best served by obtaining the latest Linux kernel sources straight from the hjhhhNhNubh)}(h{`official development repository on kernel.org `_h]h-official development repository on kernel.org}(h-official development repository on kernel.orghjhhhNhNubah}(h]h ]h"]h$]h&]name-official development repository on kernel.orgjHhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/uh1hhjubj)}(hK h]h}(h]-official-development-repository-on-kernel-orgah ]h"]-official development repository on kernel.orgah$]h&]refurijuh1jjKhjubhX. Those are likely a bit ahead of the latest mainline pre-release. Don’t worry about it: they are as reliable as a proper pre-release, unless the kernel’s development cycle is currently in the middle of a merge window. But even then they are quite reliable.}(hX. Those are likely a bit ahead of the latest mainline pre-release. Don't worry about it: they are as reliable as a proper pre-release, unless the kernel's development cycle is currently in the middle of a merge window. But even then they are quite reliable.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMmhj;hhubh)}(h**Conventional**: People unfamiliar with git are often best served by downloading the sources as tarball from `kernel.org `_.h](j')}(h**Conventional**h]h Conventional}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubh^: People unfamiliar with git are often best served by downloading the sources as tarball from }(h^: People unfamiliar with git are often best served by downloading the sources as tarball from hjhhhNhNubh)}(h#`kernel.org `_h]h kernel.org}(h kernel.orghjhhhNhNubah}(h]h ]h"]h$]h&]namejjhttps://kernel.org/uh1hhjubj)}(h h]h}(h]id3ah ]h"]h$] kernel.orgah&]refurijuh1jjKhjubh.}(hjhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMvhj;hhubh)}(hXHow to actually build a kernel is not described here, as many websites explain the necessary steps already. If you are new to it, consider following one of those how-to's that suggest to use ``make localmodconfig``, as that tries to pick up the configuration of your current kernel and then tries to adjust it somewhat for your system. That does not make the resulting kernel any better, but quicker to compile.h](hHow to actually build a kernel is not described here, as many websites explain the necessary steps already. If you are new to it, consider following one of those how-to’s that suggest to use }(hHow to actually build a kernel is not described here, as many websites explain the necessary steps already. If you are new to it, consider following one of those how-to's that suggest to use hjhhhNhNubj)}(h``make localmodconfig``h]hmake localmodconfig}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, as that tries to pick up the configuration of your current kernel and then tries to adjust it somewhat for your system. That does not make the resulting kernel any better, but quicker to compile.}(h, as that tries to pick up the configuration of your current kernel and then tries to adjust it somewhat for your system. That does not make the resulting kernel any better, but quicker to compile.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMyhj;hhubh)}(hXXNote: If you are dealing with a panic, Oops, warning, or BUG from the kernel, please try to enable CONFIG_KALLSYMS when configuring your kernel. Additionally, enable CONFIG_DEBUG_KERNEL and CONFIG_DEBUG_INFO, too; the latter is the relevant one of those two, but can only be reached if you enable the former. Be aware CONFIG_DEBUG_INFO increases the storage space required to build a kernel by quite a bit. But that's worth it, as these options will allow you later to pinpoint the exact line of code that triggers your issue. The section 'Decode failure messages' below explains this in more detail.h]hX^Note: If you are dealing with a panic, Oops, warning, or BUG from the kernel, please try to enable CONFIG_KALLSYMS when configuring your kernel. Additionally, enable CONFIG_DEBUG_KERNEL and CONFIG_DEBUG_INFO, too; the latter is the relevant one of those two, but can only be reached if you enable the former. Be aware CONFIG_DEBUG_INFO increases the storage space required to build a kernel by quite a bit. But that’s worth it, as these options will allow you later to pinpoint the exact line of code that triggers your issue. The section ‘Decode failure messages’ below explains this in more detail.}(hj)hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj;hhubh)}(hBut keep in mind: Always keep a record of the issue encountered in case it is hard to reproduce. Sending an undecoded report is better than not reporting the issue at all.h]hBut keep in mind: Always keep a record of the issue encountered in case it is hard to reproduce. Sending an undecoded report is better than not reporting the issue at all.}(hj7hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj;hhubeh}(h]"how-to-obtain-a-fresh-linux-kernelah ]h"]"how to obtain a fresh linux kernelah$]h&]uh1hhjhhhhhMSubeh}(h]"install-a-fresh-kernel-for-testingah ]h"]"install a fresh kernel for testingah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hCheck 'taint' flagh]hCheck ‘taint’ flag}(hjXhjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhMubj)}(hhh]h)}(hL*Ensure the kernel you just installed does not 'taint' itself when running.*h]j)}(hjih]hNEnsure the kernel you just installed does not ‘taint’ itself when running.}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhhhMhjdubah}(h]h ]h"]h$]h&]uh1jhjShhhhhNubh)}(hXAs outlined above in more detail already: the kernel sets a 'taint' flag when something happens that can lead to follow-up errors that look totally unrelated. That's why you need to check if the kernel you just installed does not set this flag. And if it does, you in almost all the cases needs to eliminate the reason for it before you reporting issues that occur with it. See the section above for details how to do that.h]hXAs outlined above in more detail already: the kernel sets a ‘taint’ flag when something happens that can lead to follow-up errors that look totally unrelated. That’s why you need to check if the kernel you just installed does not set this flag. And if it does, you in almost all the cases needs to eliminate the reason for it before you reporting issues that occur with it. See the section above for details how to do that.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjShhubeh}(h]id4ah ]h"]h$]j ah&]uh1hhjhhhhhMjKubh)}(hhh](h)}(h%Reproduce issue with the fresh kernelh]h%Reproduce issue with the fresh kernel}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(h*Reproduce the issue with the kernel you just installed. If it doesn't show up there, scroll down to the instructions for issues only happening with stable and longterm kernels.*h]j)}(hjh]hReproduce the issue with the kernel you just installed. If it doesn’t show up there, scroll down to the instructions for issues only happening with stable and longterm kernels.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hX7Check if the issue occurs with the fresh Linux kernel version you just installed. If it was fixed there already, consider sticking with this version line and abandoning your plan to report the issue. But keep in mind that other users might still be plagued by it, as long as it's not fixed in either stable and longterm version from kernel.org (and thus vendor kernels derived from those). If you prefer to use one of those or just want to help their users, head over to the section "Details about reporting issues only occurring in older kernel version lines" below.h]hX=Check if the issue occurs with the fresh Linux kernel version you just installed. If it was fixed there already, consider sticking with this version line and abandoning your plan to report the issue. But keep in mind that other users might still be plagued by it, as long as it’s not fixed in either stable and longterm version from kernel.org (and thus vendor kernels derived from those). If you prefer to use one of those or just want to help their users, head over to the section “Details about reporting issues only occurring in older kernel version lines” below.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]%reproduce-issue-with-the-fresh-kernelah ]h"]%reproduce issue with the fresh kernelah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h'Optimize description to reproduce issueh]h'Optimize description to reproduce issue}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hXm*Optimize your notes: try to find and write the most straightforward way to reproduce your issue. Make sure the end result has all the important details, and at the same time is easy to read and understand for others that hear about it for the first time. And if you learned something in this process, consider searching again for existing reports about the issue.*h]j)}(hjh]hXkOptimize your notes: try to find and write the most straightforward way to reproduce your issue. Make sure the end result has all the important details, and at the same time is easy to read and understand for others that hear about it for the first time. And if you learned something in this process, consider searching again for existing reports about the issue.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXAn unnecessarily complex report will make it hard for others to understand your report. Thus try to find a reproducer that's straight forward to describe and thus easy to understand in written form. Include all important details, but at the same time try to keep it as short as possible.h]hX!An unnecessarily complex report will make it hard for others to understand your report. Thus try to find a reproducer that’s straight forward to describe and thus easy to understand in written form. Include all important details, but at the same time try to keep it as short as possible.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hIn this in the previous steps you likely have learned a thing or two about the issue you face. Use this knowledge and search again for existing reports instead you can join.h]hIn this in the previous steps you likely have learned a thing or two about the issue you face. Use this knowledge and search again for existing reports instead you can join.}(hj!hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]'optimize-description-to-reproduce-issueah ]h"]'optimize description to reproduce issueah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hDecode failure messagesh]hDecode failure messages}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hhhhhMubj)}(hhh]h)}(h*If your failure involves a 'panic', 'Oops', 'warning', or 'BUG', consider decoding the kernel log to find the line of code that triggered the error.*h]j)}(hjKh]hIf your failure involves a ‘panic’, ‘Oops’, ‘warning’, or ‘BUG’, consider decoding the kernel log to find the line of code that triggered the error.}(hhhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhhhMhjFubah}(h]h ]h"]h$]h&]uh1jhj5hhhhhNubh)}(hX-When the kernel detects an internal problem, it will log some information about the executed code. This makes it possible to pinpoint the exact line in the source code that triggered the issue and shows how it was called. But that only works if you enabled CONFIG_DEBUG_INFO and CONFIG_KALLSYMS when configuring your kernel. If you did so, consider to decode the information from the kernel's log. That will make it a lot easier to understand what lead to the 'panic', 'Oops', 'warning', or 'BUG', which increases the chances that someone can provide a fix.h]hX?When the kernel detects an internal problem, it will log some information about the executed code. This makes it possible to pinpoint the exact line in the source code that triggered the issue and shows how it was called. But that only works if you enabled CONFIG_DEBUG_INFO and CONFIG_KALLSYMS when configuring your kernel. If you did so, consider to decode the information from the kernel’s log. That will make it a lot easier to understand what lead to the ‘panic’, ‘Oops’, ‘warning’, or ‘BUG’, which increases the chances that someone can provide a fix.}(hjhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubh)}(hDecoding can be done with a script you find in the Linux source tree. If you are running a kernel you compiled yourself earlier, call it like this::h]hDecoding can be done with a script you find in the Linux source tree. If you are running a kernel you compiled yourself earlier, call it like this:}(hDecoding can be done with a script you find in the Linux source tree. If you are running a kernel you compiled yourself earlier, call it like this:hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubj| )}(hc[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh ./linux-5.10.5/vmlinuxh]hc[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh ./linux-5.10.5/vmlinux}(hhhjubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj5hhubh)}(hIf you are running a packaged vanilla kernel, you will likely have to install the corresponding packages with debug symbols. Then call the script (which you might need to get from the Linux sources if your distro does not package it) like this::h]hIf you are running a packaged vanilla kernel, you will likely have to install the corresponding packages with debug symbols. Then call the script (which you might need to get from the Linux sources if your distro does not package it) like this:}(hIf you are running a packaged vanilla kernel, you will likely have to install the corresponding packages with debug symbols. Then call the script (which you might need to get from the Linux sources if your distro does not package it) like this:hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubj| )}(h[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh \ /usr/lib/debug/lib/modules/5.10.10-4.1.x86_64/vmlinux /usr/src/kernels/5.10.10-4.1.x86_64/h]h[user@something ~]$ sudo dmesg | ./linux-5.10.5/scripts/decode_stacktrace.sh \ /usr/lib/debug/lib/modules/5.10.10-4.1.x86_64/vmlinux /usr/src/kernels/5.10.10-4.1.x86_64/}(hhhjubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj5hhubh)}(hThe script will work on log lines like the following, which show the address of the code the kernel was executing when the error occurred::h]hThe script will work on log lines like the following, which show the address of the code the kernel was executing when the error occurred:}(hThe script will work on log lines like the following, which show the address of the code the kernel was executing when the error occurred:hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubj| )}(hA[ 68.387301] RIP: 0010:test_module_init+0x5/0xffa [test_module]h]hA[ 68.387301] RIP: 0010:test_module_init+0x5/0xffa [test_module]}(hhhjubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj5hhubh)}(h/Once decoded, these lines will look like this::h]h.Once decoded, these lines will look like this:}(h.Once decoded, these lines will look like this:hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubj| )}(hp[ 68.387301] RIP: 0010:test_module_init (/home/username/linux-5.10.5/test-module/test-module.c:16) test_moduleh]hp[ 68.387301] RIP: 0010:test_module_init (/home/username/linux-5.10.5/test-module/test-module.c:16) test_module}(hhhjubah}(h]h ]h"]h$]h&]hhuh1j{ hhhMhj5hhubh)}(hIn this case the executed code was built from the file '~/linux-5.10.5/test-module/test-module.c' and the error occurred by the instructions found in line '16'.h]hIn this case the executed code was built from the file ‘~/linux-5.10.5/test-module/test-module.c’ and the error occurred by the instructions found in line ‘16’.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubh)}(hX The script will similarly decode the addresses mentioned in the section starting with 'Call trace', which show the path to the function where the problem occurred. Additionally, the script will show the assembler output for the code section the kernel was executing.h]hXThe script will similarly decode the addresses mentioned in the section starting with ‘Call trace’, which show the path to the function where the problem occurred. Additionally, the script will show the assembler output for the code section the kernel was executing.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubh)}(hXNote, if you can't get this to work, simply skip this step and mention the reason for it in the report. If you're lucky, it might not be needed. And if it is, someone might help you to get things going. Also be aware this is just one of several ways to decode kernel stack traces. Sometimes different steps will be required to retrieve the relevant details. Don't worry about that, if that's needed in your case, developers will tell you what to do.h]hXNote, if you can’t get this to work, simply skip this step and mention the reason for it in the report. If you’re lucky, it might not be needed. And if it is, someone might help you to get things going. Also be aware this is just one of several ways to decode kernel stack traces. Sometimes different steps will be required to retrieve the relevant details. Don’t worry about that, if that’s needed in your case, developers will tell you what to do.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubeh}(h]decode-failure-messagesah ]h"]decode failure messagesah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hSpecial care for regressionsh]hSpecial care for regressions}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hh*If your problem is a regression, try to narrow down when the issue was introduced as much as possible.*h]j)}(hj0h]hfIf your problem is a regression, try to narrow down when the issue was introduced as much as possible.}(hhhj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hX}Linux lead developer Linus Torvalds insists that the Linux kernel never worsens, that's why he deems regressions as unacceptable and wants to see them fixed quickly. That's why changes that introduced a regression are often promptly reverted if the issue they cause can't get solved quickly any other way. Reporting a regression is thus a bit like playing a kind of trump card to get something quickly fixed. But for that to happen the change that's causing the regression needs to be known. Normally it's up to the reporter to track down the culprit, as maintainers often won't have the time or setup at hand to reproduce it themselves.h]hXLinux lead developer Linus Torvalds insists that the Linux kernel never worsens, that’s why he deems regressions as unacceptable and wants to see them fixed quickly. That’s why changes that introduced a regression are often promptly reverted if the issue they cause can’t get solved quickly any other way. Reporting a regression is thus a bit like playing a kind of trump card to get something quickly fixed. But for that to happen the change that’s causing the regression needs to be known. Normally it’s up to the reporter to track down the culprit, as maintainers often won’t have the time or setup at hand to reproduce it themselves.}(hjMhjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXTo find the change there is a process called 'bisection' which the document Documentation/admin-guide/bug-bisect.rst describes in detail. That process will often require you to build about ten to twenty kernel images, trying to reproduce the issue with each of them before building the next. Yes, that takes some time, but don't worry, it works a lot quicker than most people assume. Thanks to a 'binary search' this will lead you to the one commit in the source code management system that's causing the regression. Once you find it, search the net for the subject of the change, its commit id and the shortened commit id (the first 12 characters of the commit id). This will lead you to existing reports about it, if there are any.h]hXTo find the change there is a process called ‘bisection’ which the document Documentation/admin-guide/bug-bisect.rst describes in detail. That process will often require you to build about ten to twenty kernel images, trying to reproduce the issue with each of them before building the next. Yes, that takes some time, but don’t worry, it works a lot quicker than most people assume. Thanks to a ‘binary search’ this will lead you to the one commit in the source code management system that’s causing the regression. Once you find it, search the net for the subject of the change, its commit id and the shortened commit id (the first 12 characters of the commit id). This will lead you to existing reports about it, if there are any.}(hj[hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXaNote, a bisection needs a bit of know-how, which not everyone has, and quite a bit of effort, which not everyone is willing to invest. Nevertheless, it's highly recommended performing a bisection yourself. If you really can't or don't want to go down that route at least find out which mainline kernel introduced the regression. If something for example breaks when switching from 5.5.15 to 5.8.4, then try at least all the mainline releases in that area (5.6, 5.7 and 5.8) to check when it first showed up. Unless you're trying to find a regression in a stable or longterm kernel, avoid testing versions which number has three sections (5.6.12, 5.7.8), as that makes the outcome hard to interpret, which might render your testing useless. Once you found the major version which introduced the regression, feel free to move on in the reporting process. But keep in mind: it depends on the issue at hand if the developers will be able to help without knowing the culprit. Sometimes they might recognize from the report want went wrong and can fix it; other times they will be unable to help unless you perform a bisection.h]hXiNote, a bisection needs a bit of know-how, which not everyone has, and quite a bit of effort, which not everyone is willing to invest. Nevertheless, it’s highly recommended performing a bisection yourself. If you really can’t or don’t want to go down that route at least find out which mainline kernel introduced the regression. If something for example breaks when switching from 5.5.15 to 5.8.4, then try at least all the mainline releases in that area (5.6, 5.7 and 5.8) to check when it first showed up. Unless you’re trying to find a regression in a stable or longterm kernel, avoid testing versions which number has three sections (5.6.12, 5.7.8), as that makes the outcome hard to interpret, which might render your testing useless. Once you found the major version which introduced the regression, feel free to move on in the reporting process. But keep in mind: it depends on the issue at hand if the developers will be able to help without knowing the culprit. Sometimes they might recognize from the report want went wrong and can fix it; other times they will be unable to help unless you perform a bisection.}(hjihjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hWhen dealing with regressions make sure the issue you face is really caused by the kernel and not by something else, as outlined above already.h]hWhen dealing with regressions make sure the issue you face is really caused by the kernel and not by something else, as outlined above already.}(hjwhjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hjhhubh)}(hXIn the whole process keep in mind: an issue only qualifies as regression if the older and the newer kernel got built with a similar configuration. This can be achieved by using ``make olddefconfig``, as explained in more detail by Documentation/admin-guide/reporting-regressions.rst; that document also provides a good deal of other information about regressions you might want to be aware of.h](hIn the whole process keep in mind: an issue only qualifies as regression if the older and the newer kernel got built with a similar configuration. This can be achieved by using }(hIn the whole process keep in mind: an issue only qualifies as regression if the older and the newer kernel got built with a similar configuration. This can be achieved by using hjhhhNhNubj)}(h``make olddefconfig``h]hmake olddefconfig}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, as explained in more detail by Documentation/admin-guide/reporting-regressions.rst; that document also provides a good deal of other information about regressions you might want to be aware of.}(h, as explained in more detail by Documentation/admin-guide/reporting-regressions.rst; that document also provides a good deal of other information about regressions you might want to be aware of.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM$hjhhubeh}(h]special-care-for-regressionsah ]h"]special care for regressionsah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hWrite and send the reporth]hWrite and send the report}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM-ubj)}(hhh]h)}(hX*Start to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel's build configuration (.config) and the output from ``dmesg`` available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from ``lspci``. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you're ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those 'issues of high priority': they need special care which is explained in 'Special handling for high priority issues' below.*h]j)}(hjh]hXStart to compile the report by writing a detailed description about the issue. Always mention a few things: the latest kernel version you installed for reproducing, the Linux Distribution used, and your notes on how to reproduce the issue. Ideally, make the kernel’s build configuration (.config) and the output from ``dmesg`` available somewhere on the net and link to it. Include or upload all other information that might be relevant, like the output/screenshot of an Oops or the output from ``lspci``. Once you wrote this main part, insert a normal length paragraph on top of it outlining the issue and the impact quickly. On top of this add one sentence that briefly describes the problem and gets people to read on. Now give the thing a descriptive title or subject that yet again is shorter. Then you’re ready to send or file the report like the MAINTAINERS file told you, unless you are dealing with one of those ‘issues of high priority’: they need special care which is explained in ‘Special handling for high priority issues’ below.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM/hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXNow that you have prepared everything it's time to write your report. How to do that is partly explained by the three documents linked to in the preface above. That's why this text will only mention a few of the essentials as well as things specific to the Linux kernel.h]hXNow that you have prepared everything it’s time to write your report. How to do that is partly explained by the three documents linked to in the preface above. That’s why this text will only mention a few of the essentials as well as things specific to the Linux kernel.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjhhubh)}(hXThere is one thing that fits both categories: the most crucial parts of your report are the title/subject, the first sentence, and the first paragraph. Developers often get quite a lot of mail. They thus often just take a few seconds to skim a mail before deciding to move on or look closer. Thus: the better the top section of your report, the higher are the chances that someone will look into it and help you. And that is why you should ignore them for now and write the detailed report first. ;-)h]hXThere is one thing that fits both categories: the most crucial parts of your report are the title/subject, the first sentence, and the first paragraph. Developers often get quite a lot of mail. They thus often just take a few seconds to skim a mail before deciding to move on or look closer. Thus: the better the top section of your report, the higher are the chances that someone will look into it and help you. And that is why you should ignore them for now and write the detailed report first. ;-)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjhhubh)}(hhh](h)}(h!Things each report should mentionh]h!Things each report should mention}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMMubh)}(hX<Describe in detail how your issue happens with the fresh vanilla kernel you installed. Try to include the step-by-step instructions you wrote and optimized earlier that outline how you and ideally others can reproduce the issue; in those rare cases where that's impossible try to describe what you did to trigger it.h]hX>Describe in detail how your issue happens with the fresh vanilla kernel you installed. Try to include the step-by-step instructions you wrote and optimized earlier that outline how you and ideally others can reproduce the issue; in those rare cases where that’s impossible try to describe what you did to trigger it.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhjhhubh)}(hAlso include all the relevant information others might need to understand the issue and its environment. What's actually needed depends a lot on the issue, but there are some things you should include always:h]hAlso include all the relevant information others might need to understand the issue and its environment. What’s actually needed depends a lot on the issue, but there are some things you should include always:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhjhhubj)}(hhh]j)}(hhh](j)}(hzthe output from ``cat /proc/version``, which contains the Linux kernel version number and the compiler it was built with. h]h)}(hythe output from ``cat /proc/version``, which contains the Linux kernel version number and the compiler it was built with.h](hthe output from }(hthe output from hj1hhhNhNubj)}(h``cat /proc/version``h]hcat /proc/version}(hhhj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubhT, which contains the Linux kernel version number and the compiler it was built with.}(hT, which contains the Linux kernel version number and the compiler it was built with.hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMYhj-ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hZthe Linux distribution the machine is running (``hostnamectl | grep "Operating System"``) h]h)}(hYthe Linux distribution the machine is running (``hostnamectl | grep "Operating System"``)h](h/the Linux distribution the machine is running (}(h/the Linux distribution the machine is running (hj]hhhNhNubj)}(h)``hostnamectl | grep "Operating System"``h]h%hostnamectl | grep "Operating System"}(hhhjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h)hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM\hjYubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hEthe architecture of the CPU and the operating system (``uname -mi``) h]h)}(hDthe architecture of the CPU and the operating system (``uname -mi``)h](h6the architecture of the CPU and the operating system (}(h6the architecture of the CPU and the operating system (hjhhhNhNubj)}(h ``uname -mi``h]h uname -mi}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh)}(hjxhjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM_hjubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hif you are dealing with a regression and performed a bisection, mention the subject and the commit-id of the change that is causing it. h]h)}(hif you are dealing with a regression and performed a bisection, mention the subject and the commit-id of the change that is causing it.h]hif you are dealing with a regression and performed a bisection, mention the subject and the commit-id of the change that is causing it.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]jjuh1jhhhMYhj'ubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hbIn a lot of cases it's also wise to make two more things available to those that read your report:h]hdIn a lot of cases it’s also wise to make two more things available to those that read your report:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhjhhubj)}(hhh]j)}(hhh](j)}(hKthe configuration used for building your Linux kernel (the '.config' file) h]h)}(hJthe configuration used for building your Linux kernel (the '.config' file)h]hNthe configuration used for building your Linux kernel (the ‘.config’ file)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMghjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXthe kernel's messages that you get from ``dmesg`` written to a file. Make sure that it starts with a line like 'Linux version 5.8-1 (foobar@example.com) (gcc (GCC) 10.2.1, GNU ld version 2.34) #1 SMP Mon Aug 3 14:54:37 UTC 2020' If it's missing, then important messages from the first boot phase already got discarded. In this case instead consider using ``journalctl -b 0 -k``; alternatively you can also reboot, reproduce the issue and call ``dmesg`` right afterwards. h]h)}(hXthe kernel's messages that you get from ``dmesg`` written to a file. Make sure that it starts with a line like 'Linux version 5.8-1 (foobar@example.com) (gcc (GCC) 10.2.1, GNU ld version 2.34) #1 SMP Mon Aug 3 14:54:37 UTC 2020' If it's missing, then important messages from the first boot phase already got discarded. In this case instead consider using ``journalctl -b 0 -k``; alternatively you can also reboot, reproduce the issue and call ``dmesg`` right afterwards.h](h*the kernel’s messages that you get from }(h(the kernel's messages that you get from hjhhhNhNubj)}(h ``dmesg``h]hdmesg}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhV written to a file. Make sure that it starts with a line like ‘Linux version 5.8-1 (}(hT written to a file. Make sure that it starts with a line like 'Linux version 5.8-1 (hjhhhNhNubh)}(hfoobar@example.comh]hfoobar@example.com}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:foobar@example.comuh1hhjubh) (gcc (GCC) 10.2.1, GNU ld version 2.34) #1 SMP Mon Aug 3 14:54:37 UTC 2020’ If it’s missing, then important messages from the first boot phase already got discarded. In this case instead consider using }(h) (gcc (GCC) 10.2.1, GNU ld version 2.34) #1 SMP Mon Aug 3 14:54:37 UTC 2020' If it's missing, then important messages from the first boot phase already got discarded. In this case instead consider using hjhhhNhNubj)}(h``journalctl -b 0 -k``h]hjournalctl -b 0 -k}(hhhj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhB; alternatively you can also reboot, reproduce the issue and call }(hB; alternatively you can also reboot, reproduce the issue and call hjhhhNhNubj)}(h ``dmesg``h]hdmesg}(hhhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh right afterwards.}(h right afterwards.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhMghjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hXThese two files are big, that's why it's a bad idea to put them directly into your report. If you are filing the issue in a bug tracker then attach them to the ticket. If you report the issue by mail do not attach them, as that makes the mail too large; instead do one of these things:h]hX!These two files are big, that’s why it’s a bad idea to put them directly into your report. If you are filing the issue in a bug tracker then attach them to the ticket. If you report the issue by mail do not attach them, as that makes the mail too large; instead do one of these things:Y}(hjuhjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMqhjhhubj)}(hhh]j)}(hhh](j)}(hXUpload the files somewhere public (your website, a public file paste service, a ticket created just for this purpose on `bugzilla.kernel.org `_, ...) and include a link to them in your report. Ideally use something where the files stay available for years, as they could be useful to someone many years from now; this for example can happen if five or ten years from now a developer works on some code that was changed just to fix your issue. h]h)}(hXUpload the files somewhere public (your website, a public file paste service, a ticket created just for this purpose on `bugzilla.kernel.org `_, ...) and include a link to them in your report. Ideally use something where the files stay available for years, as they could be useful to someone many years from now; this for example can happen if five or ten years from now a developer works on some code that was changed just to fix your issue.h](hxUpload the files somewhere public (your website, a public file paste service, a ticket created just for this purpose on }(hxUpload the files somewhere public (your website, a public file paste service, a ticket created just for this purpose on hjhhhNhNubh)}(h5`bugzilla.kernel.org `_h]hbugzilla.kernel.org}(hbugzilla.kernel.orghjhhhNhNubah}(h]h ]h"]h$]h&]namejjhttps://bugzilla.kernel.org/uh1hhjubj)}(h h]h}(h]id5ah ]h"]h$]bugzilla.kernel.orgah&]refurijuh1jjKhjubhX+, ...) and include a link to them in your report. Ideally use something where the files stay available for years, as they could be useful to someone many years from now; this for example can happen if five or ten years from now a developer works on some code that was changed just to fix your issue.}(hX+, ...) and include a link to them in your report. Ideally use something where the files stay available for years, as they could be useful to someone many years from now; this for example can happen if five or ten years from now a developer works on some code that was changed just to fix your issue.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hPut the files aside and mention you will send them later in individual replies to your own mail. Just remember to actually do that once the report went out. ;-) h]h)}(hPut the files aside and mention you will send them later in individual replies to your own mail. Just remember to actually do that once the report went out. ;-)h]hPut the files aside and mention you will send them later in individual replies to your own mail. Just remember to actually do that once the report went out. ;-)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM~hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhMvhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(h]!things-each-report-should-mentionah ]h"]!things each report should mentionah$]h&]uh1hhjhhhhhMMubh)}(hhh](h)}(h$Things that might be wise to provideh]h$Things that might be wise to provide}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(h|Depending on the issue you might need to add more background data. Here are a few suggestions what often is good to provide:h]h|Depending on the issue you might need to add more background data. Here are a few suggestions what often is good to provide:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh]j)}(hhh](j)}(hIf you are dealing with a 'warning', an 'OOPS' or a 'panic' from the kernel, include it. If you can't copy'n'paste it, try to capture a netconsole trace or at least take a picture of the screen. h]h)}(hIf you are dealing with a 'warning', an 'OOPS' or a 'panic' from the kernel, include it. If you can't copy'n'paste it, try to capture a netconsole trace or at least take a picture of the screen.h]hIf you are dealing with a ‘warning’, an ‘OOPS’ or a ‘panic’ from the kernel, include it. If you can’t copy’n’paste it, try to capture a netconsole trace or at least take a picture of the screen.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hX/If the issue might be related to your computer hardware, mention what kind of system you use. If you for example have problems with your graphics card, mention its manufacturer, the card's model, and what chip is uses. If it's a laptop mention its name, but try to make sure it's meaningful. 'Dell XPS 13' for example is not, because it might be the one from 2012; that one looks not that different from the one sold today, but apart from that the two have nothing in common. Hence, in such cases add the exact model number, which for example are '9380' or '7390' for XPS 13 models introduced during 2019. Names like 'Lenovo Thinkpad T590' are also somewhat ambiguous: there are variants of this laptop with and without a dedicated graphics chip, so try to find the exact model name or specify the main components. h]h)}(hX.If the issue might be related to your computer hardware, mention what kind of system you use. If you for example have problems with your graphics card, mention its manufacturer, the card's model, and what chip is uses. If it's a laptop mention its name, but try to make sure it's meaningful. 'Dell XPS 13' for example is not, because it might be the one from 2012; that one looks not that different from the one sold today, but apart from that the two have nothing in common. Hence, in such cases add the exact model number, which for example are '9380' or '7390' for XPS 13 models introduced during 2019. Names like 'Lenovo Thinkpad T590' are also somewhat ambiguous: there are variants of this laptop with and without a dedicated graphics chip, so try to find the exact model name or specify the main components.h]hXDIf the issue might be related to your computer hardware, mention what kind of system you use. If you for example have problems with your graphics card, mention its manufacturer, the card’s model, and what chip is uses. If it’s a laptop mention its name, but try to make sure it’s meaningful. ‘Dell XPS 13’ for example is not, because it might be the one from 2012; that one looks not that different from the one sold today, but apart from that the two have nothing in common. Hence, in such cases add the exact model number, which for example are ‘9380’ or ‘7390’ for XPS 13 models introduced during 2019. Names like ‘Lenovo Thinkpad T590’ are also somewhat ambiguous: there are variants of this laptop with and without a dedicated graphics chip, so try to find the exact model name or specify the main components.}(hj2hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXMention the relevant software in use. If you have problems with loading modules, you want to mention the versions of kmod, systemd, and udev in use. If one of the DRM drivers misbehaves, you want to state the versions of libdrm and Mesa; also specify your Wayland compositor or the X-Server and its driver. If you have a filesystem issue, mention the version of corresponding filesystem utilities (e2fsprogs, btrfs-progs, xfsprogs, ...). h]h)}(hXMention the relevant software in use. If you have problems with loading modules, you want to mention the versions of kmod, systemd, and udev in use. If one of the DRM drivers misbehaves, you want to state the versions of libdrm and Mesa; also specify your Wayland compositor or the X-Server and its driver. If you have a filesystem issue, mention the version of corresponding filesystem utilities (e2fsprogs, btrfs-progs, xfsprogs, ...).h]hXMention the relevant software in use. If you have problems with loading modules, you want to mention the versions of kmod, systemd, and udev in use. If one of the DRM drivers misbehaves, you want to state the versions of libdrm and Mesa; also specify your Wayland compositor or the X-Server and its driver. If you have a filesystem issue, mention the version of corresponding filesystem utilities (e2fsprogs, btrfs-progs, xfsprogs, ...).}(hjJhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjDubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hXGather additional information from the kernel that might be of interest. The output from ``lspci -nn`` will for example help others to identify what hardware you use. If you have a problem with hardware you even might want to make the output from ``sudo lspci -vvv`` available, as that provides insights how the components were configured. For some issues it might be good to include the contents of files like ``/proc/cpuinfo``, ``/proc/ioports``, ``/proc/iomem``, ``/proc/modules``, or ``/proc/scsi/scsi``. Some subsystem also offer tools to collect relevant information. One such tool is ``alsa-info.sh`` `which the audio/sound subsystem developers provide `_. h]h)}(hXGather additional information from the kernel that might be of interest. The output from ``lspci -nn`` will for example help others to identify what hardware you use. If you have a problem with hardware you even might want to make the output from ``sudo lspci -vvv`` available, as that provides insights how the components were configured. For some issues it might be good to include the contents of files like ``/proc/cpuinfo``, ``/proc/ioports``, ``/proc/iomem``, ``/proc/modules``, or ``/proc/scsi/scsi``. Some subsystem also offer tools to collect relevant information. One such tool is ``alsa-info.sh`` `which the audio/sound subsystem developers provide `_.h](hYGather additional information from the kernel that might be of interest. The output from }(hYGather additional information from the kernel that might be of interest. The output from hj`hhhNhNubj)}(h ``lspci -nn``h]h lspci -nn}(hhhjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh will for example help others to identify what hardware you use. If you have a problem with hardware you even might want to make the output from }(h will for example help others to identify what hardware you use. If you have a problem with hardware you even might want to make the output from hj`hhhNhNubj)}(h``sudo lspci -vvv``h]hsudo lspci -vvv}(hhhj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh available, as that provides insights how the components were configured. For some issues it might be good to include the contents of files like }(h available, as that provides insights how the components were configured. For some issues it might be good to include the contents of files like hj`hhhNhNubj)}(h``/proc/cpuinfo``h]h /proc/cpuinfo}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh, }(h, hj`hhhNhNubj)}(h``/proc/ioports``h]h /proc/ioports}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh, }(h, hj`hhhNhNubj)}(h``/proc/iomem``h]h /proc/iomem}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh, }(hjhj`ubj)}(h``/proc/modules``h]h /proc/modules}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh, or }(h, or hj`hhhNhNubj)}(h``/proc/scsi/scsi``h]h/proc/scsi/scsi}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubhT. Some subsystem also offer tools to collect relevant information. One such tool is }(hT. Some subsystem also offer tools to collect relevant information. One such tool is hj`hhhNhNubj)}(h``alsa-info.sh``h]h alsa-info.sh}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh }(h hj`hhhNhNubh)}(hb`which the audio/sound subsystem developers provide `_h]h2which the audio/sound subsystem developers provide}(h2which the audio/sound subsystem developers providehjhhhNhNubah}(h]h ]h"]h$]h&]name2which the audio/sound subsystem developers providej*https://www.alsa-project.org/wiki/AlsaInfouh1hhj`ubj)}(h- h]h}(h]2which-the-audio-sound-subsystem-developers-provideah ]h"]2which the audio/sound subsystem developers provideah$]h&]refurijuh1jjKhj`ubh.}(hjhj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj\ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hXqThose examples should give your some ideas of what data might be wise to attach, but you have to think yourself what will be helpful for others to know. Don't worry too much about forgetting something, as developers will ask for additional details they need. But making everything important available from the start increases the chance someone will take a closer look.h]hXsThose examples should give your some ideas of what data might be wise to attach, but you have to think yourself what will be helpful for others to know. Don’t worry too much about forgetting something, as developers will ask for additional details they need. But making everything important available from the start increases the chance someone will take a closer look.}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]$things-that-might-be-wise-to-provideah ]h"]$things that might be wise to provideah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h+The important part: the head of your reporth]h+The important part: the head of your report}(hjVhjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhhhhhMubh)}(hXNow that you have the detailed part of the report prepared let's get to the most important section: the first few sentences. Thus go to the top, add something like 'The detailed description:' before the part you just wrote and insert two newlines at the top. Now write one normal length paragraph that describes the issue roughly. Leave out all boring details and focus on the crucial parts readers need to know to understand what this is all about; if you think this bug affects a lot of users, mention this to get people interested.h]hXNow that you have the detailed part of the report prepared let’s get to the most important section: the first few sentences. Thus go to the top, add something like ‘The detailed description:’ before the part you just wrote and insert two newlines at the top. Now write one normal length paragraph that describes the issue roughly. Leave out all boring details and focus on the crucial parts readers need to know to understand what this is all about; if you think this bug affects a lot of users, mention this to get people interested.}(hjdhjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjQhhubh)}(hOnce you did that insert two more lines at the top and write a one sentence summary that explains quickly what the report is about. After that you have to get even more abstract and write an even shorter subject/title for the report.h]hOnce you did that insert two more lines at the top and write a one sentence summary that explains quickly what the report is about. After that you have to get even more abstract and write an even shorter subject/title for the report.}(hjrhjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjQhhubh)}(hNow that you have written this part take some time to optimize it, as it is the most important parts of your report: a lot of people will only read this before they decide if reading the rest is time well spent.h]hNow that you have written this part take some time to optimize it, as it is the most important parts of your report: a lot of people will only read this before they decide if reading the rest is time well spent.}(hjhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjQhhubh)}(hNow send or file the report like the :ref:`MAINTAINERS ` file told you, unless it's one of those 'issues of high priority' outlined earlier: in that case please read the next subsection first before sending the report on its way.h](h%Now send or file the report like the }(h%Now send or file the report like the hjhhhNhNubh)}(h :ref:`MAINTAINERS `h]j)}(hjh]h MAINTAINERS}(hhhjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj maintainersuh1hhhhMhjubh file told you, unless it’s one of those ‘issues of high priority’ outlined earlier: in that case please read the next subsection first before sending the report on its way.}(h file told you, unless it's one of those 'issues of high priority' outlined earlier: in that case please read the next subsection first before sending the report on its way.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjQhhubeh}(h]*the-important-part-the-head-of-your-reportah ]h"]+the important part: the head of your reportah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(h)Special handling for high priority issuesh]h)Special handling for high priority issues}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(h7Reports for high priority issues need special handling.h]h7Reports for high priority issues need special handling.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hu**Severe issues**: make sure the subject or ticket title as well as the first paragraph makes the severeness obvious.h](j')}(h**Severe issues**h]h Severe issues}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubhd: make sure the subject or ticket title as well as the first paragraph makes the severeness obvious.}(hd: make sure the subject or ticket title as well as the first paragraph makes the severeness obvious.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hE**Regressions**: make the report's subject start with '[REGRESSION]'.h](j')}(h**Regressions**h]h Regressions}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubh<: make the report’s subject start with ‘[REGRESSION]’.}(h6: make the report's subject start with '[REGRESSION]'.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXsIn case you performed a successful bisection, use the title of the change that introduced the regression as the second part of your subject. Make the report also mention the commit id of the culprit. In case of an unsuccessful bisection, make your report mention the latest tested version that's working fine (say 5.7) and the oldest where the issue occurs (say 5.8-rc1).h]hXuIn case you performed a successful bisection, use the title of the change that introduced the regression as the second part of your subject. Make the report also mention the commit id of the culprit. In case of an unsuccessful bisection, make your report mention the latest tested version that’s working fine (say 5.7) and the oldest where the issue occurs (say 5.8-rc1).}(hj#hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXWhen sending the report by mail, CC the Linux regressions mailing list (regressions@lists.linux.dev). In case the report needs to be filed to some web tracker, proceed to do so. Once filed, forward the report by mail to the regressions list; CC the maintainer and the mailing list for the subsystem in question. Make sure to inline the forwarded report, hence do not attach it. Also add a short note at the top where you mention the URL to the ticket.h](hHWhen sending the report by mail, CC the Linux regressions mailing list (}(hHWhen sending the report by mail, CC the Linux regressions mailing list (hj/hhhNhNubh)}(hregressions@lists.linux.devh]hregressions@lists.linux.dev}(hhhj8hhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:regressions@lists.linux.devuh1hhj/ubhX`). In case the report needs to be filed to some web tracker, proceed to do so. Once filed, forward the report by mail to the regressions list; CC the maintainer and the mailing list for the subsystem in question. Make sure to inline the forwarded report, hence do not attach it. Also add a short note at the top where you mention the URL to the ticket.}(hX`). In case the report needs to be filed to some web tracker, proceed to do so. Once filed, forward the report by mail to the regressions list; CC the maintainer and the mailing list for the subsystem in question. Make sure to inline the forwarded report, hence do not attach it. Also add a short note at the top where you mention the URL to the ticket.hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hWhen mailing or forwarding the report, in case of a successful bisection add the author of the culprit to the recipients; also CC everyone in the signed-off-by chain, which you find at the end of its commit message.h]hWhen mailing or forwarding the report, in case of a successful bisection add the author of the culprit to the recipients; also CC everyone in the signed-off-by chain, which you find at the end of its commit message.}(hjUhjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hX:**Security issues**: for these issues your will have to evaluate if a short-term risk to other users would arise if details were publicly disclosed. If that's not the case simply proceed with reporting the issue as described. For issues that bear such a risk you will need to adjust the reporting process slightly:h](j')}(h**Security issues**h]hSecurity issues}(hhhjehhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjaubhX): for these issues your will have to evaluate if a short-term risk to other users would arise if details were publicly disclosed. If that’s not the case simply proceed with reporting the issue as described. For issues that bear such a risk you will need to adjust the reporting process slightly:}(hX': for these issues your will have to evaluate if a short-term risk to other users would arise if details were publicly disclosed. If that's not the case simply proceed with reporting the issue as described. For issues that bear such a risk you will need to adjust the reporting process slightly:hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh]j)}(hhh](j)}(hhIf the MAINTAINERS file instructed you to report the issue by mail, do not CC any public mailing lists. h]h)}(hgIf the MAINTAINERS file instructed you to report the issue by mail, do not CC any public mailing lists.h]hgIf the MAINTAINERS file instructed you to report the issue by mail, do not CC any public mailing lists.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hX If you were supposed to file the issue in a bug tracker make sure to mark the ticket as 'private' or 'security issue'. If the bug tracker does not offer a way to keep reports private, forget about it and send your report as a private mail to the maintainers instead. h]h)}(hX If you were supposed to file the issue in a bug tracker make sure to mark the ticket as 'private' or 'security issue'. If the bug tracker does not offer a way to keep reports private, forget about it and send your report as a private mail to the maintainers instead.h]hXIf you were supposed to file the issue in a bug tracker make sure to mark the ticket as ‘private’ or ‘security issue’. If the bug tracker does not offer a way to keep reports private, forget about it and send your report as a private mail to the maintainers instead.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhMhj~ubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hXjIn both cases make sure to also mail your report to the addresses the MAINTAINERS file lists in the section 'security contact'. Ideally directly CC them when sending the report by mail. If you filed it in a bug tracker, forward the report's text to these addresses; but on top of it put a small note where you mention that you filed it with a link to the ticket.h]hXpIn both cases make sure to also mail your report to the addresses the MAINTAINERS file lists in the section ‘security contact’. Ideally directly CC them when sending the report by mail. If you filed it in a bug tracker, forward the report’s text to these addresses; but on top of it put a small note where you mention that you filed it with a link to the ticket.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hASee Documentation/process/security-bugs.rst for more information.h]hASee Documentation/process/security-bugs.rst for more information.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h])special-handling-for-high-priority-issuesah ]h"])special handling for high priority issuesah$]h&]uh1hhjhhhhhMubeh}(h]write-and-send-the-reportah ]h"]write and send the reportah$]h&]uh1hhjhhhhhM-ubh)}(hhh](h)}(h Duties after the report went outh]h Duties after the report went out}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hX*Wait for reactions and keep the thing rolling until you can accept the outcome in one way or the other. Thus react publicly and in a timely manner to any inquiries. Test proposed fixes. Do proactive testing: retest with at least every first release candidate (RC) of a new mainline version and report your results. Send friendly reminders if things stall. And try to help yourself, if you don't get any help or if it's unsatisfying.*h]j)}(hjh]hXWait for reactions and keep the thing rolling until you can accept the outcome in one way or the other. Thus react publicly and in a timely manner to any inquiries. Test proposed fixes. Do proactive testing: retest with at least every first release candidate (RC) of a new mainline version and report your results. Send friendly reminders if things stall. And try to help yourself, if you don’t get any help or if it’s unsatisfying.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXIf your report was good and you are really lucky then one of the developers might immediately spot what's causing the issue; they then might write a patch to fix it, test it, and send it straight for integration in mainline while tagging it for later backport to stable and longterm kernels that need it. Then all you need to do is reply with a 'Thank you very much' and switch to a version with the fix once it gets released.h]hXIf your report was good and you are really lucky then one of the developers might immediately spot what’s causing the issue; they then might write a patch to fix it, test it, and send it straight for integration in mainline while tagging it for later backport to stable and longterm kernels that need it. Then all you need to do is reply with a ‘Thank you very much’ and switch to a version with the fix once it gets released.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXDBut this ideal scenario rarely happens. That's why the job is only starting once you got the report out. What you'll have to do depends on the situations, but often it will be the things listed below. But before digging into the details, here are a few important things you need to keep in mind for this part of the process.h]hXHBut this ideal scenario rarely happens. That’s why the job is only starting once you got the report out. What you’ll have to do depends on the situations, but often it will be the things listed below. But before digging into the details, here are a few important things you need to keep in mind for this part of the process.}(hj-hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjhhubh)}(hhh](h)}(h'General advice for further interactionsh]h'General advice for further interactions}(hj>hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhMubh)}(hX**Always reply in public**: When you filed the issue in a bug tracker, always reply there and do not contact any of the developers privately about it. For mailed reports always use the 'Reply-all' function when replying to any mails you receive. That includes mails with any additional data you might want to add to your report: go to your mail applications 'Sent' folder and use 'reply-all' on your mail with the report. This approach will make sure the public mailing list(s) and everyone else that gets involved over time stays in the loop; it also keeps the mail thread intact, which among others is really important for mailing lists to group all related mails together.h](j')}(h**Always reply in public**h]hAlways reply in public}(hhhjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjJubhX: When you filed the issue in a bug tracker, always reply there and do not contact any of the developers privately about it. For mailed reports always use the ‘Reply-all’ function when replying to any mails you receive. That includes mails with any additional data you might want to add to your report: go to your mail applications ‘Sent’ folder and use ‘reply-all’ on your mail with the report. This approach will make sure the public mailing list(s) and everyone else that gets involved over time stays in the loop; it also keeps the mail thread intact, which among others is really important for mailing lists to group all related mails together.}(hX: When you filed the issue in a bug tracker, always reply there and do not contact any of the developers privately about it. For mailed reports always use the 'Reply-all' function when replying to any mails you receive. That includes mails with any additional data you might want to add to your report: go to your mail applications 'Sent' folder and use 'reply-all' on your mail with the report. This approach will make sure the public mailing list(s) and everyone else that gets involved over time stays in the loop; it also keeps the mail thread intact, which among others is really important for mailing lists to group all related mails together.hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj9hhubh)}(h^There are just two situations where a comment in a bug tracker or a 'Reply-all' is unsuitable:h]hbThere are just two situations where a comment in a bug tracker or a ‘Reply-all’ is unsuitable:}(hjihjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj9hhubj)}(hhh]j)}(hhh](j)}(h/Someone tells you to send something privately. h]h)}(h.Someone tells you to send something privately.h]h.Someone tells you to send something privately.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hj{ubah}(h]h ]h"]h$]h&]uh1jhjxubj)}(hX#You were told to send something, but noticed it contains sensitive information that needs to be kept private. In that case it's okay to send it in private to the developer that asked for it. But note in the ticket or a mail that you did that, so everyone else knows you honored the request. h]h)}(hX"You were told to send something, but noticed it contains sensitive information that needs to be kept private. In that case it's okay to send it in private to the developer that asked for it. But note in the ticket or a mail that you did that, so everyone else knows you honored the request.h]hX$You were told to send something, but noticed it contains sensitive information that needs to be kept private. In that case it’s okay to send it in private to the developer that asked for it. But note in the ticket or a mail that you did that, so everyone else knows you honored the request.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]jjuh1jhhhM#hjuubah}(h]h ]h"]h$]h&]uh1jhj9hhhNhNubh)}(hX**Do research before asking for clarifications or help**: In this part of the process someone might tell you to do something that requires a skill you might not have mastered yet. For example, you might be asked to use some test tools you never have heard of yet; or you might be asked to apply a patch to the Linux kernel sources to test if it helps. In some cases it will be fine sending a reply asking for instructions how to do that. But before going that route try to find the answer own your own by searching the internet; alternatively consider asking in other places for advice. For example ask a friend or post about it to a chatroom or forum you normally hang out.h](j')}(h8**Do research before asking for clarifications or help**h]h4Do research before asking for clarifications or help}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubhXj: In this part of the process someone might tell you to do something that requires a skill you might not have mastered yet. For example, you might be asked to use some test tools you never have heard of yet; or you might be asked to apply a patch to the Linux kernel sources to test if it helps. In some cases it will be fine sending a reply asking for instructions how to do that. But before going that route try to find the answer own your own by searching the internet; alternatively consider asking in other places for advice. For example ask a friend or post about it to a chatroom or forum you normally hang out.}(hXj: In this part of the process someone might tell you to do something that requires a skill you might not have mastered yet. For example, you might be asked to use some test tools you never have heard of yet; or you might be asked to apply a patch to the Linux kernel sources to test if it helps. In some cases it will be fine sending a reply asking for instructions how to do that. But before going that route try to find the answer own your own by searching the internet; alternatively consider asking in other places for advice. For example ask a friend or post about it to a chatroom or forum you normally hang out.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM*hj9hhubh)}(hX$**Be patient**: If you are really lucky you might get a reply to your report within a few hours. But most of the time it will take longer, as maintainers are scattered around the globe and thus might be in a different time zone – one where they already enjoy their night away from keyboard.h](j')}(h**Be patient**h]h Be patient}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubhX: If you are really lucky you might get a reply to your report within a few hours. But most of the time it will take longer, as maintainers are scattered around the globe and thus might be in a different time zone – one where they already enjoy their night away from keyboard.}(hX: If you are really lucky you might get a reply to your report within a few hours. But most of the time it will take longer, as maintainers are scattered around the globe and thus might be in a different time zone – one where they already enjoy their night away from keyboard.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM4hj9hhubh)}(hIn general, kernel developers will take one to five business days to respond to reports. Sometimes it will take longer, as they might be busy with the merge windows, other work, visiting developer conferences, or simply enjoying a long summer holiday.h]hIn general, kernel developers will take one to five business days to respond to reports. Sometimes it will take longer, as they might be busy with the merge windows, other work, visiting developer conferences, or simply enjoying a long summer holiday.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hj9hhubh)}(hXThe 'issues of high priority' (see above for an explanation) are an exception here: maintainers should address them as soon as possible; that's why you should wait a week at maximum (or just two days if it's something urgent) before sending a friendly reminder.h]hX The ‘issues of high priority’ (see above for an explanation) are an exception here: maintainers should address them as soon as possible; that’s why you should wait a week at maximum (or just two days if it’s something urgent) before sending a friendly reminder.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM>hj9hhubh)}(hX:Sometimes the maintainer might not be responding in a timely manner; other times there might be disagreements, for example if an issue qualifies as regression or not. In such cases raise your concerns on the mailing list and ask others for public or private replies how to move on. If that fails, it might be appropriate to get a higher authority involved. In case of a WiFi driver that would be the wireless maintainers; if there are no higher level maintainers or all else fails, it might be one of those rare situations where it's okay to get Linus Torvalds involved.h]hX<Sometimes the maintainer might not be responding in a timely manner; other times there might be disagreements, for example if an issue qualifies as regression or not. In such cases raise your concerns on the mailing list and ask others for public or private replies how to move on. If that fails, it might be appropriate to get a higher authority involved. In case of a WiFi driver that would be the wireless maintainers; if there are no higher level maintainers or all else fails, it might be one of those rare situations where it’s okay to get Linus Torvalds involved.}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj9hhubh)}(hX**Proactive testing**: Every time the first pre-release (the 'rc1') of a new mainline kernel version gets released, go and check if the issue is fixed there or if anything of importance changed. Mention the outcome in the ticket or in a mail you sent as reply to your report (make sure it has all those in the CC that up to that point participated in the discussion). This will show your commitment and that you are willing to help. It also tells developers if the issue persists and makes sure they do not forget about it. A few other occasional retests (for example with rc3, rc5 and the final) are also a good idea, but only report your results if something relevant changed or if you are writing something anyway.h](j')}(h**Proactive testing**h]hProactive testing}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubhX: Every time the first pre-release (the ‘rc1’) of a new mainline kernel version gets released, go and check if the issue is fixed there or if anything of importance changed. Mention the outcome in the ticket or in a mail you sent as reply to your report (make sure it has all those in the CC that up to that point participated in the discussion). This will show your commitment and that you are willing to help. It also tells developers if the issue persists and makes sure they do not forget about it. A few other occasional retests (for example with rc3, rc5 and the final) are also a good idea, but only report your results if something relevant changed or if you are writing something anyway.}(hX: Every time the first pre-release (the 'rc1') of a new mainline kernel version gets released, go and check if the issue is fixed there or if anything of importance changed. Mention the outcome in the ticket or in a mail you sent as reply to your report (make sure it has all those in the CC that up to that point participated in the discussion). This will show your commitment and that you are willing to help. It also tells developers if the issue persists and makes sure they do not forget about it. A few other occasional retests (for example with rc3, rc5 and the final) are also a good idea, but only report your results if something relevant changed or if you are writing something anyway.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMLhj9hhubh)}(hWith all these general things off the table let's get into the details of how to help to get issues resolved once they were reported.h]hWith all these general things off the table let’s get into the details of how to help to get issues resolved once they were reported.}(hj:hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhj9hhubeh}(h]'general-advice-for-further-interactionsah ]h"]'general advice for further interactionsah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hInquires and testing requesth]hInquires and testing request}(hjShjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhhhhhM[ubh)}(h`_ for reports about an issue like yours. If you find any matches, consider joining the discussion, unless the fix is already finished and scheduled to get applied soon.h](hOMaybe the issue you face is already known and was fixed or is about to. Hence, }(hOMaybe the issue you face is already known and was fixed or is about to. Hence, hjhhhNhNubh)}(hY`search the archives of the Linux stable mailing list `_h]h4search the archives of the Linux stable mailing list}(h4search the archives of the Linux stable mailing listhj hhhNhNubah}(h]h ]h"]h$]h&]name4search the archives of the Linux stable mailing listjhttps://lore.kernel.org/stable/uh1hhjubj)}(h" h]h}(h]4search-the-archives-of-the-linux-stable-mailing-listah ]h"]4search the archives of the linux stable mailing listah$]h&]refurijuh1jjKhjubh for reports about an issue like yours. If you find any matches, consider joining the discussion, unless the fix is already finished and scheduled to get applied soon.}(h for reports about an issue like yours. If you find any matches, consider joining the discussion, unless the fix is already finished and scheduled to get applied soon.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]search-stable-mailing-listah ]h"]search stable mailing listah$]h&]uh1hhj]hhhhhMubh)}(hhh](h)}(h'Reproduce issue with the newest releaseh]h'Reproduce issue with the newest release}(hjBhj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hhhhhMubj)}(hhh]h)}(hXI*Install the latest release from the particular version line as a vanilla kernel. Ensure this kernel is not tainted and still shows the problem, as the issue might have already been fixed there. If you first noticed the problem with a vendor kernel, check a vanilla build of the last version known to work performs fine as well.*h]j)}(hjSh]hXGInstall the latest release from the particular version line as a vanilla kernel. Ensure this kernel is not tainted and still shows the problem, as the issue might have already been fixed there. If you first noticed the problem with a vendor kernel, check a vanilla build of the last version known to work performs fine as well.}(hhhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhhhMhjNubah}(h]h ]h"]h$]h&]uh1jhj=hhhhhNubh)}(hXFBefore investing any more time in this process you want to check if the issue was already fixed in the latest release of version line you're interested in. This kernel needs to be vanilla and shouldn't be tainted before the issue happens, as detailed outlined already above in the section "Install a fresh kernel for testing".h]hXNBefore investing any more time in this process you want to check if the issue was already fixed in the latest release of version line you’re interested in. This kernel needs to be vanilla and shouldn’t be tainted before the issue happens, as detailed outlined already above in the section “Install a fresh kernel for testing”.}(hjphjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj=hhubh)}(hXDid you first notice the regression with a vendor kernel? Then changes the vendor applied might be interfering. You need to rule that out by performing a recheck. Say something broke when you updated from 5.10.4-vendor.42 to 5.10.5-vendor.43. Then after testing the latest 5.10 release as outlined in the previous paragraph check if a vanilla build of Linux 5.10.4 works fine as well. If things are broken there, the issue does not qualify as upstream regression and you need switch back to the main step-by-step guide to report the issue.ޫh]hXDid you first notice the regression with a vendor kernel? Then changes the vendor applied might be interfering. You need to rule that out by performing a recheck. Say something broke when you updated from 5.10.4-vendor.42 to 5.10.5-vendor.43. Then after testing the latest 5.10 release as outlined in the previous paragraph check if a vanilla build of Linux 5.10.4 works fine as well. If things are broken there, the issue does not qualify as upstream regression and you need switch back to the main step-by-step guide to report the issue.}(hj~hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj=hhubeh}(h]'reproduce-issue-with-the-newest-releaseah ]h"]'reproduce issue with the newest releaseah$]h&]uh1hhj]hhhhhMubh)}(hhh](h)}(hReport the regressionh]hReport the regression}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubj)}(hhh]h)}(hX*Send a short problem report to the Linux stable mailing list (stable@vger.kernel.org) and CC the Linux regressions mailing list (regressions@lists.linux.dev); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that's working fine. Then wait for further instructions.*h]j)}(hjh]hXSend a short problem report to the Linux stable mailing list (stable@vger.kernel.org) and CC the Linux regressions mailing list (regressions@lists.linux.dev); if you suspect the cause in a particular subsystem, CC its maintainer and its mailing list. Roughly describe the issue and ideally explain how to reproduce it. Mention the first version that shows the problem and the last version that’s working fine. Then wait for further instructions.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXWhen reporting a regression that happens within a stable or longterm kernel line (say when updating from 5.10.4 to 5.10.5) a brief report is enough for the start to get the issue reported quickly. Hence a rough description to the stable and regressions mailing list is all it takes; but in case you suspect the cause in a particular subsystem, CC its maintainers and its mailing list as well, because that will speed things up.h]hXWhen reporting a regression that happens within a stable or longterm kernel line (say when updating from 5.10.4 to 5.10.5) a brief report is enough for the start to get the issue reported quickly. Hence a rough description to the stable and regressions mailing list is all it takes; but in case you suspect the cause in a particular subsystem, CC its maintainers and its mailing list as well, because that will speed things up.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXAnd note, it helps developers a great deal if you can specify the exact version that introduced the problem. Hence if possible within a reasonable time frame, try to find that version using vanilla kernels. Lets assume something broke when your distributor released a update from Linux kernel 5.10.5 to 5.10.8. Then as instructed above go and check the latest kernel from that version line, say 5.10.9. If it shows the problem, try a vanilla 5.10.5 to ensure that no patches the distributor applied interfere. If the issue doesn't manifest itself there, try 5.10.7 and then (depending on the outcome) 5.10.8 or 5.10.6 to find the first version where things broke. Mention it in the report and state that 5.10.9 is still broken.h]hXAnd note, it helps developers a great deal if you can specify the exact version that introduced the problem. Hence if possible within a reasonable time frame, try to find that version using vanilla kernels. Lets assume something broke when your distributor released a update from Linux kernel 5.10.5 to 5.10.8. Then as instructed above go and check the latest kernel from that version line, say 5.10.9. If it shows the problem, try a vanilla 5.10.5 to ensure that no patches the distributor applied interfere. If the issue doesn’t manifest itself there, try 5.10.7 and then (depending on the outcome) 5.10.8 or 5.10.6 to find the first version where things broke. Mention it in the report and state that 5.10.9 is still broken.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hXWhat the previous paragraph outlines is basically a rough manual 'bisection'. Once your report is out your might get asked to do a proper one, as it allows to pinpoint the exact change that causes the issue (which then can easily get reverted to fix the issue quickly). Hence consider to do a proper bisection right away if time permits. See the section 'Special care for regressions' and the document Documentation/admin-guide/bug-bisect.rst for details how to perform one. In case of a successful bisection add the author of the culprit to the recipients; also CC everyone in the signed-off-by chain, which you find at the end of its commit message.h]hXWhat the previous paragraph outlines is basically a rough manual ‘bisection’. Once your report is out your might get asked to do a proper one, as it allows to pinpoint the exact change that causes the issue (which then can easily get reverted to fix the issue quickly). Hence consider to do a proper bisection right away if time permits. See the section ‘Special care for regressions’ and the document Documentation/admin-guide/bug-bisect.rst for details how to perform one. In case of a successful bisection add the author of the culprit to the recipients; also CC everyone in the signed-off-by chain, which you find at the end of its commit message.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]report-the-regressionah ]h"]report the regressionah$]h&]uh1hhj]hhhhhMubeh}(h]Lreference-for-reporting-regressions-within-a-stable-and-longterm-kernel-lineah ]h"]Nreference for "reporting regressions within a stable and longterm kernel line"ah$]h&]uh1hhjhhhhhMubh)}(hhh](h)}(hMReference for "Reporting issues only occurring in older kernel version lines"h]hQReference for “Reporting issues only occurring in older kernel version lines”}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hThis section provides details for the steps you need to take if you could not reproduce your issue with a mainline kernel, but want to see it fixed in older version lines (aka stable and longterm kernels).h]hThis section provides details for the steps you need to take if you could not reproduce your issue with a mainline kernel, but want to see it fixed in older version lines (aka stable and longterm kernels).}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hjhhubh)}(hhh](h)}(hSome fixes are too complexh]hSome fixes are too complex}(hj!hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM&ubj)}(hhh]h)}(h*Prepare yourself for the possibility that going through the next few steps might not get the issue solved in older releases: the fix might be too big or risky to get backported there.*h]j)}(hj2h]hPrepare yourself for the possibility that going through the next few steps might not get the issue solved in older releases: the fix might be too big or risky to get backported there.}(hhhj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhhhM(hj-ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hX.Even small and seemingly obvious code-changes sometimes introduce new and totally unexpected problems. The maintainers of the stable and longterm kernels are very aware of that and thus only apply changes to these kernels that are within rules outlined in Documentation/process/stable-kernel-rules.rst.h]hX.Even small and seemingly obvious code-changes sometimes introduce new and totally unexpected problems. The maintainers of the stable and longterm kernels are very aware of that and thus only apply changes to these kernels that are within rules outlined in Documentation/process/stable-kernel-rules.rst.}(hjOhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hjhhubh)}(hXComplex or risky changes for example do not qualify and thus only get applied to mainline. Other fixes are easy to get backported to the newest stable and longterm kernels, but too risky to integrate into older ones. So be aware the fix you are hoping for might be one of those that won't be backported to the version line your care about. In that case you'll have no other choice then to live with the issue or switch to a newer Linux version, unless you want to patch the fix into your kernels yourself.h]hXComplex or risky changes for example do not qualify and thus only get applied to mainline. Other fixes are easy to get backported to the newest stable and longterm kernels, but too risky to integrate into older ones. So be aware the fix you are hoping for might be one of those that won’t be backported to the version line your care about. In that case you’ll have no other choice then to live with the issue or switch to a newer Linux version, unless you want to patch the fix into your kernels yourself.}(hj]hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjhhubeh}(h]some-fixes-are-too-complexah ]h"]some fixes are too complexah$]h&]uh1hhjhhhhhM&ubh)}(hhh](h)}(hCommon preparationsh]hCommon preparations}(hjvhjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhhhhhM:ubj)}(hhh]h)}(hu*Perform the first three steps in the section "Reporting issues only occurring in older kernel version lines" above.*h]j)}(hjh]hwPerform the first three steps in the section “Reporting issues only occurring in older kernel version lines” above.}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM<hjubah}(h]h ]h"]h$]h&]uh1jhjqhhhhhNubh)}(hoYou need to carry out a few steps already described in another section of this guide. Those steps will let you:h]hoYou need to carry out a few steps already described in another section of this guide. Those steps will let you:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjqhhubj)}(hhh]j)}(hhh](j)}(h\Check if the kernel developers still maintain the Linux kernel version line you care about. h]h)}(h[Check if the kernel developers still maintain the Linux kernel version line you care about.h]h[Check if the kernel developers still maintain the Linux kernel version line you care about.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMBhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h:Search the Linux stable mailing list for exiting reports. h]h)}(h9Search the Linux stable mailing list for exiting reports.h]h9Search the Linux stable mailing list for exiting reports.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h Check with the latest release. h]h)}(hCheck with the latest release.h]hCheck with the latest release.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhMBhjubah}(h]h ]h"]h$]h&]uh1jhjqhhhNhNubeh}(h]common-preparationsah ]h"]common preparationsah$]h&]uh1hhjhhhhhM:ubh)}(hhh](h)}(h6Check code history and search for existing discussionsh]h6Check code history and search for existing discussions}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMKubj)}(hhh]h)}(hX*Search the Linux kernel version control system for the change that fixed the issue in mainline, as its commit message might tell you if the fix is scheduled for backporting already. If you don't find anything that way, search the appropriate mailing lists for posts that discuss such an issue or peer-review possible fixes; then check the discussions if the fix was deemed unsuitable for backporting. If backporting was not considered at all, join the newest discussion, asking if it's in the cards.*h]j)}(hj(h]hXSearch the Linux kernel version control system for the change that fixed the issue in mainline, as its commit message might tell you if the fix is scheduled for backporting already. If you don’t find anything that way, search the appropriate mailing lists for posts that discuss such an issue or peer-review possible fixes; then check the discussions if the fix was deemed unsuitable for backporting. If backporting was not considered at all, join the newest discussion, asking if it’s in the cards.}(hhhj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhhhMMhj#ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hIn a lot of cases the issue you deal with will have happened with mainline, but got fixed there. The commit that fixed it would need to get backported as well to get the issue solved. That's why you want to search for it or any discussions abound it.h]hIn a lot of cases the issue you deal with will have happened with mainline, but got fixed there. The commit that fixed it would need to get backported as well to get the issue solved. That’s why you want to search for it or any discussions abound it.}(hjEhjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMUhjhhubj)}(hhh]j)}(hhh](j)}(hXFirst try to find the fix in the Git repository that holds the Linux kernel sources. You can do this with the web interfaces `on kernel.org `_ or its mirror `on GitHub `_; if you have a local clone you alternatively can search on the command line with ``git log --grep=``. If you find the fix, look if the commit message near the end contains a 'stable tag' that looks like this: Cc: # 5.4+ If that's case the developer marked the fix safe for backporting to version line 5.4 and later. Most of the time it's getting applied there within two weeks, but sometimes it takes a bit longer. h](h)}(hXFirst try to find the fix in the Git repository that holds the Linux kernel sources. You can do this with the web interfaces `on kernel.org `_ or its mirror `on GitHub `_; if you have a local clone you alternatively can search on the command line with ``git log --grep=``.h](h}First try to find the fix in the Git repository that holds the Linux kernel sources. You can do this with the web interfaces }(h}First try to find the fix in the Git repository that holds the Linux kernel sources. You can do this with the web interfaces hj[hhhNhNubh)}(h[`on kernel.org `_h]h on kernel.org}(h on kernel.orghjdhhhNhNubah}(h]h ]h"]h$]h&]name on kernel.orgjHhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/uh1hhj[ubj)}(hK h]h}(h] on-kernel-orgah ]h"] on kernel.orgah$]h&]refurijuuh1jjKhj[ubh or its mirror }(h or its mirror hj[hhhNhNubh)}(h0`on GitHub `_h]h on GitHub}(h on GitHubhjhhhNhNubah}(h]h ]h"]h$]h&]name on GitHubj!https://github.com/torvalds/linuxuh1hhj[ubj)}(h$ h]h}(h] on-githubah ]h"] on githubah$]h&]refurijuh1jjKhj[ubhR; if you have a local clone you alternatively can search on the command line with }(hR; if you have a local clone you alternatively can search on the command line with hj[hhhNhNubj)}(h``git log --grep=``h]hgit log --grep=}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh.}(hjhj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMZhjWubh)}(hjIf you find the fix, look if the commit message near the end contains a 'stable tag' that looks like this:h]hnIf you find the fix, look if the commit message near the end contains a ‘stable tag’ that looks like this:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjWubj)}(hhh]h)}(h#Cc: # 5.4+h](hCc: <}(hCc: # 5.4+}(h> # 5.4+hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMdhjubah}(h]h ]h"]h$]h&]uh1jhjWubh)}(hIf that's case the developer marked the fix safe for backporting to version line 5.4 and later. Most of the time it's getting applied there within two weeks, but sometimes it takes a bit longer.h]hIf that’s case the developer marked the fix safe for backporting to version line 5.4 and later. Most of the time it’s getting applied there within two weeks, but sometimes it takes a bit longer.}(hj hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMfhjWubeh}(h]h ]h"]h$]h&]uh1jhjTubj)}(hXIf the commit doesn't tell you anything or if you can't find the fix, look again for discussions about the issue. Search the net with your favorite internet search engine as well as the archives for the `Linux kernel developers mailing list `_. Also read the section `Locate kernel area that causes the issue` above and follow the instructions to find the subsystem in question: its bug tracker or mailing list archive might have the answer you are looking for. h]h)}(hXIf the commit doesn't tell you anything or if you can't find the fix, look again for discussions about the issue. Search the net with your favorite internet search engine as well as the archives for the `Linux kernel developers mailing list `_. Also read the section `Locate kernel area that causes the issue` above and follow the instructions to find the subsystem in question: its bug tracker or mailing list archive might have the answer you are looking for.h](hIf the commit doesn’t tell you anything or if you can’t find the fix, look again for discussions about the issue. Search the net with your favorite internet search engine as well as the archives for the }(hIf the commit doesn't tell you anything or if you can't find the fix, look again for discussions about the issue. Search the net with your favorite internet search engine as well as the archives for the hj hhhNhNubh)}(hG`Linux kernel developers mailing list `_h]h$Linux kernel developers mailing list}(h$Linux kernel developers mailing listhj hhhNhNubah}(h]h ]h"]h$]h&]name$Linux kernel developers mailing listjhttps://lore.kernel.org/lkml/uh1hhj ubj)}(h h]h}(h]$linux-kernel-developers-mailing-listah ]h"]$linux kernel developers mailing listah$]h&]refurij1 uh1jjKhj ubh. Also read the section }(h. Also read the section hj hhhNhNubhtitle_reference)}(h*`Locate kernel area that causes the issue`h]h(Locate kernel area that causes the issue}(hhhjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jD hj ubh above and follow the instructions to find the subsystem in question: its bug tracker or mailing list archive might have the answer you are looking for.}(h above and follow the instructions to find the subsystem in question: its bug tracker or mailing list archive might have the answer you are looking for.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMjhj ubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hXWIf you see a proposed fix, search for it in the version control system as outlined above, as the commit might tell you if a backport can be expected. * Check the discussions for any indicators the fix might be too risky to get backported to the version line you care about. If that's the case you have to live with the issue or switch to the kernel version line where the fix got applied. * If the fix doesn't contain a stable tag and backporting was not discussed, join the discussion: mention the version where you face the issue and that you would like to see it fixed, if suitable. h](h)}(hIf you see a proposed fix, search for it in the version control system as outlined above, as the commit might tell you if a backport can be expected.h]hIf you see a proposed fix, search for it in the version control system as outlined above, as the commit might tell you if a backport can be expected.}(hjk hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMrhje ubj)}(hhh](j)}(hCheck the discussions for any indicators the fix might be too risky to get backported to the version line you care about. If that's the case you have to live with the issue or switch to the kernel version line where the fix got applied. h]h)}(hCheck the discussions for any indicators the fix might be too risky to get backported to the version line you care about. If that's the case you have to live with the issue or switch to the kernel version line where the fix got applied.h]hCheck the discussions for any indicators the fix might be too risky to get backported to the version line you care about. If that’s the case you have to live with the issue or switch to the kernel version line where the fix got applied.}(hj hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMuhjz ubah}(h]h ]h"]h$]h&]uh1jhjw ubj)}(hIf the fix doesn't contain a stable tag and backporting was not discussed, join the discussion: mention the version where you face the issue and that you would like to see it fixed, if suitable. h]h)}(hIf the fix doesn't contain a stable tag and backporting was not discussed, join the discussion: mention the version where you face the issue and that you would like to see it fixed, if suitable.h]hIf the fix doesn’t contain a stable tag and backporting was not discussed, join the discussion: mention the version where you face the issue and that you would like to see it fixed, if suitable.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhj ubah}(h]h ]h"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]jjuh1jhhhMuhje ubeh}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]jjuh1jhhhMZhjQubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubeh}(h]6check-code-history-and-search-for-existing-discussionsah ]h"]6check code history and search for existing discussionsah$]h&]uh1hhjhhhhhMKubh)}(hhh](h)}(hAsk for adviceh]hAsk for advice}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj)}(hhh]h)}(h*One of the former steps should lead to a solution. If that doesn't work out, ask the maintainers for the subsystem that seems to be causing the issue for advice; CC the mailing list for the particular subsystem as well as the stable mailing list.*h]j)}(hj h]hOne of the former steps should lead to a solution. If that doesn’t work out, ask the maintainers for the subsystem that seems to be causing the issue for advice; CC the mailing list for the particular subsystem as well as the stable mailing list.}(hhhj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hX:If the previous three steps didn't get you closer to a solution there is only one option left: ask for advice. Do that in a mail you sent to the maintainers for the subsystem where the issue seems to have its roots; CC the mailing list for the subsystem as well as the stable mailing list (stable@vger.kernel.org).h](hX$If the previous three steps didn’t get you closer to a solution there is only one option left: ask for advice. Do that in a mail you sent to the maintainers for the subsystem where the issue seems to have its roots; CC the mailing list for the subsystem as well as the stable mailing list (}(hX"If the previous three steps didn't get you closer to a solution there is only one option left: ask for advice. Do that in a mail you sent to the maintainers for the subsystem where the issue seems to have its roots; CC the mailing list for the subsystem as well as the stable mailing list (hj hhhNhNubh)}(hstable@vger.kernel.orgh]hstable@vger.kernel.org}(hhhj!hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:stable@vger.kernel.orguh1hhj ubh).}(h).hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]ask-for-adviceah ]h"]ask for adviceah$]h&]uh1hhjhhhhhMubeh}(h]Kreference-for-reporting-issues-only-occurring-in-older-kernel-version-linesah ]h"]Mreference for "reporting issues only occurring in older kernel version lines"ah$]h&]uh1hhjhhhhhMubeh}(h]. If you spot a typo or small mistake, feel free to let him know directly and he'll fix it. You are free to do the same in a mostly informal way if you want to contribute changes to the text, but for copyright reasons please CC linux-doc@vger.kernel.org and "sign-off" your contribution as Documentation/process/submitting-patches.rst outlines in the section "Sign your work - the Developer's Certificate of Origin".h]hXThis document is maintained by Thorsten Leemhuis . If you spot a typo or small mistake, feel free to let him know directly and he'll fix it. You are free to do the same in a mostly informal way if you want to contribute changes to the text, but for copyright reasons please CC linux-doc@vger.kernel.org and "sign-off" your contribution as Documentation/process/submitting-patches.rst outlines in the section "Sign your work - the Developer's Certificate of Origin".}(hhhj!ubah}(h]h ]h"]h$]h&]hhuh1hhj!hhhhhMubh)}(hX`This text is available under GPL-2.0+ or CC-BY-4.0, as stated at the top of the file. If you want to distribute this text under CC-BY-4.0 only, please use "The Linux kernel developers" for author attribution and link this as source: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/admin-guide/reporting-issues.rsth]hX`This text is available under GPL-2.0+ or CC-BY-4.0, as stated at the top of the file. If you want to distribute this text under CC-BY-4.0 only, please use "The Linux kernel developers" for author attribution and link this as source: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/admin-guide/reporting-issues.rst}(hhhj!ubah}(h]h ]h"]h$]h&]hhuh1hhj!hhhhhMubh)}(hXNote: Only the content of this RST file as found in the Linux kernel sources is available under CC-BY-4.0, as versions of this text that were processed (for example by the kernel's build system) might contain content taken from files which use a more restrictive license.h]hXNote: Only the content of this RST file as found in the Linux kernel sources is available under CC-BY-4.0, as versions of this text that were processed (for example by the kernel's build system) might contain content taken from files which use a more restrictive license.}(hhhj "ubah}(h]h ]h"]h$]h&]hhuh1hhj!hhhhhMubeh}(h] closing-wordsah ]h"] closing wordsah$]h&]uh1hhhhhhhhMubeh}(h]reporting-issuesah ]h"]reporting issuesah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjJ"error_encodingUTF-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confapep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKline_length_limitM'syntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_link embed_imagesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j$"j!"jxjujjj7j4j[jXjjjjjjjjjEjBjjj4!j1!jNjKjrjojjj5j2jjjjjjjm jj jR jO j j j j check 'taint' flagNj[ jX j j jjj#j jjjjjXjUjjjjjPjMjjj8j5jjjHjEjjjjj2j/jjjjjjjjjNjKjjjjjjjZjWjKjHjjjRjOjjjjj:j7j&j#jjjjj,!j)!jnjkjj j j jj|jjj; j8 j$!j!!j!j!j"j"u nametypes}(j$"NjxNjj7j[jjNjjNjEjNj4!NjNjrjj5NjNjjjm NjR Nj Nj Nj"Nj[ Nj NjNj#NjNjNjXjjjPNjj8NjjHNjjNj2NjNjNjNjNjNNjjNjNjZNjKNjNjRNjNjNj:Nj&jNjNj,!NjnNjNj Njjj; j$!Nj!Nj"Nuh}(j!"hjuhjj j4j.jXjRjjjjjj{jjjjjBj<jjyjjj1!jjKjEjojijjj2jjj8jjjjjj jjO jp j jU j j j j jX j j j^ jj j j jj&jjjUjOjjjjjMjjjj5jjjjEj;jjjjjjSjjj/jjj5jjjjjjjjjKjjjjjQjjjWjjHj9jjNjOjjj]jj|j7jj#jjj=jjj)!jjkjj jqj jj|jvjjj8 j2 j!!j j!j7!j"j!u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jX"KsRparse_messages](hsystem_message)}(hhh]h)}(h'Duplicate explicit target name: "lkml".h]h+Duplicate explicit target name: “lkml”.}(hhhj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubah}(h]h ]h"]h$]h&]jalevelKtypeINFOsourcehlineKuh1j"hhhhhhhKubj")}(hhh]h)}(h