Opt-in Linux 6.14 Kernel for Proxmox VE 8 available on test & no-subscription

Code:
> git bisect log
# bad: [b423347fe0063a7ef60f6f313810d9f1a551f31b] UBUNTU: Ubuntu-6.14.0-24.24
# good: [2591c2ac99fc6fcedb56aeba132d99351753f522] UBUNTU: Ubuntu-6.14.0-22.22
git bisect start 'HEAD' 'Ubuntu-6.14.0-22.22'
# good: [5a71be1ddaf2a85a049ceb2ffed342049c1ad234] pds_core: specify auxiliary_device to be created
git bisect good 5a71be1ddaf2a85a049ceb2ffed342049c1ad234
# good: [79f860ba43b4bb5608e7e99e442b4cccb0fc50e2] platform/x86: alienware-wmi-wmax: Add support for Alienware m15 R7
git bisect good 79f860ba43b4bb5608e7e99e442b4cccb0fc50e2
# good: [4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459] mm: Provide address mask in struct follow_pfnmap_args
git bisect good 4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459
# bad: [a1203fd595a8602a3c26f042fadb74b5115c5de5] s390/pci: Serialize device addition and removal
git bisect bad a1203fd595a8602a3c26f042fadb74b5115c5de5
# bad: [f1f13fe547ded398963103f3e666a8b011b2b32e] KVM: PPC: Book3S HV: Fix IRQ map warnings with XICS on pSeries KVM Guest
git bisect bad f1f13fe547ded398963103f3e666a8b011b2b32e
# good: [2530de1587dd43da379c84e2d1f53f02b7f3bd41] vfio/type1: Use vfio_batch for vaddr_get_pfns()
git bisect good 2530de1587dd43da379c84e2d1f53f02b7f3bd41
# good: [eb9f27a297a6e24d76265d7611a6363b4d5cc604] vfio/type1: Use mapping page mask for pfnmaps
git bisect good eb9f27a297a6e24d76265d7611a6363b4d5cc604
# bad: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing
git bisect bad 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e
# first bad commit: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing

commit 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e (HEAD)
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Thu May 29 09:07:28 2025 +0800

    PCI: Explicitly put devices into D0 when initializing
    
    BugLink: https://bugs.launchpad.net/bugs/2110090
    
    AMD BIOS team has root caused an issue that NVMe storage failed to come
    back from suspend to a lack of a call to _REG when NVMe device was probed.
    
    112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added
    support for calling _REG when transitioning D-states, but this only works
    if the device actually "transitions" D-states.
    
    967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
    added support for runtime PM on PCI devices, but never actually
    'explicitly' sets the device to D0.
    
    To make sure that devices are in D0 and that platform methods such as
    _REG are called, explicitly set all devices into D0 during initialization.
    
    Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Tested-by: Denis Benato <benato.denis96@gmail.com>
    Tested-By: Yijun Shen <Yijun_Shen@Dell.com>
    Tested-By: David Perry <david.perry@amd.com>
    Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
    Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org
    (cherry picked from commit 4d4c10f763d7808fbade28d83d237411603bca05)
    Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
    Acked-by: Stefan Bader <stefan.bader@canonical.com>
    Acked-by: Thibault Ferrante <thibault.ferrante@canonical.com>
    Acked-by: Edoardo Canepa <edoardo.canepa@canonical.com>
    Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>
 
