[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ91LBYBVexcOpk6zqL=mup8VJ7RDEepHk+0Y_GDt5B2+8iyg@mail.gmail.com>
Date: Fri, 13 Jun 2025 22:47:52 +0530
From: Abinash <abinashlalotra@...il.com>
To: Sean Christopherson <seanjc@...gle.com>
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org, vkuznets@...hat.com,
pbonzini@...hat.com, tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
dave.hansen@...ux.intel.com, x86@...nel.org, hpa@...or.com,
avinashlalotra <abinashsinghlalotra@...il.com>
Subject: Re: [RFC PATCH] KVM: x86: Dynamically allocate bitmap to fix
-Wframe-larger-than error
I am building the kernel WITH LLVM.
KASAN is not enabled.
CONFIG_FRAME_WARN=1024 (default) . I used defconfig -> my system config ->
oldconfig to obtain the .config .
EXPERT=y So KVM_WERROR=y
I think this warning is due to FRAME_WARN=1024 .
I tried building the kernel seperatly using GCC . It built succesfully even
though FRAME_WARN=1024 in it.
Or then it can be a bad config also as mentioned earlier.
Hers is my full .config and also the result of " diff (config used with
GCC) (config used with LLVM)
-----------------------.config used with LLVM which gave that
error--------------------------------------------------------------
As config is too large for pasting here . I m attaching it
-------------------------------------------------------------------------------------------
----------------------------------------diff (config used with GCC) (config
used with LLVM)----------------------------------------
5,13c5,13
< CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
< CONFIG_CC_IS_GCC=y
< CONFIG_GCC_VERSION=130300
< CONFIG_CLANG_VERSION=0
< CONFIG_AS_IS_GNU=y
< CONFIG_AS_VERSION=24200
< CONFIG_LD_IS_BFD=y
< CONFIG_LD_VERSION=24200
< CONFIG_LLD_VERSION=0
---
> CONFIG_CC_VERSION_TEXT="Ubuntu clang version 18.1.3 (1ubuntu1)"
> CONFIG_GCC_VERSION=0
> CONFIG_CC_IS_CLANG=y
> CONFIG_CLANG_VERSION=180103
> CONFIG_AS_IS_LLVM=y
> CONFIG_AS_VERSION=180103
> CONFIG_LD_VERSION=0
> CONFIG_LD_IS_LLD=y
> CONFIG_LLD_VERSION=180103
22d21
< CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
197c196
< CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
---
> CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough"
199d197
< CONFIG_CC_NO_ARRAY_BOUNDS=y
201d198
< CONFIG_CC_NO_STRINGOP_OVERFLOW=y
371c368
< CONFIG_X86_FRED=y
---
> # CONFIG_X86_FRED is not set
411,412d407
< CONFIG_CC_HAS_MARCH_NATIVE=y
< # CONFIG_X86_NATIVE_CPU is not set
550d544
< CONFIG_CC_HAS_NAMED_AS=y
552d545
< CONFIG_USE_X86_SEG_SUPPORT=y
572c565
< CONFIG_MITIGATION_SLS=y
---
> # CONFIG_MITIGATION_SLS is not set
776d768
< # CONFIG_X86_X32_ABI is not set
817c809
< CONFIG_KVM_INTEL_PROVE_VE=y
---
> # CONFIG_KVM_INTEL_PROVE_VE is not set
844a837
> CONFIG_X86_DISABLED_FEATURE_FRED=y
933a927
> CONFIG_HAS_LTO_CLANG=y
934a929,930
> # CONFIG_LTO_CLANG_FULL is not set
> # CONFIG_LTO_CLANG_THIN is not set
935a932
> # CONFIG_AUTOFDO_CLANG is not set
937a935,936
> # CONFIG_CFI_CLANG is not set
> CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG=y
1023a1023
> CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
2136c2136
< CONFIG_BT_INTEL_PCIE=m
---
> # CONFIG_BT_INTEL_PCIE is not set
2725c2725
< CONFIG_MTD_UBI_NVMEM=m
---
> # CONFIG_MTD_UBI_NVMEM is not set
2898,2899c2898
< CONFIG_KEBA_CP500=m
< # CONFIG_KEBA_LAN9252 is not set
---
> # CONFIG_KEBA_CP500 is not set
3225c3224
< CONFIG_DM_VDO=m
---
> # CONFIG_DM_VDO is not set
3284c3283
< CONFIG_PFCP=m
---
> # CONFIG_PFCP is not set
3562c3561
< CONFIG_OCTEON_EP_VF=m
---
> # CONFIG_OCTEON_EP_VF is not set
3602c3601
< CONFIG_FBNIC=m
---
> # CONFIG_FBNIC is not set
3729c3728
< CONFIG_TEHUTI_TN40=m
---
> # CONFIG_TEHUTI_TN40 is not set
3772c3771
< CONFIG_AIR_EN8811H_PHY=m
---
> # CONFIG_AIR_EN8811H_PHY is not set
3815,3816c3814,3815
< CONFIG_QCA83XX_PHY=m
< CONFIG_QCA808X_PHY=m
---
> # CONFIG_QCA83XX_PHY is not set
> # CONFIG_QCA808X_PHY is not set
3837,3838c3836,3837
< CONFIG_PSE_PD692X0=m
< CONFIG_PSE_TPS23881=m
---
> # CONFIG_PSE_PD692X0 is not set
> # CONFIG_PSE_TPS23881 is not set
3853c3852
< # CONFIG_CAN_CC770_ISA is not set
---
> CONFIG_CAN_CC770_ISA=m
3857c3856
< CONFIG_CAN_ESD_402_PCI=m
---
> # CONFIG_CAN_ESD_402_PCI is not set
3873c3872
< # CONFIG_CAN_SJA1000_ISA is not set
---
> CONFIG_CAN_SJA1000_ISA=m
4072c4071
< CONFIG_ATH12K_DEBUGFS=y
---
> # CONFIG_ATH12K_DEBUGFS is not set
4261c4260
< CONFIG_RTL8192DU=m
---
> # CONFIG_RTL8192DU is not set
4280d4278
< CONFIG_RTW88_8703B=m
4291c4289
< CONFIG_RTW88_8723CS=m
---
> # CONFIG_RTW88_8723CS is not set
4311d4308
< CONFIG_RTW89_8922A=m
4317c4314
< CONFIG_RTW89_8922AE=m
---
> # CONFIG_RTW89_8922AE is not set
4577,4579c4574,4575
< CONFIG_TOUCHSCREEN_GOODIX_BERLIN_CORE=m
< CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C=m
< CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI=m
---
> # CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set
> # CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set
4665d4660
< CONFIG_INPUT_CS40L50_VIBRA=m
4887c4882
< # CONFIG_TCG_TPM2_HMAC is not set
---
> CONFIG_TCG_TPM2_HMAC=y
4968c4963
< CONFIG_I2C_ZHAOXIN=m
---
> # CONFIG_I2C_ZHAOXIN is not set
4982d4976
< # CONFIG_I2C_DESIGNWARE_AMDISP is not set
4988d4981
< # CONFIG_I2C_KEBA is not set
5046c5039
< CONFIG_SPI_CH341=m
---
> # CONFIG_SPI_CH341 is not set
5057d5049
< # CONFIG_SPI_KSPI2 is not set
5130c5122
< CONFIG_PTP_1588_CLOCK_FC3W=m
---
> # CONFIG_PTP_1588_CLOCK_FC3W is not set
5143d5134
< # CONFIG_PINCTRL_AMDISP is not set
5211c5202
< CONFIG_GPIO_GRANITERAPIDS=m
---
> # CONFIG_GPIO_GRANITERAPIDS is not set
5259c5250
< CONFIG_GPIO_CROS_EC=m
---
> # CONFIG_GPIO_CROS_EC is not set
5328,5329c5319,5320
< CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER=m
< CONFIG_GPIO_VIRTUSER=m
---
> # CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set
> # CONFIG_GPIO_VIRTUSER is not set
5345c5336
< CONFIG_W1_MASTER_UART=m
---
> # CONFIG_W1_MASTER_UART is not set
5378c5369
< CONFIG_POWER_SEQUENCING=m
---
> # CONFIG_POWER_SEQUENCING is not set
5416c5407
< CONFIG_BATTERY_MAX1720X=m
---
> # CONFIG_BATTERY_MAX1720X is not set
5497c5488
< CONFIG_SENSORS_ASUS_ROG_RYUJIN=m
---
> # CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set
5501,5502d5491
< # CONFIG_SENSORS_KBATT is not set
< # CONFIG_SENSORS_KFAN is not set
5507c5496
< CONFIG_SENSORS_CHIPCAP2=m
---
> # CONFIG_SENSORS_CHIPCAP2 is not set
5543c5532
< CONFIG_SENSORS_LENOVO_EC=m
---
> # CONFIG_SENSORS_LENOVO_EC is not set
5558c5547
< CONFIG_SENSORS_LTC4282=m
---
> # CONFIG_SENSORS_LTC4282 is not set
5611c5600
< CONFIG_SENSORS_NZXT_KRAKEN3=m
---
> # CONFIG_SENSORS_NZXT_KRAKEN3 is not set
5624c5613
< CONFIG_SENSORS_ADP1050=m
---
> # CONFIG_SENSORS_ADP1050 is not set
5658c5647
< CONFIG_SENSORS_MP2891=m
---
> # CONFIG_SENSORS_MP2891 is not set
5660c5649
< CONFIG_SENSORS_MP2993=m
---
> # CONFIG_SENSORS_MP2993 is not set
5663c5652
< CONFIG_SENSORS_MP5920=m
---
> # CONFIG_SENSORS_MP5920 is not set
5665c5654
< CONFIG_SENSORS_MP9941=m
---
> # CONFIG_SENSORS_MP9941 is not set
5668c5657
< CONFIG_SENSORS_MPQ8785=m
---
> # CONFIG_SENSORS_MPQ8785 is not set
5684c5673
< CONFIG_SENSORS_XDP710=m
---
> # CONFIG_SENSORS_XDP710 is not set
5689,5690c5678,5679
< CONFIG_SENSORS_PT5161L=m
< CONFIG_SENSORS_PWM_FAN=m
---
> # CONFIG_SENSORS_PT5161L is not set
> # CONFIG_SENSORS_PWM_FAN is not set
5711c5700
< CONFIG_SENSORS_SURFACE_FAN=m
---
> # CONFIG_SENSORS_SURFACE_FAN is not set
5721,5722c5710
< CONFIG_SENSORS_SPD5118=m
< # CONFIG_SENSORS_SPD5118_DETECT is not set
---
> # CONFIG_SENSORS_SPD5118 is not set
5830c5818
< CONFIG_CROS_EC_WATCHDOG=m
---
> # CONFIG_CROS_EC_WATCHDOG is not set
5835c5823
< CONFIG_LENOVO_SE10_WDT=m
---
> # CONFIG_LENOVO_SE10_WDT is not set
6059,6061c6047,6048
< CONFIG_MFD_CS40L50_CORE=m
< CONFIG_MFD_CS40L50_I2C=m
< CONFIG_MFD_CS40L50_SPI=m
---
> # CONFIG_MFD_CS40L50_I2C is not set
> # CONFIG_MFD_CS40L50_SPI is not set
6091d6077
< CONFIG_REGULATOR_DA903X=m
6538c6524
< CONFIG_VIDEO_INTEL_IPU6=m
---
> # CONFIG_VIDEO_INTEL_IPU6 is not set
6737,6738c6723,6724
< CONFIG_VIDEO_GC05A2=m
< CONFIG_VIDEO_GC08A3=m
---
> # CONFIG_VIDEO_GC05A2 is not set
> # CONFIG_VIDEO_GC08A3 is not set
6748c6734
< CONFIG_VIDEO_IMX283=m
---
> # CONFIG_VIDEO_IMX283 is not set
7192,7193c7178,7179
< CONFIG_MAX6959=m
< CONFIG_SEG_LED_GPIO=m
---
> # CONFIG_MAX6959 is not set
> # CONFIG_SEG_LED_GPIO is not set
7235,7236c7221,7222
< CONFIG_DRM_DISPLAY_DP_AUX_CEC=y
< CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y
---
> # CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
> # CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
7272c7258
< CONFIG_DRM_AMD_ISP=y
---
> # CONFIG_DRM_AMD_ISP is not set
7571c7557
< CONFIG_BACKLIGHT_KTD2801=m
---
> # CONFIG_BACKLIGHT_KTD2801 is not set
7589c7575
< CONFIG_BACKLIGHT_LM3509=m
---
> # CONFIG_BACKLIGHT_LM3509 is not set
7801c7787
< CONFIG_SND_HDA_CODEC_SENARYTECH=m
---
> # CONFIG_SND_HDA_CODEC_SENARYTECH is not set
8123c8109
< CONFIG_SND_SOC_AK4619=m
---
> # CONFIG_SND_SOC_AK4619 is not set
8159d8144
< CONFIG_SND_SOC_CS40L50=m
8185,8186c8170
< CONFIG_SND_SOC_CS530X=m
< CONFIG_SND_SOC_CS530X_I2C=m
---
> # CONFIG_SND_SOC_CS530X_I2C is not set
8195c8179
< CONFIG_SND_SOC_ES8311=m
---
> # CONFIG_SND_SOC_ES8311 is not set
8245c8229
< CONFIG_SND_SOC_PCM6240=m
---
> # CONFIG_SND_SOC_PCM6240 is not set
8355,8356c8339
< CONFIG_SND_SOC_WCD937X=m
< CONFIG_SND_SOC_WCD937X_SDW=m
---
> # CONFIG_SND_SOC_WCD937X_SDW is not set
8359,8360c8342
< CONFIG_SND_SOC_WCD939X=m
< CONFIG_SND_SOC_WCD939X_SDW=m
---
> # CONFIG_SND_SOC_WCD939X_SDW is not set
8565c8547
< CONFIG_HID_WINWING=m
---
> # CONFIG_HID_WINWING is not set
9032c9014
< CONFIG_TYPEC_MUX_IT5205=m
---
> # CONFIG_TYPEC_MUX_IT5205 is not set
9111d9092
< CONFIG_LEDS_EXPRESSWIRE=y
9171c9152
< CONFIG_LEDS_SPI_BYTE=m
---
> # CONFIG_LEDS_SPI_BYTE is not set
9188c9169
< CONFIG_LEDS_KTD202X=m
---
> # CONFIG_LEDS_KTD202X is not set
9216c9197
< CONFIG_LEDS_TRIGGER_INPUT_EVENTS=m
---
> # CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set
9371c9352
< CONFIG_RTC_DRV_RX8111=m
---
> # CONFIG_RTC_DRV_RX8111 is not set
9540c9521
< CONFIG_QAT_VFIO_PCI=m
---
> # CONFIG_QAT_VFIO_PCI is not set
9587c9568
< CONFIG_OCTEONEP_VDPA=m
---
> # CONFIG_OCTEONEP_VDPA is not set
9979c9960
< CONFIG_YT2_1380=m
---
> # CONFIG_YT2_1380 is not set
10040c10021
< # CONFIG_LENOVO_WMI_HOTKEY_UTILITIES is not set
---
> CONFIG_LENOVO_WMI_HOTKEY_UTILITIES=m
10098c10079
< CONFIG_INTEL_PLR_TPMI=m
---
> # CONFIG_INTEL_PLR_TPMI is not set
10101,10102c10082,10083
< CONFIG_ACPI_QUICKSTART=m
< CONFIG_MEEGOPAD_ANX7428=m
---
> # CONFIG_ACPI_QUICKSTART is not set
> # CONFIG_MEEGOPAD_ANX7428 is not set
10106c10087
< CONFIG_MSI_WMI_PLATFORM=m
---
> # CONFIG_MSI_WMI_PLATFORM is not set
10128c10109
< CONFIG_LENOVO_WMI_CAMERA=m
---
> # CONFIG_LENOVO_WMI_CAMERA is not set
10282c10263
< CONFIG_QCOM_PBS=m
---
> # CONFIG_QCOM_PBS is not set
10457c10438
< CONFIG_AD7173=m
---
> # CONFIG_AD7173 is not set
10465c10446
< CONFIG_AD7380=m
---
> # CONFIG_AD7380 is not set
10479c10460
< CONFIG_AD7944=m
---
> # CONFIG_AD7944 is not set
10514c10495
< CONFIG_MEDIATEK_MT6359_AUXADC=m
---
> # CONFIG_MEDIATEK_MT6359_AUXADC is not set
10522c10503
< CONFIG_PAC1934=m
---
> # CONFIG_PAC1934 is not set
10540c10521
< CONFIG_TI_ADS1119=m
---
> # CONFIG_TI_ADS1119 is not set
10542c10523
< CONFIG_TI_ADS1298=m
---
> # CONFIG_TI_ADS1298 is not set
10598,10600c10579
< CONFIG_ENS160=m
< CONFIG_ENS160_I2C=m
< CONFIG_ENS160_SPI=m
---
> # CONFIG_ENS160 is not set
10666c10645
< CONFIG_AD9739A=m
---
> # CONFIG_AD9739A is not set
10734c10713
< CONFIG_ADMFM2000=m
---
> # CONFIG_ADMFM2000 is not set
10851c10830
< CONFIG_APDS9306=m
---
> # CONFIG_APDS9306 is not set
10905c10884
< CONFIG_VEML6040=m
---
> # CONFIG_VEML6040 is not set
11107c11086
< CONFIG_PWM_GPIO=m
---
> # CONFIG_PWM_GPIO is not set
11127c11106
< CONFIG_RESET_GPIO=m
---
> # CONFIG_RESET_GPIO is not set
11237c11216
< CONFIG_FPGA_MGR_XILINX_SELECTMAP=m
---
> # CONFIG_FPGA_MGR_XILINX_SELECTMAP is not set
11409c11388
< CONFIG_NETFS_DEBUG=y
---
> # CONFIG_NETFS_DEBUG is not set
11570c11549
< CONFIG_EROFS_FS_ZIP_LZMA=y
---
> # CONFIG_EROFS_FS_ZIP_LZMA is not set
11572c11551
< CONFIG_EROFS_FS_ZIP_ZSTD=y
---
> # CONFIG_EROFS_FS_ZIP_ZSTD is not set
11861a11841
> CONFIG_CC_HAS_RANDSTRUCT=y
11862a11843
> # CONFIG_RANDSTRUCT_FULL is not set
12165a12147
> CONFIG_CRYPTO_LIB_AESCFB=y
12373a12356
> CONFIG_PAHOLE_HAS_BTF_TAG=y
12380d12362
< # CONFIG_READABLE_ASM is not set
12382d12363
< # CONFIG_DEBUG_SECTION_MISMATCH is not set
12420c12401
< CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y
---
> CONFIG_CC_HAS_UBSAN_ARRAY_BOUNDS=y
12422c12403
< CONFIG_UBSAN_BOUNDS_STRICT=y
---
> CONFIG_UBSAN_ARRAY_BOUNDS=y
12424d12404
< # CONFIG_UBSAN_DIV_ZERO is not set
12479a12460
> CONFIG_CC_HAS_KASAN_SW_TAGS=y
12489a12471,12472
> CONFIG_HAVE_KMSAN_COMPILER=y
> # CONFIG_KMSAN is not set
12651c12634
< CONFIG_FTRACE_MCOUNT_USE_CC=y
---
> CONFIG_FTRACE_MCOUNT_USE_OBJTOOL=y
------------------------------------------------------------------------------------------------------
On Fri, 13 Jun 2025 at 19:28, Sean Christopherson <seanjc@...gle.com> wrote:
> On Fri, Jun 13, 2025, avinashlalotra wrote:
> > Building the kernel with LLVM fails due to
> > a stack frame size overflow in `kvm_hv_flush_tlb()`:
> >
> > arch/x86/kvm/hyperv.c:2001:12: error: stack frame size (1336)
> exceeds limit (1024) in 'kvm_hv_flush_tlb' [-Werror,-Wframe-larger-than]
> >
> > The issue is caused by a large bitmap allocated on the stack. To resolve
> > this, dynamically allocate the bitmap using `bitmap_zalloc()` and free
> it with
> > `bitmap_free()` after use. This reduces the function's stack usage and
> avoids
> > the compiler error when `-Werror` is set.
>
> Can you provide your full .config? It's not at all difficult to get this
> function
> (and others) to exceed the frame size with various sanitizers and/or deubg
> options
> enabled, which is why KVM_WERROR depends on EXPERT=y or KASAN=n.
>
> config KVM_WERROR
> bool "Compile KVM with -Werror"
> # Disallow KVM's -Werror if KASAN is enabled, e.g. to guard against
> # randomized configs from selecting KVM_WERROR=y, which doesn't
> play
> # nice with KASAN. KASAN builds generates warnings for the default
> # FRAME_WARN, i.e. KVM_WERROR=y with KASAN=y requires special
> tuning.
> # Building KVM with -Werror and KASAN is still doable via enabling
> # the kernel-wide WERROR=y.
> depends on KVM && ((EXPERT && !KASAN) || WERROR)
>
> And also why kernel/configs/debug.config bumps the size to 2048.
>
> CONFIG_FRAME_WARN=2048
>
> > Please provide me feedback about this patch . There were more warnings
> like
> > that, So If this is the correct way to fic such issues then I will submit
> > patches for them.
>
> As above, this may just be a "bad" .config.
>
Content of type "text/html" skipped
View attachment "config.txt" of type "text/plain" (313464 bytes)
Powered by blists - more mailing lists