• Re: How upstream kernel version correlates to version from Debian?

    From Charles Curley@21:1/5 to Alexander V. Makartsev on Sat Jan 18 22:00:01 2025
    On Sat, 18 Jan 2025 23:52:31 +0500
    "Alexander V. Makartsev" <avbetev@gmail.com> wrote:

    Things I've tried so far:
    1. Updated Intel graphics firmware to latest version available on git.kernel.org

    I suggest you try the most recent backported kernel and firmware. https://backports.debian.org

    That is my usual first step with this sort of thing, and it usually
    works.

    --
    Does anybody read signatures any more?

    https://charlescurley.com
    https://charlescurley.com/blog/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From George at Clug@21:1/5 to All on Sat Jan 18 23:30:01 2025
    Alexander,

    Do you have backports in your apt sources ?

    For example:
    # bookworm-backports, previously on backports.debian.org
    deb https://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
    deb-src https://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware


    And have you installed firmware-linux-nonfree, firmwarefirmware-intel-graphics and firmware-intel-misc ?

    https://packages.debian.org/search?keywords=firmware-intel-graphics&searchon=names&section=all&suite=bookworm-backports
    Exact hits
    Package firmware-intel-graphics
    bookworm-backports (kernel): Binary firmware for Intel iGPUs and IPUs [non-free-firmware]
    20240709-2~bpo12+1: all

    If not I would hope this would solve the issue, though I do expect that you have already install these packages.

    "Intel's Alder Lake-P GT1 processor was released on November 4, 2021." - I would expect that your GPU is currently supported, as the GPU is not that new.

    I found this comment on the Internet, whether it applies to your system, I do not know: "Went in bios and changed from switchable -> discrete, and HDMI port started working again".

    I also found information about enabling GuC / HuC which I hope is no longer required, but might be? Maybe others with more knowledge can assist?

    https://wiki.archlinux.org/title/Intel_graphics
    2.2 Enable GuC / HuC firmware loading
    If GuC submission or HuC firmware loading is not enabled by default for your GPU, you can manually enable it.
    Set the i915.enable_guc kernel parameter, for example with: /etc/modprobe.d/i915.conf
    options i915 enable_guc=2


    George.


    https://www.techpowerup.com/gpu-specs/intel-alder-lake-gt1.g1003
    Intel Alder Lake GT1
    Intel's Alder Lake GT1 GPU uses the Generation 12.2 architecture and is made using a 10 nm production process at Intel. Alder Lake GT1 supports DirectX 12 (Feature Level 12_1). For GPU compute applications, OpenCL version 3.0 can be used. It features 768
    shading units, 48 texture mapping units and 24 ROPs



    On Sunday, 19-01-2025 at 05:52 Alexander V. Makartsev wrote:
    Hello, Debian users.

    I have stability issues (freezing) on my laptop running Debian 12
    (current stable), and, according to logs, the culprit is kernel module i915.

    My kernel version:
    $ uname -a
    Linux hostname 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux

    My GPU is CPU integrated:
    $ lspci -nn -v | grep VGA
    00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P
    GT1 [UHD Graphics] [8086:46a3] (rev 0c) (prog-if 00 [VGA controller])







    A few relevant lines from syslog after freeze and reboot:
    ...
    Jan 18 02:08:26 hostname kernel: i915 0000:00:02.0: Uninitialized
    forcewake domain(s) 0x8 accessed at 0x1cd000
    Jan 18 02:08:26 hostname kernel: WARNING: CPU: 2 PID: 182 at drivers/gpu/drm/i915/intel_uncore.c:950 find_fw_domain+0xcd/0xe0 [i915]
    ...
    Jan 18 02:08:26 hostname kernel: i915 0000:00:02.0: [drm] GPU HANG:
    ecode 12:1:85dfbffd, in Xorg [848]
    Jan 18 02:08:26 hostname kernel: i915 0000:00:02.0: [drm] Resetting chip
    for stopped heartbeat on rcs0
    Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] Xorg[848]
    context reset due to GPU hang
    Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_70.bin version 70.36.0
    Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc.bin version 7.9.3
    Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] HuC authenticated Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] GuC submission enabled
    Jan 18 02:08:27 hostname kernel: i915 0000:00:02.0: [drm] GuC SLPC enabled ...

    Logs with call traces:
    https://paste.debian.net/1345769/

    Things I've tried so far:
    1. Updated Intel graphics firmware to latest version available on git.kernel.org
    Things slightly improved, now I have a freeze after a hour or two
    instead of a few minutes. My guess is that firmware got better at "GPU
    hang" handling and recovery, but didn't fixed the bug itself.
    2. Switched Xorg driver from "modesetting" to older "xf86-video-intel".
    My GPU appears to be too modern for it, I run into graphical artifacts,
    xorg server couldn't recognize GPU chipset, etc, so I had to revert back
    to "modesetting".
    3. Tried to set "enable_guc=0" option for i915 module, which disabled
    GuC offloading.
    While I couldn't reproduce the issue anymore and my laptop won't freeze
    even after a few hours, instead I got poor performance, higher than
    usual fan noise and battery drain.
    It also taints the kernel by Intel's design, so I had to revert back to default (which functionally seems to be "enable_guc=3").

    There is also an option to try official backported Intel driver which
    builds out-of-tree DKMS module, but I rather look for a more standard solution.
    https://dgpu-docs.intel.com/releases/releases.html

    Searching for "Uninitialized forcewake domain(s) 0x8 accessed at" gave
    me a result leading to a patch which could be addressing the same issue
    I have.
    https://www.spinics.net/lists/intel-gfx/msg274293.html

    So now my questions are:
    How to check if this patch was added upstream to git.kernel.org and to
    which kernel version?
    And how upstream kernel version correlates to kernel version from
    Debian, so I can get a reference point to see what patches for i915 were added?


    --

    With kindest regards, Alexander.

    Debian - The universal operating system
    https://www.debian.org


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Felix Miata@21:1/5 to All on Sun Jan 19 01:30:01 2025
    Alexander V. Makartsev composed on 2025-01-18 23:52 (UTC+0500):

    I have stability issues (freezing) on my laptop running Debian 12
    (current stable), and, according to logs, the culprit is kernel module i915.

    My kernel version:
    $ uname -a
    Linux hostname 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux

    My GPU is CPU integrated:
    $ lspci -nn -v | grep VGA
    00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P
    GT1 [UHD Graphics] [8086:46a3]
    ^^^^

    Try the following cmdline options if you haven't already, to in effect blacklist
    i915 kernel module and to enable Xe kernel module designed to take i915's place for Gen12+ GPUs:

    xe.force_probe='46a3' i915.force_probe='!46a3'

    Whether those options exist in 6.1 kernel I do not know. When I boot Bookworm using those options they only show up on the two kernel cmdline lines in dmesg.
    # uname -a
    Linux ab560 6.11.8-1-default #1 SMP PREEMPT_DYNAMIC Thu Nov 14 12:54:01 UTC 2024 (099023b) x86_64 x86_64 x86_64 GNU/Linux
    # dmesg | grep force | wc -l
    25

    In Trixie
    # uname -a
    Linux ab560 6.11.10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1 (2024-11-23) x86_64 GNU/Linux
    # dmesg | grep force
    [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz root=LABEL=tm8p23deb13 noresume ipv6.disable=1 net.ifnames=0 consoleblank=0 preempt=full mitigations=off video=1440x900@60 xe.force_probe=4c8b i915.force_probe=!4c8b
    [ 0.015216] Kernel command line: BOOT_IMAGE=/vmlinuz root=LABEL=tm8p23deb13 noresume ipv6.disable=1 net.ifnames=0 consoleblank=0 preempt=full mitigations=off video=1440x900@60 xe.force_probe=4c8b i915.force_probe=!4c8b
    [ 1.769159] Setting dangerous option force_probe - tainting kernel

    # uname -a
    Linux ab560 6.12.9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.9-1 (2025-01-10) x86_64 GNU/Linux
    # dmesg | grep force
    [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz root=LABEL=tm8p23deb13 noresume ipv6.disable=1 net.ifnames=0 consoleblank=0 preempt=full mitigations=off xe.force_probe=4c8b i915.force_probe=!4c8b
    [ 0.015306] Kernel command line: BOOT_IMAGE=/vmlinuz root=LABEL=tm8p23deb13 noresume ipv6.disable=1 net.ifnames=0 consoleblank=0 preempt=full mitigations=off xe.force_probe=4c8b i915.force_probe=!4c8b
    [ 1.709885] Setting dangerous option force_probe - tainting kernel
    [ 1.995422] Setting dangerous option force_probe - tainting kernel
    #

    It seems to me you probably need to go backport. I tried the "experimental" equivalent
    with i5-11400's Rocket Lake S GT1 (Gen12.1) in openSUSE Tumbleweed, resulting in loss
    of about 2/3 in graphics performance testing with glmark2.
    --
    Evolution as taught in public schools is, like religion,
    based on faith, not based on science.

    Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

    Felix Miata

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Felix Miata@21:1/5 to All on Mon Jan 20 02:50:01 2025
    Alexander V. Makartsev composed on 2025-01-20 05:36 (UTC+0500):

    Felix Miata wrote:

    It seems to me you probably need to go backport. I tried the "experimental" equivalent
    with i5-11400's Rocket Lake S GT1 (Gen12.1) in openSUSE Tumbleweed, resulting in loss
    of about 2/3 in graphics performance testing with glmark2.

    Thanks for reminding me about new xe driver, but unfortunately I wasn't
    able to get it working.
    I've tried 6.11 kernel from backports, but it look like "xe" module is
    absent and only "i915" available.

    $ uname -a
    Linux hostname 6.11.10+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1~bpo12+1 (2024-12-19) x86_64 GNU/Linux
    $ sudo modinfo i915 --filename /lib/modules/6.11.10+bpo-amd64/kernel/drivers/gpu/drm/i915/i915.ko.xz
    $ sudo modinfo xe --filename
    modinfo: ERROR: Module xe not found.

    I don't know why backport kernel is limited to 6.11, but apparently Xe was not mainstreamed as non-experimental until 6.12:
    # grep RETT /etc/os-release
    PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
    # uname -a
    Linux ab560 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
    # modinfo i915 --filename /lib/modules/6.1.0-28-amd64/kernel/drivers/gpu/drm/i915/i915.ko
    # modinfo xe --filename
    modinfo: ERROR: Module xe not found.
    ...
    # grep RETT /etc/os-release
    PRETTY_NAME="Debian GNU/Linux trixie/sid"
    # uname -a
    Linux ab560 6.12.9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.9-1 (2025-01-10) x86_64 GNU/Linux
    # modinfo i915 --filename /lib/modules/6.12.9-amd64/kernel/drivers/gpu/drm/i915/i915.ko.xz
    # modinfo xe --filename /lib/modules/6.12.9-amd64/kernel/drivers/gpu/drm/xe/xe.ko.xz
    # lspci -nnk | grep VGA
    00:02.0 VGA compatible controller [0300]: Intel Corporation RocketLake-S GT1 [UHD Graphics 730] [8086:4c8b] (rev 04)
    # cat /proc/cmdline
    … xe.force_probe=4c8b i915.force_probe=!4c8b …
    # lsmod | egrep 'vid|xe' | sort
    cec 69632 3 drm_display_helper,xe,i915
    drm 770048 12 gpu_sched,drm_kms_helper,drm_exec,drm_gpuvm,drm_suballoc_helper,drm_display_helper,drm_buddy,drm_ttm_helper,xe,i915,ttm
    drm_buddy 20480 2 xe,i915
    drm_display_helper 274432 2 xe,i915
    drm_exec 12288 2 drm_gpuvm,xe
    drm_gpuvm 45056 1 xe
    drm_kms_helper 249856 4 drm_display_helper,drm_ttm_helper,xe,i915 drm_suballoc_helper 12288 1 xe
    drm_ttm_helper 16384 1 xe
    gpu_sched 65536 1 xe
    i2c_algo_bit 12288 2 xe,i915
    ttm 106496 3 drm_ttm_helper,xe,i915
    video 81920 3 asus_wmi,xe,i915
    wmi 28672 3 video,asus_wmi,wmi_bmof
    xe 3031040 2
    #
    I've still tried "force_probe" parameters you suggested, but with them
    Xorg server fails to start.

    That's no surprise with 6.11 kernel. i915.force_probe=!46a3 equates to both nomodeset and i915.modeset=0.

    Maybe backported kernel was built without new xe driver support?
    Once again, I need to know the answer to the question from Subj.
    According to Phoronix, new xe driver should be available from kernel
    version 6.8 and up.
    https://www.phoronix.com/news/Linux-6.8-DRM

    You likely can build your own to include the Xe driver. Stock 6.11 kernels
    for openSUSE and Fedora don't include Xe either, nor 6.10. Before that I
    didn't even try.

    I can't comprehend how these bugs are not fixed after so many years.

    Gen12 was a radical change in technology from prior Intel GPUs, so Xe development was more complicated than usual generational changes to i915, necessitating starting with a clean sheet of paper to develop the Xe module.
    --
    Evolution as taught in public schools is, like religion,
    based on faith, not based on science.

    Team OS/2 ** Reg. Linux User #211409 ** a11y rocks!

    Felix Miata

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)