Code:
> git bisect log
# bad: [b423347fe0063a7ef60f6f313810d9f1a551f31b] UBUNTU: Ubuntu-6.14.0-24.24
# good: [2591c2ac99fc6fcedb56aeba132d99351753f522] UBUNTU: Ubuntu-6.14.0-22.22
git bisect start 'HEAD' 'Ubuntu-6.14.0-22.22'
# good: [5a71be1ddaf2a85a049ceb2ffed342049c1ad234] pds_core: specify auxiliary_device to be created
git bisect good 5a71be1ddaf2a85a049ceb2ffed342049c1ad234
# good: [79f860ba43b4bb5608e7e99e442b4cccb0fc50e2] platform/x86: alienware-wmi-wmax: Add support for Alienware m15 R7
git bisect good 79f860ba43b4bb5608e7e99e442b4cccb0fc50e2
# good: [4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459] mm: Provide address mask in struct follow_pfnmap_args
git bisect good 4a41bd7ba5607fc2d59d98e81b9b1d3a799d5459
# bad: [a1203fd595a8602a3c26f042fadb74b5115c5de5] s390/pci: Serialize device addition and removal
git bisect bad a1203fd595a8602a3c26f042fadb74b5115c5de5
# bad: [f1f13fe547ded398963103f3e666a8b011b2b32e] KVM: PPC: Book3S HV: Fix IRQ map warnings with XICS on pSeries KVM Guest
git bisect bad f1f13fe547ded398963103f3e666a8b011b2b32e
# good: [2530de1587dd43da379c84e2d1f53f02b7f3bd41] vfio/type1: Use vfio_batch for vaddr_get_pfns()
git bisect good 2530de1587dd43da379c84e2d1f53f02b7f3bd41
# good: [eb9f27a297a6e24d76265d7611a6363b4d5cc604] vfio/type1: Use mapping page mask for pfnmaps
git bisect good eb9f27a297a6e24d76265d7611a6363b4d5cc604
# bad: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing
git bisect bad 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e
# first bad commit: [35fedc31ac99519f6eb6514eeca9c6e235ab0a7e] PCI: Explicitly put devices into D0 when initializing

commit 35fedc31ac99519f6eb6514eeca9c6e235ab0a7e (HEAD)
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Thu May 29 09:07:28 2025 +0800

    PCI: Explicitly put devices into D0 when initializing
   
    BugLink: https://bugs.launchpad.net/bugs/2110090
   
    AMD BIOS team has root caused an issue that NVMe storage failed to come
    back from suspend to a lack of a call to _REG when NVMe device was probed.
   
    112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added
    support for calling _REG when transitioning D-states, but this only works
    if the device actually "transitions" D-states.
   
    967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
    added support for runtime PM on PCI devices, but never actually
    'explicitly' sets the device to D0.
   
    To make sure that devices are in D0 and that platform methods such as
    _REG are called, explicitly set all devices into D0 during initialization.
   
    Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices")
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Tested-by: Denis Benato <benato.denis96@gmail.com>
    Tested-By: Yijun Shen <Yijun_Shen@Dell.com>
    Tested-By: David Perry <david.perry@amd.com>
    Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
    Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org
    (cherry picked from commit 4d4c10f763d7808fbade28d83d237411603bca05)
    Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
    Acked-by: Stefan Bader <stefan.bader@canonical.com>
    Acked-by: Thibault Ferrante <thibault.ferrante@canonical.com>
    Acked-by: Edoardo Canepa <edoardo.canepa@canonical.com>
    Signed-off-by: Mehmet Basaran <mehmet.basaran@canonical.com>
Many thanks, we already found that just a bit ago, good that yours and ours match!
We are currently in the process of preparing new kernels that include a follow-up fix for this patch.

A new build for the 6.8 based kernel for PVE 8 and a new build for the 6.14 based kernel for PVE 9 beta are already available on the respective test repo. A backport for the 6.14 for PVE 8 is still in progress of being build and smoke-tested.
 
A backport for the 6.14 for PVE 8 is still in progress of being build and smoke-tested.
The fix is now also available for the 6.14 based kernel on the pvetest repo as proxmox-kernel-6.14.8-2-bpo12-pve-signed version 6.14.8-2~bpo12+1
 
  • Like
Reactions: uzumo
I just looked at vfio_pci_core.c in 6.14.8-1 and it looks like it now includes the fix for bug220057.

Thanks so much.
it should but proxmox version of the kernel breaks vfio for me :eek: I see 6.8.12-13 is out. I'll boot it just to check if it changes anything.

EDIT: Yes, Kernel 6.8.12-13 and proxmox-kernel-6.14.8-2-bpo12-pve fixes vfio. Thank you guys.
 
Last edited:
Is proxmox-kernel 6.14.8-2~bpo12+1 still only available in the pvetest repo? Any idea when it will flip over to pve-no-subscription?
 
