XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    High Fan Speed Issue on Lenovo ThinkSystem Servers

    Scheduled Pinned Locked Moved Hardware
    101 Posts 15 Posters 43.0k Views 10 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • olivierlambertO Offline
      olivierlambert Vates 🪐 Co-Founder CEO
      last edited by

      Don't forget to save them somewhere, we'd be happy to store them on our side and have a dedicated section to download it if needed.

      1 Reply Last reply Reply Quote 0
      • D Offline
        DeOccultist @RIX_IT
        last edited by

        @RIX_IT Thank you for the tips.

        Just for the record, I downgraded the SR645 v3 to UEFI v1.25 KAE106Y and the fans are now spinning at 9000RPM and the fan speed adjusts accordingly depending on the CPU load so I think this is the correct behaviour.

        But once upgrade to version UEFI 2.10 KAE112N for the SR645 v3, the fan spins up to 20000RPM with unbearable sound. This also occurs with the latest firmware 4.20 KAE120J.

        I opened a ticket with XenServer 8 Trial Edition bugs portal and they finally replied with "This issue is on our radar. We're currently developing a solution. To avoid duplicates, we'll archive this ticket for now"
        Not sure when or how it will be fixed though.

        RIX_ITR 1 Reply Last reply Reply Quote 0
        • RIX_ITR Offline
          RIX_IT @DeOccultist
          last edited by

          @DeOccultist

          Thanks again for your effort!
          That gives at least a little hope for it to be fixed in the future.

          Perhaps @olivierlambert could give us some insides on whether the changes can or will be implemented if they're fixed from XenServer's side?
          Ā 
          I did also find this:
          XenServer 8 cannot acquire the DIMM temperature and fan speed is too fast on the AMD platform - Lenovo ThinkSystem

          Looks like Lenovo finally acknowledged that there is a problem. They even provided a Workaround for this.

          I'll see if I can test it. It might take some time because we already have our servers running in production, we just couldn't wait any longer for a solution.

          bleaderB D 2 Replies Last reply Reply Quote 0
          • bleaderB Offline
            bleader Vates 🪐 XCP-ng Team @RIX_IT
            last edited by

            Olivier is currently on holidays, so I'll try to answer: it will mostly depend where the fix is implemented by XenServer, they do have some closed source parts, if that fix goes in such a part, we won't be able to get it back. If it is implemented in some of the open source part, we should be able to get it and integrate the change on our side.

            Let's hope the fix ends up on the right side šŸ˜›

            L 1 Reply Last reply Reply Quote 1
            • R Offline
              Riven
              last edited by Riven

              @ThierryEscande @bleader @olivierlambert Hope this helps if XenServer don't come to the party.
              Given the new information about the I2C-DesignWare driver - I've disabled it on one of my SR635V3 systems, and I can read the DIMM temps now šŸ™‚

              Lenovo ThinkSystem SR635 V3, BIOS KAE118M-4.11

              USE AT YOUR OWN RISK - I have not tested this in production, or found out what else it might effect
              However given the "workaround" provided by Lenovo for XenServer - it should be OK.

              The driver is built into the kernel instead of a module, so had to be blacklisted slightly differently.

              Found which driver to blacklist from kernel init.
              fgrep i2c /boot/System.map-4.19.0+1 | grep init

              ffffffff815172f0 T drm_i2c_encoder_init
              ffffffff815574c0 T __regmap_init_i2c
              ffffffff81557510 T __devm_regmap_init_i2c
              ffffffff815d0700 t i2c_dw_init_master
              ffffffff815d14f0 t i2c_dw_init_slave
              ffffffff81ea9b40 r __ksymtab_drm_i2c_encoder_init
              ffffffff81eb0570 r __ksymtab___devm_regmap_init_i2c
              ffffffff81eb0838 r __ksymtab___regmap_init_i2c
              ffffffff81edc1a9 r __kstrtab_drm_i2c_encoder_init
              ffffffff81edffcd r __kstrtab___devm_regmap_init_i2c
              ffffffff81edffe4 r __kstrtab___regmap_init_i2c
              ffffffff8248156d t i2c_init
              ffffffff82481b65 t dw_i2c_init_driver
              ffffffff8255fe48 t __initcall_i2c_init2
              ffffffff8255ffa8 t __initcall_dw_i2c_init_driver4
              

              Guessed dw_i2c_init_driver as the most likely candidate

              In /etc/grub-efi.cfg I added initcall_blacklist=dw_i2c_init_driver and ran grub-mkconfig then rebooted.

              menuentry 'XCP-ng' {
                      search --label --set root root-ltcoyb
                      multiboot2 /boot/xen.gz watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G console=vga vga=mode-0x0311 dom0_mem=16384M,max:16384M
                      module2 /boot/vmlinuz-4.19-xen root=LABEL=root-ltcoyb ro nolvm hpet=disable console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles initcall_blacklist=dw_i2c_init_driver
                      module2 /boot/initrd-4.19-xen.img
              }
              

              Restarted the BMC to be sure, and checked. Previously these reported 0 degrees C for populated DIMM slots.
              ipmitool sdr | grep -i temp

              Ambient Temp     | 18 degrees C      | ok
              Exhaust Temp     | 35 degrees C      | ok
              CPU 1 Temp       | 31 degrees C      | ok
              DIMM 1 Temp      | no reading        | ns
              DIMM 2 Temp      | 27 degrees C      | ok
              DIMM 3 Temp      | no reading        | ns
              DIMM 4 Temp      | 29 degrees C      | ok
              DIMM 5 Temp      | 30 degrees C      | ok
              DIMM 6 Temp      | 29 degrees C      | ok
              DIMM 7 Temp      | 29 degrees C      | ok
              DIMM 8 Temp      | 29 degrees C      | ok
              DIMM 9 Temp      | 29 degrees C      | ok
              DIMM 10 Temp     | no reading        | ns
              DIMM 11 Temp     | 27 degrees C      | ok
              DIMM 12 Temp     | no reading        | ns
              

              Then check the fans rpm (previously 18000 front & 15000 rear)
              ipmitool sdr | grep -i fan

              Fan Mismatch     | 0x00              | ok
              Fan 1 Front Tach | 7168 RPM          | ok
              Fan 2 Front Tach | 7168 RPM          | ok
              Fan 3 Front Tach | 7168 RPM          | ok
              Fan 4 Front Tach | 7168 RPM          | ok
              Fan 5 Front Tach | 7168 RPM          | ok
              Fan 6 Front Tach | 7168 RPM          | ok
              Fan 7 Front Tach | 0 RPM             | ok
              Fan 1 Rear Tach  | 6048 RPM          | ok
              Fan 2 Rear Tach  | 5940 RPM          | ok
              Fan 3 Rear Tach  | 6048 RPM          | ok
              Fan 4 Rear Tach  | 5940 RPM          | ok
              Fan 5 Rear Tach  | 5940 RPM          | ok
              Fan 6 Rear Tach  | 5940 RPM          | ok
              Fan 7 Rear Tach  | 0 RPM             | ok
              Sys Fan Pwr      | 6 Watts           | ok
              

              ed7d3e6f-a262-4663-bc72-b01cb34eaef9-image.png

              1 Reply Last reply Reply Quote 0
              • olivierlambertO Offline
                olivierlambert Vates 🪐 Co-Founder CEO
                last edited by

                Hi,

                Does it solve the fan speed issue? If yes, might worth digging more.

                R 1 Reply Last reply Reply Quote 0
                • R Offline
                  Riven @olivierlambert
                  last edited by

                  @olivierlambert said in High Fan Speed Issue on Lenovo ThinkSystem Servers:

                  Hi,

                  Does it solve the fan speed issue? If yes, might worth digging more.

                  Yes absolutely - fans are operating as per normal/expectation now.

                  According to https://support.lenovo.com/ie/en/solutions/tt2254-xenserver-8-cannot-acquire-the-dimm-temperature-and-fan-speed-is-too-fast-on-the-amd-platform-lenovo-thinksystem this is a work around.

                  The main problem is:

                  CONFIG_X86_AMD_PLATFORM_DEVICE is a configuration setting in Linux kernel which would affect initial system HW setting. In this case, due to CONFIG_X86_AMD_PLATFORM_DEVICE is not set, the clock source of AMDI0010 (the device inside CPU) can't be registered which results in incorrect I2C command output from it and causes the DIMM temperature retrieval failure in XCC side.
                  The system fan speed is automatically varies based on DIMM temperature readings, and when the DIMM temperature being error, the fan speed will be tuned to high rotation.

                  R 1 Reply Last reply Reply Quote 0
                  • R Offline
                    Riven @Riven
                    last edited by

                    grep CONFIG_X86_AMD_PLATFORM_DEVICE /boot/config-4.19.0+1
                    # CONFIG_X86_AMD_PLATFORM_DEVICE is not set
                    

                    A rebuilt kernel with this enabled might be all is needed.

                    T 1 Reply Last reply Reply Quote 0
                    • D Offline
                      DeOccultist @RIX_IT
                      last edited by

                      @RIX_IT
                      I've been informed by XenServer trial support that Lenovo has filed the ticket LEN-605 for this issue, it's probably a private issue tracker though.
                      They'll let me know once it is fixed.

                      1 Reply Last reply Reply Quote 1
                      • olivierlambertO Offline
                        olivierlambert Vates 🪐 Co-Founder CEO
                        last edited by

                        Thanks for the feedback everyone. Let's see what happens next šŸ™‚

                        1 Reply Last reply Reply Quote 0
                        • T Offline
                          ThierryEscande Vates 🪐 XCP-ng Team @Riven
                          last edited by ThierryEscande

                          @Riven said in High Fan Speed Issue on Lenovo ThinkSystem Servers:

                          grep CONFIG_X86_AMD_PLATFORM_DEVICE /boot/config-4.19.0+1
                          # CONFIG_X86_AMD_PLATFORM_DEVICE is not set
                          

                          A rebuilt kernel with this enabled might be all is needed.

                          Hi,

                          We're building kernel-alt packages for both XCP-ng 8.2 and 8.3 with X86_AMD_PLATFORM_DEVICE enabled. We'll notify you when they are available for testing.

                          1 Reply Last reply Reply Quote 1
                          • T Offline
                            ThierryEscande Vates 🪐 XCP-ng Team
                            last edited by ThierryEscande

                            The kernel-alt package with X86_AMD_PLATFORM_DEVICE enabled is available for testing.

                            This is for XCP-ng 8.2.1 only for now.

                            Use yum to install it:

                            yum --enablerepo=xcp-ng-testing install kernel-alt
                            

                            Reboot and select XCP-ng kernel-alt 4.19.265 at the grub screen.

                            R 1 Reply Last reply Reply Quote 0
                            • R Offline
                              Riven @ThierryEscande
                              last edited by

                              @ThierryEscande said in High Fan Speed Issue on Lenovo ThinkSystem Servers:

                              The kernel-alt package with X86_AMD_PLATFORM_DEVICE enabled is available for testing.

                              This is for XCP-ng 8.2.1 only for now.

                              Use yum to install it:

                              yum --enablerepo=xcp-ng-testing install kernel-alt
                              

                              Reboot and select XCP-ng kernel-alt 4.19.265 at the grub screen.

                              It fixes the memory temp reading, and therefore fan controls - BUT I no longer have any networking.
                              Reboot to std kernel and its back just fine.

                              rpviewer(1).png

                              1 Reply Last reply Reply Quote 0
                              • R Offline
                                Riven
                                last edited by

                                Kernel config differences from existing std (4.19.0+1) to testing (4.19.265)

                                Network interfaces we have are Intel(R) E810-DA2 10/25GbE SFP28 2-Port

                                # Linux/x86 4.19.0+1 Kernel Configuration                     | # Linux/x86 4.19.265 Kernel Configuration
                                                                                              > CONFIG_CC_HAS_ASM_GOTO=y
                                                                                              > # CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
                                                                                              > CONFIG_SYSTEM_DATA_VERIFICATION=y
                                # CONFIG_X86_AMD_PLATFORM_DEVICE is not set                   | CONFIG_X86_AMD_PLATFORM_DEVICE=y
                                                                                              > CONFIG_X86_INTEL_TSX_MODE_OFF=y
                                                                                              > # CONFIG_X86_INTEL_TSX_MODE_ON is not set
                                                                                              > # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
                                # CONFIG_DELL_RBU is not set                                  | CONFIG_DELL_RBU=m
                                                                                              > CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
                                                                                              > CONFIG_ARCH_USE_MEMREMAP_PROT=y
                                CONFIG_ASN1=m                                                 | CONFIG_ASN1=y
                                                                                              > CONFIG_UNIX_SCM=y
                                # CONFIG_WIRELESS is not set                                  | CONFIG_WIRELESS=y
                                                                                              > CONFIG_CFG80211=m
                                                                                              > # CONFIG_NL80211_TESTMODE is not set
                                                                                              > # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
                                                                                              > # CONFIG_CFG80211_CERTIFICATION_ONUS is not set
                                                                                              > CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
                                                                                              > CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
                                                                                              > CONFIG_CFG80211_DEFAULT_PS=y
                                                                                              > # CONFIG_CFG80211_DEBUGFS is not set
                                                                                              > CONFIG_CFG80211_CRDA_SUPPORT=y
                                                                                              > # CONFIG_CFG80211_WEXT is not set
                                                                                              > # CONFIG_MAC80211 is not set
                                                                                              > CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
                                # CONFIG_FW_LOADER_USER_HELPER is not set                     | CONFIG_FW_LOADER_USER_HELPER=y
                                                                                              > # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
                                # CONFIG_BLK_DEV_SR_VENDOR is not set                         <
                                # CONFIG_ASIX_PHY is not set                                  | # CONFIG_AX88796B_PHY is not set
                                # CONFIG_WLAN is not set                                      | CONFIG_WLAN=y
                                                                                              > # CONFIG_WIRELESS_WDS is not set
                                                                                              > CONFIG_WLAN_VENDOR_ADMTEK=y
                                                                                              > CONFIG_WLAN_VENDOR_ATH=y
                                                                                              > # CONFIG_ATH_DEBUG is not set
                                                                                              > # CONFIG_ATH5K_PCI is not set
                                                                                              > # CONFIG_ATH6KL is not set
                                                                                              > # CONFIG_WIL6210 is not set
                                                                                              > CONFIG_WLAN_VENDOR_ATMEL=y
                                                                                              > # CONFIG_ATMEL is not set
                                                                                              > CONFIG_WLAN_VENDOR_BROADCOM=y
                                                                                              > # CONFIG_BRCMFMAC is not set
                                                                                              > CONFIG_WLAN_VENDOR_CISCO=y
                                                                                              > # CONFIG_AIRO is not set
                                                                                              > CONFIG_WLAN_VENDOR_INTEL=y
                                                                                              > # CONFIG_IPW2100 is not set
                                                                                              > # CONFIG_IPW2200 is not set
                                                                                              > CONFIG_WLAN_VENDOR_INTERSIL=y
                                                                                              > # CONFIG_HOSTAP is not set
                                                                                              > # CONFIG_HERMES is not set
                                                                                              > # CONFIG_PRISM54 is not set
                                                                                              > CONFIG_WLAN_VENDOR_MARVELL=y
                                                                                              > # CONFIG_LIBERTAS is not set
                                                                                              > # CONFIG_MWIFIEX is not set
                                                                                              > CONFIG_WLAN_VENDOR_MEDIATEK=y
                                                                                              > CONFIG_WLAN_VENDOR_RALINK=y
                                                                                              > CONFIG_WLAN_VENDOR_REALTEK=y
                                                                                              > CONFIG_WLAN_VENDOR_RSI=y
                                                                                              > CONFIG_WLAN_VENDOR_ST=y
                                                                                              > CONFIG_WLAN_VENDOR_TI=y
                                                                                              > CONFIG_WLAN_VENDOR_ZYDAS=y
                                                                                              > # CONFIG_USB_ZD1201 is not set
                                                                                              > CONFIG_WLAN_VENDOR_QUANTENNA=y
                                                                                              > # CONFIG_QTNFMAC_PEARL_PCIE is not set
                                                                                              > # CONFIG_USB_NET_RNDIS_WLAN is not set
                                                                                              > # CONFIG_THUNDERBOLT_NET is not set
                                # CONFIG_NVM is not set                                       <
                                                                                              > CONFIG_LDISC_AUTOLOAD=y
                                # CONFIG_R3964 is not set                                     <
                                                                                              > CONFIG_RANDOM_TRUST_BOOTLOADER=y
                                # CONFIG_PINCTRL is not set                                   | CONFIG_PINCTRL=y
                                                                                              > # CONFIG_DEBUG_PINCTRL is not set
                                                                                              > # CONFIG_PINCTRL_AMD is not set
                                                                                              > # CONFIG_PINCTRL_MCP23S08 is not set
                                                                                              > # CONFIG_PINCTRL_SX150X is not set
                                                                                              > # CONFIG_PINCTRL_BAYTRAIL is not set
                                                                                              > # CONFIG_PINCTRL_CHERRYVIEW is not set
                                                                                              > # CONFIG_PINCTRL_BROXTON is not set
                                                                                              > # CONFIG_PINCTRL_CANNONLAKE is not set
                                                                                              > # CONFIG_PINCTRL_CEDARFORK is not set
                                                                                              > # CONFIG_PINCTRL_DENVERTON is not set
                                                                                              > # CONFIG_PINCTRL_GEMINILAKE is not set
                                                                                              > # CONFIG_PINCTRL_ICELAKE is not set
                                                                                              > # CONFIG_PINCTRL_LEWISBURG is not set
                                                                                              > # CONFIG_PINCTRL_SUNRISEPOINT is not set
                                                                                              > # CONFIG_BATTERY_RT5033 is not set
                                CONFIG_DRM_I915_GVT_XENGT=m                                   <
                                CONFIG_FB=y                                                   <
                                CONFIG_FIRMWARE_EDID=y                                        <
                                                                                              > CONFIG_FB=y
                                                                                              > CONFIG_FIRMWARE_EDID=y
                                CONFIG_VGACON_SOFT_SCROLLBACK=y                               <
                                CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64                         <
                                # CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT  <
                                # CONFIG_USB_RIO500 is not set                                <
                                # CONFIG_THUNDERBOLT is not set                               | CONFIG_THUNDERBOLT=m
                                # CONFIG_NTFS_RW is not set                                   | CONFIG_NTFS_RW=y
                                # CONFIG_IMA_TEMPLATE is not set                              <
                                CONFIG_CRYPTO_AKCIPHER=m                                      | CONFIG_CRYPTO_AKCIPHER=y
                                CONFIG_CRYPTO_RSA=m                                           | CONFIG_CRYPTO_RSA=y
                                # CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE is not set             | CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
                                                                                              > CONFIG_X509_CERTIFICATE_PARSER=y
                                                                                              > CONFIG_PKCS7_MESSAGE_PARSER=y
                                                                                              > # CONFIG_PKCS7_TEST_KEY is not set
                                                                                              > # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
                                # CONFIG_SYSTEM_TRUSTED_KEYRING is not set                    | CONFIG_SYSTEM_TRUSTED_KEYRING=y
                                                                                              > CONFIG_SYSTEM_TRUSTED_KEYS=""
                                                                                              > # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
                                                                                              > # CONFIG_SECONDARY_TRUSTED_KEYRING is not set
                                CONFIG_OID_REGISTRY=m                                         | CONFIG_OID_REGISTRY=y
                                
                                1 Reply Last reply Reply Quote 0
                                • R Offline
                                  Riven
                                  last edited by

                                  Looks like the "ice" driver is never initialized/loaded, which is what the NIC requires.

                                  Also appears to be some IPMI_SI errors

                                  R 1 Reply Last reply Reply Quote 0
                                  • R Offline
                                    Riven @Riven
                                    last edited by

                                    Tested 4.19.265.1 which also has no networking for me, so its not the most recent update that killed it.

                                    1 Reply Last reply Reply Quote -1
                                    • R Offline
                                      Riven
                                      last edited by Riven

                                      @ThierryEscande

                                      4.19.265-1 & -2 (havent tried earlier ones)

                                      # dmesg | grep -i intel
                                         Intel GenuineIntel
                                       ioatdma: Intel(R) QuickData Technology Driver 4.00
                                      # dmesg | grep eth
                                       xen_netfront: Initialising Xen virtual ethernet driver
                                      

                                      4.19.0+1

                                      # dmesg | grep -i intel
                                         Intel GenuineIntel
                                       ioatdma: Intel(R) QuickData Technology Driver 4.00
                                       ice: Intel(R) Ethernet Connection E800 Series Linux Driver - version 1.6.4
                                       ice: Copyright (C) 2018-2021, Intel Corporation.
                                      
                                      # dmesg | grep eth
                                       xen_netfront: Initialising Xen virtual ethernet driver
                                       ice 0000:41:00.0 side-1974-eth0: renamed from eth0
                                       ice 0000:41:00.1 side-1128-eth1: renamed from eth1
                                       ice 0000:81:00.0 side-3431-eth2: renamed from eth2
                                       ice 0000:81:00.1 side-597-eth3: renamed from eth3
                                       ice 0000:41:00.0 eth0: renamed from side-1974-eth0
                                       ice 0000:41:00.1 eth1: renamed from side-1128-eth1
                                       ice 0000:81:00.0 eth2: renamed from side-3431-eth2
                                       ice 0000:81:00.1 eth3: renamed from side-597-eth3
                                       device eth0 entered promiscuous mode
                                       device eth2 entered promiscuous mode
                                       ice 0000:81:00.0 eth2: NIC Link is up 10 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: NONE, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
                                       8021q: adding VLAN 0 to HW filter on device eth2
                                       ice 0000:41:00.0 eth0: NIC Link is up 10 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: NONE, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
                                       8021q: adding VLAN 0 to HW filter on device eth0
                                       device eth1 entered promiscuous mode
                                       device eth3 entered promiscuous mode
                                       ice 0000:41:00.1 eth1: NIC Link is up 10 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: NONE, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
                                       8021q: adding VLAN 0 to HW filter on device eth1
                                       ice 0000:81:00.1 eth3: NIC Link is up 10 Gbps Full Duplex, Requested FEC: RS-FEC, Negotiated FEC: NONE, Autoneg Advertised: Off, Autoneg Negotiated: False, Flow Control: None
                                       8021q: adding VLAN 0 to HW filter on device eth3
                                       8021q: adding VLAN 0 to HW filter on device eth2
                                       8021q: adding VLAN 0 to HW filter on device eth2
                                       8021q: adding VLAN 0 to HW filter on device eth3
                                       8021q: adding VLAN 0 to HW filter on device eth3
                                       8021q: adding VLAN 0 to HW filter on device eth1
                                       8021q: adding VLAN 0 to HW filter on device eth1
                                       8021q: adding VLAN 0 to HW filter on device eth0
                                       8021q: adding VLAN 0 to HW filter on device eth0
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • bleaderB Offline
                                        bleader Vates 🪐 XCP-ng Team
                                        last edited by

                                        Thierry is on holidays for now šŸ™‚

                                        It is more likely due to the fact the ice driver is either coming from the intel-ice or intel-ice-alt which are both for the main kernel, the -alt one being a more up to date version, and not as the confusing name could imply, for the kernel-alt.

                                        The kernel-alt is in any case a debugging and testing kernel and not meant for production, but your tests confirmed that this seems to fix the fan speed issue, now we can discuss internally about what to do.

                                        1 Reply Last reply Reply Quote 0
                                        • L Offline
                                          LennertvdBerg @bleader
                                          last edited by

                                          @bleader I've done exactly the same on my ThinkSystem SR665 V3, BMC Version
                                          3.20 (Build ID: KAX334O), UEFI Version 4.20 (Build ID: KAE120J), LXPM Version 4.12 (Build ID: GNL114G) and it worked;

                                          # Found which driver to blacklist from kernel init
                                          fgrep i2c /boot/System.map-4.19.0+1 | grep init
                                          [10:10 xcp-ng-host1 ~]# fgrep i2c /boot/System.map-4.19.0+1 | grep init
                                          ffffffff815172f0 T drm_i2c_encoder_init
                                          ffffffff815574c0 T __regmap_init_i2c
                                          ffffffff81557510 T __devm_regmap_init_i2c
                                          ffffffff815d0700 t i2c_dw_init_master
                                          ffffffff815d14f0 t i2c_dw_init_slave
                                          ffffffff81ea9b40 r __ksymtab_drm_i2c_encoder_init
                                          ffffffff81eb0570 r __ksymtab___devm_regmap_init_i2c
                                          ffffffff81eb0838 r __ksymtab___regmap_init_i2c
                                          ffffffff81edc1a9 r __kstrtab_drm_i2c_encoder_init
                                          ffffffff81edffcd r __kstrtab___devm_regmap_init_i2c
                                          ffffffff81edffe4 r __kstrtab___regmap_init_i2c
                                          ffffffff8248156d t i2c_init
                                          ffffffff82481b65 t dw_i2c_init_driver
                                          ffffffff8255fe48 t __initcall_i2c_init2
                                          ffffffff8255ffa8 t __initcall_dw_i2c_init_driver4
                                          

                                          In /etc/grub-efi.cfg I added initcall_blacklist=dw_i2c_init_driver and ran grub-mkconfig then rebooted.

                                          terminal_input serial console
                                          terminal_output serial console
                                          set default=0
                                          set timeout=5
                                          menuentry 'XCP-ng' {
                                                  search --label --set root root-pxdcvt
                                                  multiboot2 /boot/xen.gz dom0_mem=7568M,max:7568M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G console=vga vga=mode-0x0311
                                                  module2 /boot/vmlinuz-4.19-xen root=LABEL=root-pxdcvt ro nolvm hpet=disable rd.auto console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles initcall_blacklist=dw_i2c_init_driver
                                                  module2 /boot/initrd-4.19-xen.img
                                          }
                                          

                                          Run grub-mkconfig then rebooted

                                          grub-mkconfig
                                          

                                          I first checked the current system temperatures and fan speeds (configured at fix RPM);

                                          [10:17 xcp-ng-host1 ~]# ipmitool sdr | grep -i temp
                                          Ambient Temp     | 30 degrees C      | ok
                                          Exhaust Temp     | 34 degrees C      | ok
                                          CPU 1 Temp       | 39 degrees C      | ok
                                          CPU 2 Temp       | no reading        | ns
                                          DIMM 1 Temp      | no reading        | ns
                                          DIMM 2 Temp      | no reading        | ns
                                          DIMM 3 Temp      | no reading        | ns
                                          DIMM 4 Temp      | no reading        | ns
                                          DIMM 5 Temp      | no reading        | ns
                                          DIMM 6 Temp      | 0 degrees C       | ok
                                          DIMM 7 Temp      | 0 degrees C       | ok
                                          DIMM 8 Temp      | no reading        | ns
                                          DIMM 9 Temp      | no reading        | ns
                                          DIMM 10 Temp     | no reading        | ns
                                          DIMM 11 Temp     | no reading        | ns
                                          DIMM 12 Temp     | no reading        | ns
                                          DIMM 13 Temp     | no reading        | ns
                                          DIMM 14 Temp     | no reading        | ns
                                          DIMM 15 Temp     | no reading        | ns
                                          DIMM 16 Temp     | no reading        | ns
                                          DIMM 17 Temp     | no reading        | ns
                                          DIMM 18 Temp     | no reading        | ns
                                          DIMM 19 Temp     | no reading        | ns
                                          DIMM 20 Temp     | no reading        | ns
                                          DIMM 21 Temp     | no reading        | ns
                                          DIMM 22 Temp     | no reading        | ns
                                          DIMM 23 Temp     | no reading        | ns
                                          DIMM 24 Temp     | no reading        | ns
                                          PCIe 1 OverTemp  | 0x00              | ok
                                          PCIe 2 OverTemp  | 0x00              | ok
                                          PCIe 3 OverTemp  | 0x00              | ok
                                          OCP OverTemp     | 0x00              | ok
                                          [10:18 xcp-ng-host1 ~]# ipmitool sdr | grep -i fan
                                          Fan Mismatch     | 0x00              | ok
                                          Fan 1 Front Tach | 6642 RPM          | ok
                                          Fan 2 Front Tach | 6642 RPM          | ok
                                          Fan 3 Front Tach | 6724 RPM          | ok
                                          Fan 4 Front Tach | 6560 RPM          | ok
                                          Fan 5 Front Tach | 6642 RPM          | ok
                                          Fan 6 Tach       | 0 RPM             | ok
                                          Fan 1 Rear Tach  | 6225 RPM          | ok
                                          Fan 2 Rear Tach  | 6150 RPM          | ok
                                          Fan 3 Rear Tach  | 6300 RPM          | ok
                                          Fan 4 Rear Tach  | 6150 RPM          | ok
                                          Fan 5 Rear Tach  | 6300 RPM          | ok
                                          Sys Fan Pwr      | 18 Watts          | ok
                                          

                                          I followed by a reboot of the Xclarity BMC controller and the new readings are;

                                          [10:23 xcp-ng-host1 ~]# ipmitool sdr | grep -i temp
                                          Ambient Temp     | 30 degrees C      | ok
                                          Exhaust Temp     | 34 degrees C      | ok
                                          CPU 1 Temp       | 40 degrees C      | ok
                                          CPU 2 Temp       | no reading        | ns
                                          DIMM 1 Temp      | no reading        | ns
                                          DIMM 2 Temp      | no reading        | ns
                                          DIMM 3 Temp      | no reading        | ns
                                          DIMM 4 Temp      | no reading        | ns
                                          DIMM 5 Temp      | no reading        | ns
                                          DIMM 6 Temp      | 38 degrees C      | ok
                                          DIMM 7 Temp      | 37 degrees C      | ok
                                          DIMM 8 Temp      | no reading        | ns
                                          DIMM 9 Temp      | no reading        | ns
                                          DIMM 10 Temp     | no reading        | ns
                                          DIMM 11 Temp     | no reading        | ns
                                          DIMM 12 Temp     | no reading        | ns
                                          DIMM 13 Temp     | no reading        | ns
                                          DIMM 14 Temp     | no reading        | ns
                                          DIMM 15 Temp     | no reading        | ns
                                          DIMM 16 Temp     | no reading        | ns
                                          DIMM 17 Temp     | no reading        | ns
                                          DIMM 18 Temp     | no reading        | ns
                                          DIMM 19 Temp     | no reading        | ns
                                          DIMM 20 Temp     | no reading        | ns
                                          DIMM 21 Temp     | no reading        | ns
                                          DIMM 22 Temp     | no reading        | ns
                                          DIMM 23 Temp     | no reading        | ns
                                          DIMM 24 Temp     | no reading        | ns
                                          PCIe 1 OverTemp  | 0x00              | ok
                                          PCIe 2 OverTemp  | 0x00              | ok
                                          PCIe 3 OverTemp  | 0x00              | ok
                                          OCP OverTemp     | 0x00              | ok
                                          [10:26 xcp-ng-host1 ~]# ipmitool sdr | grep -i fan
                                          Fan Mismatch     | 0x00              | ok
                                          Fan 1 Front Tach | 8528 RPM          | ok
                                          Fan 2 Front Tach | 8446 RPM          | ok
                                          Fan 3 Front Tach | 8446 RPM          | ok
                                          Fan 4 Front Tach | 8610 RPM          | ok
                                          Fan 5 Front Tach | 8446 RPM          | ok
                                          Fan 6 Tach       | 0 RPM             | ok
                                          Fan 1 Rear Tach  | 7950 RPM          | ok
                                          Fan 2 Rear Tach  | 7950 RPM          | ok
                                          Fan 3 Rear Tach  | 8025 RPM          | ok
                                          Fan 4 Rear Tach  | 7950 RPM          | ok
                                          Fan 5 Rear Tach  | 7875 RPM          | ok
                                          Sys Fan Pwr      | 24 Watts          | ok
                                          
                                          1 Reply Last reply Reply Quote 1
                                          • T Offline
                                            ThierryEscande Vates 🪐 XCP-ng Team
                                            last edited by ThierryEscande

                                            Issue quick summary

                                            Symptoms

                                            On some Lenovo servers, DIMM temperature reading reports errors which results in higher fan speed.

                                            Known impacted systems

                                            • ThinkSystem SR635 V3
                                            • ThinkSystem SR655 V3

                                            Possible solutions (but not possible/recommended)

                                            Enable CONFIG_X86_AMD_PLATFORM_DEVICE in kernel configuration

                                            By enabling this driver, the hardware device is correctly initialized and this solution fixed the issue. Unfortunately, this is not a viable solution.

                                            Main kernel package

                                            Ideally, enabling CONFIG_X86_AMD_PLATFORM_DEVICE in XCP-ng main kernel would solve the issue but this is actually not possible as this also enables CONFIG_PINCTRL. Enabling CONFIG_PINCTRL modifies the device internal kernel structure, resulting in kernel ABI changes. Such changes in the kernel ABI would break all external driver packages.

                                            Alternate kernel package

                                            CONFIG_X86_AMD_PLATFORM_DEVICE is now enable in the kernel-alt package for XCP-ng 8.2 and 8.3 since we don't really care about ABI stability for this kernel.

                                            But this kernel is not meant to be used in production as it is less tested and no external driver package can be used with it. Therefore, even if it fixes the issue, using the kernel-alt package is highly discouraged.

                                            Actual workaround

                                            Blacklist i2c_designware_platform driver

                                            From my understanding, without CONFIG_X86_AMD_PLATFORM_DEVICE enabled in the kernel, some hardware initializations are missing resulting in incorrect values reported by the i2c_designware_platform driver. Preventing this driver from being probed by the kernel seems to solve the issue.

                                            Since this driver is built-in in the XCP-ng kernel and not compiled as a module, the blacklist method (shared by @Riven in this post) is as follow:

                                            • Edit /etc/grub-efi.cfg and add initcall_blacklist=dw_i2c_init_driver to the line module2 /boot/vmlinuz-4.19-xen in the XCP-ng menu entry.
                                            ...
                                            menuentry 'XCP-ng' {
                                                    search --label --set root root-pxdcvt
                                                    multiboot2 /boot/xen.gz dom0_mem=7568M,max:7568M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=256M,below=4G console=vga vga=mode-0x0311
                                                    module2 /boot/vmlinuz-4.19-xen root=LABEL=root-pxdcvt ro nolvm hpet=disable rd.auto console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles initcall_blacklist=dw_i2c_init_driver
                                                    module2 /boot/initrd-4.19-xen.img
                                            }
                                            ...
                                            
                                            • Run grub-mkconfig and reboot.

                                            Lenovo support

                                            Lenovo is aware and is discussing with Citrix about this issue. As a reference, the Lenovo support entry can be found here.

                                            RIX_ITR 1 Reply Last reply Reply Quote 6
                                            • First post
                                              Last post