Got it, thanks @patch Yes I updated to 6.14.8-2 just now and vfio is sort of working again for me with i915-sriov-dkms driver 2025.07.22 But, my Win11 vm isn't getting accelerated graphics anymore for some reason. But, the VFs are there
Code:
root@pve01:~# { dmesg | egrep 'VFs?$'; lspci | grep VGA; }
[    0.589084] pci 0000:00:02.0: VF BAR 0 [mem 0x00000000-0x06ffffff 64bit]: contains BAR 0 for 7 VFs
[    0.589088] pci 0000:00:02.0: VF BAR 2 [mem 0x00000000-0xdfffffff 64bit pref]: contains BAR 2 for 7 VFs
[    5.050062] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.072236] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.079562] i915 0000:00:02.3: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.086875] i915 0000:00:02.4: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.093146] i915 0000:00:02.5: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.097132] i915 0000:00:02.6: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.102062] i915 0000:00:02.7: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[    5.118627] i915 0000:00:02.0: Enabled 7 VFs
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.4 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.5 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.6 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
00:02.7 VGA compatible controller: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] (rev 0c)
 
As said, that patch got already backported and is included since 6.14.4-1, the regression in 6.14.8 has another cause, but FWIW, we can reproduce it on a system here and should be able to bisect this in the comming days.
The fix I was asking about in my reply that RealPjtor was quoting is this one: https://github.com/proxmox/pve-kernel/commit/5b22d6c07de352cbffd35a02570094dc66b9dc6d

From what I can tell, this was cherry-picked after 6.14.5-1 was tagged (looking at this branch: https://github.com/proxmox/pve-kernel/commits/bookworm-6.14/) and is also not mentioned in the changelog for 6.14.8-x

In any case, Uturn has confirmed the issue is resolved which is great to hear and I look forward to this being released to the enterprise repo when it's ready
 
Last edited:
Is anyone else having issues passing through a SATA controller to a VM? Currently, 6.14 hasn't allowed me to passthrough my SATA controller to my Win 11 VM. I use a 10Gtek controller and have no issues passing it on 6.11. I have tried setting it seperately as a raw device and mapped device and the VM will hang when trying to start. VM will boot fine with it removed.
 
Is anyone else having issues passing through a SATA controller to a VM? Currently, 6.14 hasn't allowed me to passthrough my SATA controller to my Win 11 VM. I use a 10Gtek controller and have no issues passing it on 6.11. I have tried setting it seperately as a raw device and mapped device and the VM will hang when trying to start. VM will boot fine with it removed.
Yes I am having the exact same issue when trying to pass through my ASM1166 SATA controller to my TrueNAS VM on Proxmox 6.14 kernel.

I have the following kernel parameters added: "intel_iommu=on iommu=pt"

I have the following PCI pass through options enabled:
1753874438311.png
The setup has been working perfectly fine on both kernel 6.8 and 6.11.

Any fix / help for getting this to work on 6.14 kernel would be greatly appreciated.
 
Any fix / help for getting this to work on 6.14 kernel would be greatly appreciated.
I do not have any similar setup, but things I'd look into:

1. Have you checked that currently (new kernel) the ASM1166 is in fact on the 04:00:.0 bus?
2. Have you checked that the IOMMU groups are correctly segregated for that device? You can do this with:
Code:
pvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""
as shown in the docs under "General Requirements".

These things can change.
 
  • Like
Reactions: waltar
I do not have any similar setup, but things I'd look into:

1. Have you checked that currently (new kernel) the ASM1166 is in fact on the 04:00:.0 bus?
2. Have you checked that the IOMMU groups are correctly segregated for that device? You can do this with:
Code:
pvesh get /nodes/{nodename}/hardware/pci --pci-class-blacklist ""
as shown in the docs under "General Requirements".

These things can change.
I can confirm for my setup on 6.14 that the bus has stayed the same, in my case 03:00.0, and it is in its own group as well.
 
Trying to install PCIE Google Coral TPU drivers, the process works on older kernels, but I need this newer kernel to access the GPU on the n150

Installing gasket-dkms seem to be the issue

Code:
apt remove -y gasket-dkms
apt install -y git devscripts dh-dkms dkms pve-headers-$(uname -r)
cd /tmp
git clone https://github.com/google/gasket-driver.git
cd gasket-driver/
debuild -us -uc -tc -b
dpkg -i ../gasket-dkms_1.0-18_all.deb

That presents this error
Code:
root@pve2:/home# dpkg -i gasket-dkms_1.0-18_all.deb
(Reading database ... 170250 files and directories currently installed.)
Preparing to unpack gasket-dkms_1.0-18_all.deb ...
Deleting module gasket-1.0 completely from the DKMS tree.
Unpacking gasket-dkms (1.0-18) over (1.0-18) ...
Setting up gasket-dkms (1.0-18) ...
Loading new gasket-1.0 DKMS files...
Deprecated feature: REMAKE_INITRD (/usr/src/gasket-1.0/dkms.conf)
Building for 6.14.8-2-bpo12-pve
Building initial module for 6.14.8-2-bpo12-pve
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/gasket/1.0/source/dkms.conf)
Error! Bad return status for module build on kernel: 6.14.8-2-bpo12-pve (x86_64)
Consult /var/lib/dkms/gasket/1.0/build/make.log for more information.
dpkg: error processing package gasket-dkms (--install):
 installed gasket-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
 gasket-dkms
root@pve2:/home#

/var/lib/dkms/gasket/1.0/build/make.log
Code:
DKMS make.log for gasket-1.0 for kernel 6.14.8-2-bpo12-pve (x86_64)
Wed Jul 30 03:12:58 PM EDT 2025
make: Entering directory '/usr/src/linux-headers-6.14.8-2-bpo12-pve'
make[1]: Entering directory '/var/lib/dkms/gasket/1.0/build'
  CC [M]  gasket_core.o
  CC [M]  gasket_ioctl.o
  CC [M]  gasket_interrupt.o
  CC [M]  gasket_page_table.o
gasket_core.c:1376:19: error: ‘no_llseek’ undeclared here (not in a function); did you mean ‘noop_llseek’?
 1376 |         .llseek = no_llseek,
      |                   ^~~~~~~~~
      |                   noop_llseek
In file included from /usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/module.h:22,
                 from /usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/device/driver.h:21,
                 from /usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/device.h:32,
                 from /usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/pci.h:37,
                 from gasket_page_table.h:15,
                 from gasket_page_table.c:42:
gasket_page_table.c:57:18: error: expected ‘,’ or ‘;’ before ‘DMA_BUF’
   57 | MODULE_IMPORT_NS(DMA_BUF);
      |                  ^~~~~~~
/usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/moduleparam.h:26:61: note: in definition of macro ‘__MODULE_INFO’
   26 |                 = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                                             ^~~~
/usr/src/linux-headers-6.14.8-2-bpo12-pve/include/linux/module.h:301:33: note: in expansion of macro ‘MODULE_INFO’
  301 | #define MODULE_IMPORT_NS(ns)    MODULE_INFO(import_ns, ns)
      |                                 ^~~~~~~~~~~
gasket_page_table.c:57:1: note: in expansion of macro ‘MODULE_IMPORT_NS’
   57 | MODULE_IMPORT_NS(DMA_BUF);
      | ^~~~~~~~~~~~~~~~
make[3]: *** [/usr/src/linux-headers-6.14.8-2-bpo12-pve/scripts/Makefile.build:207: gasket_core.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [/usr/src/linux-headers-6.14.8-2-bpo12-pve/scripts/Makefile.build:207: gasket_page_table.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.14.8-2-bpo12-pve/Makefile:2001: .] Error 2
make[1]: *** [/usr/src/linux-headers-6.14.8-2-bpo12-pve/Makefile:251: __sub-make] Error 2
make[1]: Leaving directory '/var/lib/dkms/gasket/1.0/build'
make: *** [Makefile:251: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.14.8-2-bpo12-pve'

I'm not sure it's a kernel/headers issue (I think so), if not just delete message