Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a5736426eb |
@@ -163,6 +163,24 @@ _acs_override="false"
|
||||
# This can be buggy and isn't recommended on a production machine, also enabling this option will not allow you to enable MGLRU.
|
||||
_bcachefs="false"
|
||||
|
||||
# Set to "true" to add multi-generational LRU framework support on kernel 5.18+ - Improves memory pressure handling - https://lore.kernel.org/lkml/20220706220022.968789-1-yuzhao@google.com/
|
||||
# Older kernel versions might have a patch available in the community-patches repo
|
||||
# ! This option will be disabled when bcachefs is enabled for now !
|
||||
_mglru="true"
|
||||
|
||||
# Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305
|
||||
# Can be enabled alongside _futex_waitv on 5.13+ to use it as a fallback for older Proton builds
|
||||
_fsync="true"
|
||||
|
||||
# Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback
|
||||
# https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev
|
||||
_futex2="true"
|
||||
|
||||
# Set to "true" to enable backported patches to add support for the futex_waitv() syscall, a new interface for fsync. It will appear in mainline at Linux 5.16 release and requires a wine/proton with builtin support for it. It's expected to be available in Valve Proton 6.3 stable soon - https://github.com/ValveSoftware/wine/pull/128
|
||||
# !! Disables futex2 interfaces support !!
|
||||
# https://github.com/andrealmeid/futex_waitv_patches
|
||||
_futex_waitv="false"
|
||||
|
||||
# Set to "true" to enable support for winesync, an experimental replacement for esync - requires patched wine - https://repo.or.cz/linux/zf.git/shortlog/refs/heads/winesync4
|
||||
# ! Can't be used on multiple kernels installed side-by-side, which will require https://aur.archlinux.org/packages/winesync-dkms/ instead of this option !
|
||||
_winesync="false"
|
||||
@@ -190,6 +208,9 @@ _compileroptlevel="2"
|
||||
# - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4
|
||||
_processor_opt="skylake"
|
||||
|
||||
# MuQSS only - Make IRQ threading compulsory (FORCE_IRQ_THREADING) - Default is "false"
|
||||
_irq_threading="false"
|
||||
|
||||
# CacULE only - Enable Response Driven Balancer, an experimental load balancer for CacULE
|
||||
_cacule_rdb="false"
|
||||
|
||||
@@ -206,6 +227,10 @@ _smt_nice="true"
|
||||
# Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false"
|
||||
_random_trust_cpu="true"
|
||||
|
||||
# MuQSS only - CPU scheduler runqueue sharing - No sharing (RQ_NONE), SMT (hyperthread) siblings (RQ_SMT), Multicore siblings (RQ_MC), Symmetric Multi-Processing (RQ_SMP), NUMA (RQ_ALL)
|
||||
# Valid values are "none", "smt", "mc", "mc-llc"(for zen), "smp", "all" - Kernel default is "smt"
|
||||
_runqueue_sharing=""
|
||||
|
||||
# Timer frequency - "100" "250" "300" "500" "750" "1000" ("2000" is available for cacule cpusched only) - More options available in kernel config prompt when left empty depending on selected cpusched with the default option pointed with a ">" (2000 for cacule, 100 for muqss and 1000 for other cpu schedulers)
|
||||
_timer_freq="500"
|
||||
|
||||
@@ -239,41 +264,14 @@ _custom_pkgbase=""
|
||||
# If left empty, it will use "-tkg-${_cpusched}${_compiler}" where "${_cpusched}" will be replaced by the user chosen scheduler, ${_compiler} will be replaced by "-llvm" if clang is used (nothing for GCC).
|
||||
_kernel_localversion=""
|
||||
|
||||
# Set to "true" to add back missing symbol for AES-NI/AVX support on ZFS - This is a legacy option that can be ignored on 5.10+ kernels - https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch
|
||||
_zfsfix="true"
|
||||
|
||||
# Set to your maximum number of CPUs (physical + logical cores) - Lower means less overhead - You can set it to "$(nproc)" to use the current host's CPU(s) core count, or leave empty to use default
|
||||
# If you set this to a lower value than you have cores, some cores will be disabled
|
||||
# Default Arch kernel value is 320
|
||||
_NR_CPUS_value=""
|
||||
|
||||
#### LEGACY OPTIONS ####
|
||||
|
||||
# Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305
|
||||
# Can be enabled alongside _futex_waitv on 5.13+ to use it as a fallback for older Proton builds
|
||||
_fsync="true"
|
||||
|
||||
# Set to "true" to enable backported patches to add support for the futex_waitv() syscall, a new interface for fsync. Upstream as of 5.16 and requires a wine/proton with builtin support for it - https://github.com/ValveSoftware/wine/pull/128
|
||||
# !! Disables futex2 interfaces support !!
|
||||
# https://github.com/andrealmeid/futex_waitv_patches
|
||||
_futex_waitv="true"
|
||||
|
||||
# Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback
|
||||
# https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev
|
||||
_futex2="true"
|
||||
|
||||
# Set to "true" to add back missing symbol for AES-NI/AVX support on ZFS - This is a legacy option that can be ignored on 5.10+ kernels - https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch
|
||||
_zfsfix="true"
|
||||
|
||||
# MuQSS only - CPU scheduler runqueue sharing - No sharing (RQ_NONE), SMT (hyperthread) siblings (RQ_SMT), Multicore siblings (RQ_MC), Symmetric Multi-Processing (RQ_SMP), NUMA (RQ_ALL)
|
||||
# Valid values are "none", "smt", "mc", "mc-llc"(for zen), "smp", "all" - Kernel default is "smt"
|
||||
_runqueue_sharing=""
|
||||
|
||||
# MuQSS only - Make IRQ threading compulsory (FORCE_IRQ_THREADING) - Default is "false"
|
||||
_irq_threading="false"
|
||||
|
||||
# Set to "true" to add multi-generational LRU framework support on kernel 5.18+ - Improves memory pressure handling - https://lore.kernel.org/lkml/20220706220022.968789-1-yuzhao@google.com/
|
||||
# Older kernel versions might have a patch available in the community-patches repo
|
||||
# Upstream as of 6.1
|
||||
# ! This option will be disabled when bcachefs is enabled !
|
||||
_mglru="true"
|
||||
|
||||
#### USER PATCHES ####
|
||||
|
||||
|
@@ -1,15 +1,15 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 6.2.0 Kernel Configuration
|
||||
# Linux/x86 6.2.0-rc1 Kernel Configuration
|
||||
#
|
||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20230201"
|
||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
|
||||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=120201
|
||||
CONFIG_GCC_VERSION=120200
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_AS_IS_GNU=y
|
||||
CONFIG_AS_VERSION=24000
|
||||
CONFIG_AS_VERSION=23900
|
||||
CONFIG_LD_IS_BFD=y
|
||||
CONFIG_LD_VERSION=24000
|
||||
CONFIG_LD_VERSION=23900
|
||||
CONFIG_LLD_VERSION=0
|
||||
CONFIG_CC_CAN_LINK=y
|
||||
CONFIG_CC_CAN_LINK_STATIC=y
|
||||
@@ -182,9 +182,10 @@ CONFIG_RCU_NOCB_CPU=y
|
||||
# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set
|
||||
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
|
||||
# CONFIG_TASKS_TRACE_RCU_READ_MB is not set
|
||||
CONFIG_RCU_LAZY=y
|
||||
# CONFIG_RCU_LAZY is not set
|
||||
# end of RCU Subsystem
|
||||
|
||||
CONFIG_BUILD_BIN2C=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_IKHEADERS=m
|
||||
@@ -205,7 +206,6 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
||||
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
||||
CONFIG_CC_HAS_INT128=y
|
||||
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
||||
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
|
||||
CONFIG_GCC12_NO_ARRAY_BOUNDS=y
|
||||
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
||||
CONFIG_ARCH_SUPPORTS_INT128=y
|
||||
@@ -241,7 +241,6 @@ CONFIG_UTS_NS=y
|
||||
CONFIG_TIME_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_USER_NS=y
|
||||
CONFIG_USER_NS_UNPRIVILEGED=y
|
||||
CONFIG_PID_NS=y
|
||||
CONFIG_NET_NS=y
|
||||
CONFIG_CHECKPOINT_RESTORE=y
|
||||
@@ -487,7 +486,7 @@ CONFIG_X86_INTEL_TSX_MODE_AUTO=y
|
||||
CONFIG_X86_SGX=y
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_STUB=y
|
||||
# CONFIG_EFI_HANDOVER_PROTOCOL is not set
|
||||
CONFIG_EFI_HANDOVER_PROTOCOL=y
|
||||
CONFIG_EFI_MIXED=y
|
||||
# CONFIG_EFI_FAKE_MEMMAP is not set
|
||||
CONFIG_EFI_RUNTIME_MAP=y
|
||||
@@ -637,7 +636,7 @@ CONFIG_ACPI_ADXL=y
|
||||
CONFIG_ACPI_CONFIGFS=m
|
||||
CONFIG_ACPI_PFRUT=m
|
||||
CONFIG_ACPI_PCC=y
|
||||
CONFIG_ACPI_FFH=y
|
||||
# CONFIG_ACPI_FFH is not set
|
||||
CONFIG_PMIC_OPREGION=y
|
||||
CONFIG_BYTCRC_PMIC_OPREGION=y
|
||||
CONFIG_CHTCRC_PMIC_OPREGION=y
|
||||
@@ -935,7 +934,7 @@ CONFIG_MODULE_SIG_HASH="sha512"
|
||||
# CONFIG_MODULE_COMPRESS_GZIP is not set
|
||||
# CONFIG_MODULE_COMPRESS_XZ is not set
|
||||
CONFIG_MODULE_COMPRESS_ZSTD=y
|
||||
CONFIG_MODULE_DECOMPRESS=y
|
||||
# CONFIG_MODULE_DECOMPRESS is not set
|
||||
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
|
||||
CONFIG_MODPROBE_PATH="/sbin/modprobe"
|
||||
CONFIG_MODULES_TREE_LOOKUP=y
|
||||
@@ -1988,7 +1987,7 @@ CONFIG_BT_HCIUART_QCA=y
|
||||
CONFIG_BT_HCIUART_AG6XX=y
|
||||
CONFIG_BT_HCIUART_MRVL=y
|
||||
CONFIG_BT_HCIBCM203X=m
|
||||
CONFIG_BT_HCIBCM4377=m
|
||||
# CONFIG_BT_HCIBCM4377 is not set
|
||||
CONFIG_BT_HCIBPA10X=m
|
||||
CONFIG_BT_HCIBFUSB=m
|
||||
CONFIG_BT_HCIDTL1=m
|
||||
@@ -2326,7 +2325,7 @@ CONFIG_SYSFB=y
|
||||
CONFIG_FW_CS_DSP=m
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# CONFIG_GOOGLE_SMI is not set
|
||||
CONFIG_GOOGLE_CBMEM=m
|
||||
# CONFIG_GOOGLE_CBMEM is not set
|
||||
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
||||
CONFIG_GOOGLE_MEMCONSOLE=m
|
||||
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
|
||||
@@ -2538,7 +2537,7 @@ CONFIG_ZRAM_DEF_COMP_LZORLE=y
|
||||
CONFIG_ZRAM_DEF_COMP="lzo-rle"
|
||||
CONFIG_ZRAM_WRITEBACK=y
|
||||
# CONFIG_ZRAM_MEMORY_TRACKING is not set
|
||||
CONFIG_ZRAM_MULTI_COMP=y
|
||||
# CONFIG_ZRAM_MULTI_COMP is not set
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
||||
CONFIG_BLK_DEV_DRBD=m
|
||||
@@ -2547,9 +2546,6 @@ CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
||||
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
||||
CONFIG_ATA_OVER_ETH=m
|
||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
||||
@@ -2598,8 +2594,6 @@ CONFIG_TIFM_CORE=m
|
||||
CONFIG_TIFM_7XX1=m
|
||||
CONFIG_ICS932S401=m
|
||||
CONFIG_ENCLOSURE_SERVICES=m
|
||||
CONFIG_SMPRO_ERRMON=m
|
||||
CONFIG_SMPRO_MISC=m
|
||||
CONFIG_HP_ILO=m
|
||||
CONFIG_APDS9802ALS=m
|
||||
CONFIG_ISL29003=m
|
||||
@@ -3324,7 +3318,7 @@ CONFIG_ENC28J60=m
|
||||
# CONFIG_ENC28J60_WRITEVERIFY is not set
|
||||
CONFIG_ENCX24J600=m
|
||||
CONFIG_LAN743X=m
|
||||
CONFIG_VCAP=y
|
||||
# CONFIG_VCAP is not set
|
||||
CONFIG_NET_VENDOR_MICROSEMI=y
|
||||
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
||||
CONFIG_NET_VENDOR_MICROSOFT=y
|
||||
@@ -3898,7 +3892,7 @@ CONFIG_MT7921_COMMON=m
|
||||
CONFIG_MT7921E=m
|
||||
CONFIG_MT7921S=m
|
||||
CONFIG_MT7921U=m
|
||||
CONFIG_MT7996E=m
|
||||
# CONFIG_MT7996E is not set
|
||||
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
||||
CONFIG_WILC1000=m
|
||||
CONFIG_WILC1000_SDIO=m
|
||||
@@ -3962,29 +3956,27 @@ CONFIG_RTL8XXXU_UNTESTED=y
|
||||
CONFIG_RTW88=m
|
||||
CONFIG_RTW88_CORE=m
|
||||
CONFIG_RTW88_PCI=m
|
||||
CONFIG_RTW88_USB=m
|
||||
CONFIG_RTW88_8822B=m
|
||||
CONFIG_RTW88_8822C=m
|
||||
CONFIG_RTW88_8723D=m
|
||||
CONFIG_RTW88_8821C=m
|
||||
CONFIG_RTW88_8822BE=m
|
||||
CONFIG_RTW88_8822BU=m
|
||||
# CONFIG_RTW88_8822BU is not set
|
||||
CONFIG_RTW88_8822CE=m
|
||||
CONFIG_RTW88_8822CU=m
|
||||
# CONFIG_RTW88_8822CU is not set
|
||||
CONFIG_RTW88_8723DE=m
|
||||
CONFIG_RTW88_8723DU=m
|
||||
# CONFIG_RTW88_8723DU is not set
|
||||
CONFIG_RTW88_8821CE=m
|
||||
CONFIG_RTW88_8821CU=m
|
||||
# CONFIG_RTW88_8821CU is not set
|
||||
CONFIG_RTW88_DEBUG=y
|
||||
CONFIG_RTW88_DEBUGFS=y
|
||||
CONFIG_RTW89=m
|
||||
CONFIG_RTW89_CORE=m
|
||||
CONFIG_RTW89_PCI=m
|
||||
CONFIG_RTW89_8852A=m
|
||||
CONFIG_RTW89_8852B=m
|
||||
CONFIG_RTW89_8852C=m
|
||||
CONFIG_RTW89_8852AE=m
|
||||
CONFIG_RTW89_8852BE=m
|
||||
# CONFIG_RTW89_8852BE is not set
|
||||
CONFIG_RTW89_8852CE=m
|
||||
CONFIG_RTW89_DEBUG=y
|
||||
CONFIG_RTW89_DEBUGMSG=y
|
||||
@@ -4232,7 +4224,7 @@ CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP5=m
|
||||
# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
|
||||
CONFIG_TOUCHSCREEN_DA9034=m
|
||||
CONFIG_TOUCHSCREEN_DA9052=m
|
||||
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
||||
@@ -4244,7 +4236,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
|
||||
CONFIG_TOUCHSCREEN_GOODIX=m
|
||||
CONFIG_TOUCHSCREEN_HIDEEP=m
|
||||
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
|
||||
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m
|
||||
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
|
||||
CONFIG_TOUCHSCREEN_ILI210X=m
|
||||
CONFIG_TOUCHSCREEN_ILITEK=m
|
||||
CONFIG_TOUCHSCREEN_S6SY761=m
|
||||
@@ -4319,7 +4311,7 @@ CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
|
||||
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
|
||||
CONFIG_TOUCHSCREEN_IQS5XX=m
|
||||
CONFIG_TOUCHSCREEN_ZINITIX=m
|
||||
CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m
|
||||
# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_88PM860X_ONKEY=m
|
||||
CONFIG_INPUT_88PM80X_ONKEY=m
|
||||
@@ -4437,7 +4429,7 @@ CONFIG_HW_CONSOLE=y
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_LEGACY_TIOCSTI is not set
|
||||
CONFIG_LEGACY_TIOCSTI=y
|
||||
CONFIG_LDISC_AUTOLOAD=y
|
||||
|
||||
#
|
||||
@@ -4530,7 +4522,7 @@ CONFIG_IPMI_SSIF=m
|
||||
CONFIG_IPMI_IPMB=m
|
||||
CONFIG_IPMI_WATCHDOG=m
|
||||
CONFIG_IPMI_POWEROFF=m
|
||||
CONFIG_SSIF_IPMI_BMC=m
|
||||
# CONFIG_SSIF_IPMI_BMC is not set
|
||||
CONFIG_IPMB_DEVICE_INTERFACE=m
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
||||
@@ -4726,7 +4718,7 @@ CONFIG_SPI_MICROCHIP_CORE=m
|
||||
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
|
||||
# CONFIG_SPI_LANTIQ_SSC is not set
|
||||
CONFIG_SPI_OC_TINY=m
|
||||
CONFIG_SPI_PCI1XXXX=m
|
||||
# CONFIG_SPI_PCI1XXXX is not set
|
||||
CONFIG_SPI_PXA2XX=m
|
||||
CONFIG_SPI_PXA2XX_PCI=m
|
||||
# CONFIG_SPI_ROCKCHIP is not set
|
||||
@@ -4943,7 +4935,7 @@ CONFIG_GPIO_VIPERBOARD=m
|
||||
# Virtual GPIO drivers
|
||||
#
|
||||
CONFIG_GPIO_AGGREGATOR=m
|
||||
CONFIG_GPIO_LATCH=m
|
||||
# CONFIG_GPIO_LATCH is not set
|
||||
CONFIG_GPIO_MOCKUP=m
|
||||
CONFIG_GPIO_VIRTIO=m
|
||||
CONFIG_GPIO_SIM=m
|
||||
@@ -5081,7 +5073,6 @@ CONFIG_HWMON_VID=m
|
||||
#
|
||||
CONFIG_SENSORS_ABITUGURU=m
|
||||
CONFIG_SENSORS_ABITUGURU3=m
|
||||
CONFIG_SENSORS_SMPRO=m
|
||||
CONFIG_SENSORS_AD7314=m
|
||||
CONFIG_SENSORS_AD7414=m
|
||||
CONFIG_SENSORS_AD7418=m
|
||||
@@ -5201,9 +5192,8 @@ CONFIG_SENSORS_NCT7904=m
|
||||
CONFIG_SENSORS_NPCM7XX=m
|
||||
CONFIG_SENSORS_NZXT_KRAKEN2=m
|
||||
CONFIG_SENSORS_NZXT_SMART2=m
|
||||
CONFIG_SENSORS_OCC_P8_I2C=m
|
||||
CONFIG_SENSORS_OCC=m
|
||||
CONFIG_SENSORS_OXP=m
|
||||
# CONFIG_SENSORS_OCC_P8_I2C is not set
|
||||
# CONFIG_SENSORS_OXP is not set
|
||||
CONFIG_SENSORS_PCF8591=m
|
||||
CONFIG_PMBUS=m
|
||||
CONFIG_SENSORS_PMBUS=m
|
||||
@@ -5408,7 +5398,7 @@ CONFIG_MAX63XX_WATCHDOG=m
|
||||
CONFIG_RETU_WATCHDOG=m
|
||||
CONFIG_ACQUIRE_WDT=m
|
||||
CONFIG_ADVANTECH_WDT=m
|
||||
CONFIG_ADVANTECH_EC_WDT=m
|
||||
# CONFIG_ADVANTECH_EC_WDT is not set
|
||||
CONFIG_ALIM1535_WDT=m
|
||||
CONFIG_ALIM7101_WDT=m
|
||||
CONFIG_EBC_C384_WDT=m
|
||||
@@ -5490,7 +5480,7 @@ CONFIG_BCMA_DRIVER_GPIO=y
|
||||
#
|
||||
CONFIG_MFD_CORE=y
|
||||
CONFIG_MFD_AS3711=y
|
||||
CONFIG_MFD_SMPRO=m
|
||||
# CONFIG_MFD_SMPRO is not set
|
||||
CONFIG_PMIC_ADP5520=y
|
||||
CONFIG_MFD_AAT2870_CORE=y
|
||||
CONFIG_MFD_BCM590XX=m
|
||||
@@ -5671,7 +5661,7 @@ CONFIG_REGULATOR_MT6311=m
|
||||
CONFIG_REGULATOR_MT6323=m
|
||||
CONFIG_REGULATOR_MT6331=m
|
||||
CONFIG_REGULATOR_MT6332=m
|
||||
CONFIG_REGULATOR_MT6357=m
|
||||
# CONFIG_REGULATOR_MT6357 is not set
|
||||
CONFIG_REGULATOR_MT6358=m
|
||||
CONFIG_REGULATOR_MT6359=m
|
||||
CONFIG_REGULATOR_MT6360=m
|
||||
@@ -5693,7 +5683,7 @@ CONFIG_REGULATOR_RT5120=m
|
||||
CONFIG_REGULATOR_RT5190A=m
|
||||
CONFIG_REGULATOR_RT5759=m
|
||||
CONFIG_REGULATOR_RT6160=m
|
||||
CONFIG_REGULATOR_RT6190=m
|
||||
# CONFIG_REGULATOR_RT6190 is not set
|
||||
CONFIG_REGULATOR_RT6245=m
|
||||
CONFIG_REGULATOR_RTQ2134=m
|
||||
CONFIG_REGULATOR_RTMV20=m
|
||||
@@ -6187,8 +6177,7 @@ CONFIG_VIDEO_VIMC=m
|
||||
CONFIG_VIDEO_VIVID=m
|
||||
CONFIG_VIDEO_VIVID_CEC=y
|
||||
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
||||
CONFIG_VIDEO_VISL=m
|
||||
# CONFIG_VISL_DEBUGFS is not set
|
||||
# CONFIG_VIDEO_VISL is not set
|
||||
CONFIG_DVB_TEST_DRIVERS=y
|
||||
CONFIG_DVB_VIDTV=m
|
||||
|
||||
@@ -6263,7 +6252,7 @@ CONFIG_VIDEO_NOON010PC30=m
|
||||
CONFIG_VIDEO_OG01A1B=m
|
||||
CONFIG_VIDEO_OV02A10=m
|
||||
CONFIG_VIDEO_OV08D10=m
|
||||
CONFIG_VIDEO_OV08X40=m
|
||||
# CONFIG_VIDEO_OV08X40 is not set
|
||||
CONFIG_VIDEO_OV13858=m
|
||||
CONFIG_VIDEO_OV13B10=m
|
||||
CONFIG_VIDEO_OV2640=m
|
||||
@@ -6271,7 +6260,7 @@ CONFIG_VIDEO_OV2659=m
|
||||
CONFIG_VIDEO_OV2680=m
|
||||
CONFIG_VIDEO_OV2685=m
|
||||
CONFIG_VIDEO_OV2740=m
|
||||
CONFIG_VIDEO_OV4689=m
|
||||
# CONFIG_VIDEO_OV4689 is not set
|
||||
CONFIG_VIDEO_OV5647=m
|
||||
CONFIG_VIDEO_OV5648=m
|
||||
CONFIG_VIDEO_OV5670=m
|
||||
@@ -6581,6 +6570,7 @@ CONFIG_DRM=y
|
||||
CONFIG_DRM_MIPI_DBI=m
|
||||
CONFIG_DRM_MIPI_DSI=y
|
||||
# CONFIG_DRM_DEBUG_MM is not set
|
||||
CONFIG_DRM_USE_DYNAMIC_DEBUG=y
|
||||
CONFIG_DRM_KMS_HELPER=y
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
CONFIG_DRM_FBDEV_OVERALLOC=100
|
||||
@@ -6858,7 +6848,7 @@ CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
|
||||
# CONFIG_LOGO is not set
|
||||
# end of Graphics support
|
||||
|
||||
CONFIG_DRM_ACCEL=y
|
||||
# CONFIG_DRM_ACCEL is not set
|
||||
CONFIG_SOUND=m
|
||||
CONFIG_SOUND_OSS_CORE=y
|
||||
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
|
||||
@@ -7170,11 +7160,11 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m
|
||||
# CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927 is not set
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
|
||||
# CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE is not set
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
|
||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
|
||||
@@ -7527,7 +7517,7 @@ CONFIG_SND_SOC_WM8903=m
|
||||
CONFIG_SND_SOC_WM8904=m
|
||||
CONFIG_SND_SOC_WM8940=m
|
||||
CONFIG_SND_SOC_WM8960=m
|
||||
CONFIG_SND_SOC_WM8961=m
|
||||
# CONFIG_SND_SOC_WM8961 is not set
|
||||
CONFIG_SND_SOC_WM8962=m
|
||||
CONFIG_SND_SOC_WM8974=m
|
||||
CONFIG_SND_SOC_WM8978=m
|
||||
@@ -8357,7 +8347,7 @@ CONFIG_INFINIBAND_HFI1=m
|
||||
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
||||
# CONFIG_SDMA_VERBOSITY is not set
|
||||
CONFIG_INFINIBAND_IRDMA=m
|
||||
CONFIG_MANA_INFINIBAND=m
|
||||
# CONFIG_MANA_INFINIBAND is not set
|
||||
CONFIG_MLX4_INFINIBAND=m
|
||||
CONFIG_MLX5_INFINIBAND=m
|
||||
CONFIG_INFINIBAND_MTHCA=m
|
||||
@@ -8633,7 +8623,7 @@ CONFIG_NITRO_ENCLAVES=m
|
||||
CONFIG_ACRN_HSM=m
|
||||
CONFIG_EFI_SECRET=m
|
||||
CONFIG_SEV_GUEST=m
|
||||
CONFIG_TDX_GUEST_DRIVER=m
|
||||
# CONFIG_TDX_GUEST_DRIVER is not set
|
||||
CONFIG_VIRTIO_ANCHOR=y
|
||||
CONFIG_VIRTIO=y
|
||||
CONFIG_VIRTIO_PCI_LIB=m
|
||||
@@ -8831,7 +8821,7 @@ CONFIG_CROS_EC_DEBUGFS=m
|
||||
CONFIG_CROS_EC_SENSORHUB=m
|
||||
CONFIG_CROS_EC_SYSFS=m
|
||||
CONFIG_CROS_EC_TYPEC=m
|
||||
CONFIG_CROS_HPS_I2C=m
|
||||
# CONFIG_CROS_HPS_I2C is not set
|
||||
CONFIG_CROS_USBPD_LOGGER=m
|
||||
CONFIG_CROS_USBPD_NOTIFY=m
|
||||
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
|
||||
@@ -8908,9 +8898,7 @@ CONFIG_AMILO_RFKILL=m
|
||||
CONFIG_FUJITSU_LAPTOP=m
|
||||
CONFIG_FUJITSU_TABLET=m
|
||||
CONFIG_GPD_POCKET_FAN=m
|
||||
CONFIG_X86_PLATFORM_DRIVERS_HP=y
|
||||
CONFIG_HP_ACCEL=m
|
||||
CONFIG_HP_WMI=m
|
||||
# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
|
||||
CONFIG_WIRELESS_HOTKEY=m
|
||||
CONFIG_IBM_RTL=m
|
||||
CONFIG_IDEAPAD_LAPTOP=m
|
||||
@@ -8925,7 +8913,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
|
||||
CONFIG_THINKPAD_LMI=m
|
||||
CONFIG_INTEL_ATOMISP2_PDX86=y
|
||||
CONFIG_INTEL_ATOMISP2_LED=m
|
||||
CONFIG_INTEL_IFS=m
|
||||
# CONFIG_INTEL_IFS is not set
|
||||
CONFIG_INTEL_SAR_INT1092=m
|
||||
CONFIG_INTEL_SKL_INT3472=m
|
||||
CONFIG_INTEL_PMC_CORE=y
|
||||
@@ -9051,7 +9039,7 @@ CONFIG_INTEL_IOMMU_SVM=y
|
||||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
||||
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
|
||||
CONFIG_IOMMUFD=m
|
||||
# CONFIG_IOMMUFD is not set
|
||||
CONFIG_IRQ_REMAP=y
|
||||
CONFIG_HYPERV_IOMMU=y
|
||||
CONFIG_VIRTIO_IOMMU=m
|
||||
@@ -9228,9 +9216,8 @@ CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
|
||||
CONFIG_IIO_ST_ACCEL_3AXIS=m
|
||||
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
|
||||
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
|
||||
CONFIG_IIO_KX022A=m
|
||||
CONFIG_IIO_KX022A_SPI=m
|
||||
CONFIG_IIO_KX022A_I2C=m
|
||||
# CONFIG_IIO_KX022A_SPI is not set
|
||||
# CONFIG_IIO_KX022A_I2C is not set
|
||||
CONFIG_KXSD9=m
|
||||
CONFIG_KXSD9_SPI=m
|
||||
CONFIG_KXSD9_I2C=m
|
||||
@@ -9257,7 +9244,7 @@ CONFIG_STK8BA50=m
|
||||
# Analog to digital converters
|
||||
#
|
||||
CONFIG_AD_SIGMA_DELTA=m
|
||||
CONFIG_AD4130=m
|
||||
# CONFIG_AD4130 is not set
|
||||
CONFIG_AD7091R5=m
|
||||
CONFIG_AD7124=m
|
||||
CONFIG_AD7192=m
|
||||
@@ -9298,7 +9285,7 @@ CONFIG_MAX1027=m
|
||||
CONFIG_MAX11100=m
|
||||
CONFIG_MAX1118=m
|
||||
CONFIG_MAX11205=m
|
||||
CONFIG_MAX11410=m
|
||||
# CONFIG_MAX11410 is not set
|
||||
CONFIG_MAX1241=m
|
||||
CONFIG_MAX1363=m
|
||||
CONFIG_MAX9611=m
|
||||
@@ -9306,7 +9293,7 @@ CONFIG_MCP320X=m
|
||||
CONFIG_MCP3422=m
|
||||
CONFIG_MCP3911=m
|
||||
CONFIG_MEDIATEK_MT6360_ADC=m
|
||||
CONFIG_MEDIATEK_MT6370_ADC=m
|
||||
# CONFIG_MEDIATEK_MT6370_ADC is not set
|
||||
CONFIG_MEN_Z188_ADC=m
|
||||
CONFIG_MP2629_ADC=m
|
||||
CONFIG_NAU7802=m
|
||||
@@ -9339,7 +9326,7 @@ CONFIG_XILINX_XADC=m
|
||||
#
|
||||
# Analog to digital and digital to analog converters
|
||||
#
|
||||
CONFIG_AD74115=m
|
||||
# CONFIG_AD74115 is not set
|
||||
CONFIG_AD74413R=m
|
||||
# end of Analog to digital and digital to analog converters
|
||||
|
||||
@@ -9489,7 +9476,7 @@ CONFIG_AD9523=m
|
||||
#
|
||||
CONFIG_ADF4350=m
|
||||
CONFIG_ADF4371=m
|
||||
CONFIG_ADF4377=m
|
||||
# CONFIG_ADF4377 is not set
|
||||
CONFIG_ADMV1013=m
|
||||
CONFIG_ADMV1014=m
|
||||
CONFIG_ADMV4420=m
|
||||
@@ -9798,7 +9785,7 @@ CONFIG_TMP007=m
|
||||
CONFIG_TMP117=m
|
||||
CONFIG_TSYS01=m
|
||||
CONFIG_TSYS02D=m
|
||||
CONFIG_MAX30208=m
|
||||
# CONFIG_MAX30208 is not set
|
||||
CONFIG_MAX31856=m
|
||||
CONFIG_MAX31865=m
|
||||
# end of Temperature sensors
|
||||
@@ -9952,8 +9939,7 @@ CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
|
||||
CONFIG_FPGA_DFL_PCI=m
|
||||
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
|
||||
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
|
||||
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m
|
||||
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m
|
||||
# CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI is not set
|
||||
CONFIG_TEE=m
|
||||
CONFIG_AMDTEE=m
|
||||
CONFIG_MULTIPLEXER=m
|
||||
@@ -10198,10 +10184,10 @@ CONFIG_SQUASHFS=m
|
||||
# CONFIG_SQUASHFS_FILE_CACHE is not set
|
||||
CONFIG_SQUASHFS_FILE_DIRECT=y
|
||||
CONFIG_SQUASHFS_DECOMP_SINGLE=y
|
||||
CONFIG_SQUASHFS_DECOMP_MULTI=y
|
||||
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
|
||||
CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
|
||||
CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y
|
||||
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
|
||||
CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
|
||||
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
|
||||
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
|
||||
CONFIG_SQUASHFS_XATTR=y
|
||||
CONFIG_SQUASHFS_ZLIB=y
|
||||
CONFIG_SQUASHFS_LZ4=y
|
||||
@@ -10880,7 +10866,6 @@ CONFIG_TEXTSEARCH_BM=m
|
||||
CONFIG_TEXTSEARCH_FSM=m
|
||||
CONFIG_BTREE=y
|
||||
CONFIG_INTERVAL_TREE=y
|
||||
CONFIG_INTERVAL_TREE_SPAN_ITER=y
|
||||
CONFIG_XARRAY_MULTI=y
|
||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
|
@@ -284,8 +284,7 @@ _set_cpu_scheduler() {
|
||||
elif [ "$_kver" = "601" ]; then
|
||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||
elif [ "$_kver" = "602" ]; then
|
||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||
_projectc_unoff=1
|
||||
_avail_cpu_scheds=("cfs" "tt" "bore")
|
||||
else
|
||||
_avail_cpu_scheds=("cfs")
|
||||
fi
|
||||
@@ -866,11 +865,6 @@ _tkg_srcprep() {
|
||||
_disable "CPU_FREQ_DEFAULT_GOV_ONDEMAND" "CPU_FREQ_DEFAULT_GOV_CONSERVATIVE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE" "CPU_FREQ_DEFAULT_GOV_PERFORMANCE_NODEF"
|
||||
_module "BLK_DEV_LOOP"
|
||||
|
||||
# buggy project C/PSI interaction workaround
|
||||
if [ "${_cpusched}" = "pds" ] || [ "${_cpusched}" = "bmq" ]; then
|
||||
_enable "PSI_DEFAULT_DISABLED"
|
||||
fi
|
||||
|
||||
if [ -n "$_custom_commandline" ]; then
|
||||
_enable "CMDLINE_BOOL"
|
||||
_disable "CMDLINE_OVERRIDE"
|
||||
@@ -1578,13 +1572,9 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
||||
fi
|
||||
|
||||
# NR_CPUS
|
||||
if [ "$_basever" != "601" ]; then
|
||||
if [ -n "$_NR_CPUS_value" ]; then
|
||||
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
||||
_enable "FORCE_NR_CPUS"
|
||||
fi
|
||||
else
|
||||
warning "NR_CPUS is bugged on 6.1.y, so your setting was ignored"
|
||||
if [ -n "$_NR_CPUS_value" ]; then
|
||||
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
||||
_enable "FORCE_NR_CPUS"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,90 +0,0 @@
|
||||
From f7f49141a5dbe9c99d78196b58c44307fb2e6be3 Mon Sep 17 00:00:00 2001
|
||||
From: Tk-Glitch <ti3nou@gmail.com>
|
||||
Date: Wed, 4 Jul 2018 04:30:08 +0200
|
||||
Subject: glitched - PDS
|
||||
|
||||
diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
|
||||
index 2a202a846757..1d9c7ed79b11 100644
|
||||
--- a/kernel/Kconfig.hz
|
||||
+++ b/kernel/Kconfig.hz
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
choice
|
||||
prompt "Timer frequency"
|
||||
- default HZ_250
|
||||
+ default HZ_500
|
||||
help
|
||||
Allows the configuration of the timer frequency. It is customary
|
||||
to have the timer interrupt run at 1000 Hz but 100 Hz may be more
|
||||
@@ -39,6 +39,13 @@ choice
|
||||
on SMP and NUMA systems and exactly dividing by both PAL and
|
||||
NTSC frame rates for video and multimedia work.
|
||||
|
||||
+ config HZ_500
|
||||
+ bool "500 HZ"
|
||||
+ help
|
||||
+ 500 Hz is a balanced timer frequency. Provides fast interactivity
|
||||
+ on desktops with great smoothness without increasing CPU power
|
||||
+ consumption and sacrificing the battery life on laptops.
|
||||
+
|
||||
config HZ_1000
|
||||
bool "1000 HZ"
|
||||
help
|
||||
@@ -52,6 +59,7 @@ config HZ
|
||||
default 100 if HZ_100
|
||||
default 250 if HZ_250
|
||||
default 300 if HZ_300
|
||||
+ default 500 if HZ_500
|
||||
default 1000 if HZ_1000
|
||||
|
||||
config SCHED_HRTICK
|
||||
|
||||
diff --git a/kernel/Kconfig.hz b/kernel/Kconfig.hz
|
||||
index 2a202a846757..1d9c7ed79b11 100644
|
||||
--- a/kernel/Kconfig.hz
|
||||
+++ b/kernel/Kconfig.hz
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
choice
|
||||
prompt "Timer frequency"
|
||||
- default HZ_500
|
||||
+ default HZ_750
|
||||
help
|
||||
Allows the configuration of the timer frequency. It is customary
|
||||
to have the timer interrupt run at 1000 Hz but 100 Hz may be more
|
||||
@@ -46,6 +46,13 @@ choice
|
||||
on desktops with great smoothness without increasing CPU power
|
||||
consumption and sacrificing the battery life on laptops.
|
||||
|
||||
+ config HZ_750
|
||||
+ bool "750 HZ"
|
||||
+ help
|
||||
+ 750 Hz is a good timer frequency for desktops. Provides fast
|
||||
+ interactivity with great smoothness without sacrificing too
|
||||
+ much throughput.
|
||||
+
|
||||
config HZ_1000
|
||||
bool "1000 HZ"
|
||||
help
|
||||
@@ -60,6 +67,7 @@ config HZ
|
||||
default 250 if HZ_250
|
||||
default 300 if HZ_300
|
||||
default 500 if HZ_500
|
||||
+ default 750 if HZ_750
|
||||
default 1000 if HZ_1000
|
||||
|
||||
config SCHED_HRTICK
|
||||
|
||||
diff --git a/mm/vmscan.c b/mm/vmscan.c
|
||||
index 9270a4370d54..30d01e647417 100644
|
||||
--- a/mm/vmscan.c
|
||||
+++ b/mm/vmscan.c
|
||||
@@ -169,7 +169,7 @@
|
||||
/*
|
||||
* From 0 .. 200. Higher means more swappy.
|
||||
*/
|
||||
-int vm_swappiness = 60;
|
||||
+int vm_swappiness = 20;
|
||||
|
||||
static void set_task_reclaim_state(struct task_struct *task,
|
||||
struct reclaim_state *rs)
|
File diff suppressed because it is too large
Load Diff
@@ -64,3 +64,253 @@ index 2c7171e0b0010..85de313ddec29 100644
|
||||
select CPU_FREQ_GOV_PERFORMANCE
|
||||
help
|
||||
|
||||
From 0c079d3f88df5f8286cd5c91b54bdac7c819be85 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Auld <matthew.auld@intel.com>
|
||||
Date: Tue, 6 Dec 2022 16:11:41 +0000
|
||||
Subject: [PATCH] drm/i915: improve the catch-all evict to handle lock
|
||||
contention
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The catch-all evict can fail due to object lock contention, since it
|
||||
only goes as far as trylocking the object, due to us already holding the
|
||||
vm->mutex. Doing a full object lock here can deadlock, since the
|
||||
vm->mutex is always our inner lock. Add another execbuf pass which drops
|
||||
the vm->mutex and then tries to grab the object will the full lock,
|
||||
before then retrying the eviction. This should be good enough for now to
|
||||
fix the immediate regression with userspace seeing -ENOSPC from execbuf
|
||||
due to contended object locks during GTT eviction.
|
||||
|
||||
Testcase: igt@gem_ppgtt@shrink-vs-evict-*
|
||||
Fixes: 7e00897be8bf ("drm/i915: Add object locking to i915_gem_evict_for_node and i915_gem_evict_something, v2.")
|
||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7627
|
||||
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7570
|
||||
References: https://bugzilla.mozilla.org/show_bug.cgi?id=1779558
|
||||
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
|
||||
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
||||
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
|
||||
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
||||
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
|
||||
Cc: Mani Milani <mani@chromium.org>
|
||||
Cc: <stable@vger.kernel.org> # v5.18+
|
||||
|
||||
Revision 1 of https://patchwork.freedesktop.org/series/111686/
|
||||
---
|
||||
.../gpu/drm/i915/gem/i915_gem_execbuffer.c | 25 +++++++++++--
|
||||
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 2 +-
|
||||
drivers/gpu/drm/i915/i915_gem_evict.c | 37 ++++++++++++++-----
|
||||
drivers/gpu/drm/i915/i915_gem_evict.h | 4 +-
|
||||
drivers/gpu/drm/i915/i915_vma.c | 2 +-
|
||||
.../gpu/drm/i915/selftests/i915_gem_evict.c | 4 +-
|
||||
6 files changed, 56 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
||||
index 845023c14eb36f..094e92ed28db4f 100644
|
||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
|
||||
@@ -741,25 +741,44 @@ static int eb_reserve(struct i915_execbuffer *eb)
|
||||
*
|
||||
* Defragmenting is skipped if all objects are pinned at a fixed location.
|
||||
*/
|
||||
- for (pass = 0; pass <= 2; pass++) {
|
||||
+ for (pass = 0; pass <= 3; pass++) {
|
||||
int pin_flags = PIN_USER | PIN_VALIDATE;
|
||||
|
||||
if (pass == 0)
|
||||
pin_flags |= PIN_NONBLOCK;
|
||||
|
||||
if (pass >= 1)
|
||||
- unpinned = eb_unbind(eb, pass == 2);
|
||||
+ unpinned = eb_unbind(eb, pass >= 2);
|
||||
|
||||
if (pass == 2) {
|
||||
err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
||||
if (!err) {
|
||||
- err = i915_gem_evict_vm(eb->context->vm, &eb->ww);
|
||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, NULL);
|
||||
mutex_unlock(&eb->context->vm->mutex);
|
||||
}
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
+ if (pass == 3) {
|
||||
+retry:
|
||||
+ err = mutex_lock_interruptible(&eb->context->vm->mutex);
|
||||
+ if (!err) {
|
||||
+ struct drm_i915_gem_object *busy_bo = NULL;
|
||||
+
|
||||
+ err = i915_gem_evict_vm(eb->context->vm, &eb->ww, &busy_bo);
|
||||
+ mutex_unlock(&eb->context->vm->mutex);
|
||||
+ if (err && busy_bo) {
|
||||
+ err = i915_gem_object_lock(busy_bo, &eb->ww);
|
||||
+ i915_gem_object_put(busy_bo);
|
||||
+ if (!err)
|
||||
+ goto retry;
|
||||
+ }
|
||||
+ }
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+ }
|
||||
+
|
||||
list_for_each_entry(ev, &eb->unbound, bind_link) {
|
||||
err = eb_reserve_vma(eb, ev, pin_flags);
|
||||
if (err)
|
||||
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
||||
index 73d9eda1d6b7a6..c83d98e1dc5da0 100644
|
||||
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
||||
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
|
||||
@@ -369,7 +369,7 @@ static vm_fault_t vm_fault_gtt(struct vm_fault *vmf)
|
||||
if (vma == ERR_PTR(-ENOSPC)) {
|
||||
ret = mutex_lock_interruptible(&ggtt->vm.mutex);
|
||||
if (!ret) {
|
||||
- ret = i915_gem_evict_vm(&ggtt->vm, &ww);
|
||||
+ ret = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
||||
mutex_unlock(&ggtt->vm.mutex);
|
||||
}
|
||||
if (ret)
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
|
||||
index f025ee4fa52618..a4b4d9b7d26c7a 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
|
||||
@@ -416,6 +416,11 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
||||
* @vm: Address space to cleanse
|
||||
* @ww: An optional struct i915_gem_ww_ctx. If not NULL, i915_gem_evict_vm
|
||||
* will be able to evict vma's locked by the ww as well.
|
||||
+ * @busy_bo: Optional pointer to struct drm_i915_gem_object. If not NULL, then
|
||||
+ * in the event i915_gem_evict_vm() is unable to trylock an object for eviction,
|
||||
+ * then @busy_bo will point to it. -EBUSY is also returned. The caller must drop
|
||||
+ * the vm->mutex, before trying again to acquire the contended lock. The caller
|
||||
+ * also owns a reference to the object.
|
||||
*
|
||||
* This function evicts all vmas from a vm.
|
||||
*
|
||||
@@ -425,7 +430,8 @@ int i915_gem_evict_for_node(struct i915_address_space *vm,
|
||||
* To clarify: This is for freeing up virtual address space, not for freeing
|
||||
* memory in e.g. the shrinker.
|
||||
*/
|
||||
-int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
||||
+int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww,
|
||||
+ struct drm_i915_gem_object **busy_bo)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
@@ -457,15 +463,22 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
||||
* the resv is shared among multiple objects, we still
|
||||
* need the object ref.
|
||||
*/
|
||||
- if (dying_vma(vma) ||
|
||||
+ if (!i915_gem_object_get_rcu(vma->obj) ||
|
||||
(ww && (dma_resv_locking_ctx(vma->obj->base.resv) == &ww->ctx))) {
|
||||
__i915_vma_pin(vma);
|
||||
list_add(&vma->evict_link, &locked_eviction_list);
|
||||
continue;
|
||||
}
|
||||
|
||||
- if (!i915_gem_object_trylock(vma->obj, ww))
|
||||
+ if (!i915_gem_object_trylock(vma->obj, ww)) {
|
||||
+ if (busy_bo) {
|
||||
+ *busy_bo = vma->obj; /* holds ref */
|
||||
+ ret = -EBUSY;
|
||||
+ break;
|
||||
+ }
|
||||
+ i915_gem_object_put(vma->obj);
|
||||
continue;
|
||||
+ }
|
||||
|
||||
__i915_vma_pin(vma);
|
||||
list_add(&vma->evict_link, &eviction_list);
|
||||
@@ -473,25 +486,29 @@ int i915_gem_evict_vm(struct i915_address_space *vm, struct i915_gem_ww_ctx *ww)
|
||||
if (list_empty(&eviction_list) && list_empty(&locked_eviction_list))
|
||||
break;
|
||||
|
||||
- ret = 0;
|
||||
/* Unbind locked objects first, before unlocking the eviction_list */
|
||||
list_for_each_entry_safe(vma, vn, &locked_eviction_list, evict_link) {
|
||||
__i915_vma_unpin(vma);
|
||||
|
||||
- if (ret == 0)
|
||||
+ if (ret == 0) {
|
||||
ret = __i915_vma_unbind(vma);
|
||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
||||
- ret = 0;
|
||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
||||
+ ret = 0;
|
||||
+ }
|
||||
+ if (!dying_vma(vma))
|
||||
+ i915_gem_object_put(vma->obj);
|
||||
}
|
||||
|
||||
list_for_each_entry_safe(vma, vn, &eviction_list, evict_link) {
|
||||
__i915_vma_unpin(vma);
|
||||
- if (ret == 0)
|
||||
+ if (ret == 0) {
|
||||
ret = __i915_vma_unbind(vma);
|
||||
- if (ret != -EINTR) /* "Get me out of here!" */
|
||||
- ret = 0;
|
||||
+ if (ret != -EINTR) /* "Get me out of here!" */
|
||||
+ ret = 0;
|
||||
+ }
|
||||
|
||||
i915_gem_object_unlock(vma->obj);
|
||||
+ i915_gem_object_put(vma->obj);
|
||||
}
|
||||
} while (ret == 0);
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.h b/drivers/gpu/drm/i915/i915_gem_evict.h
|
||||
index e593c530f9bd7a..bf0ee0e4fe6088 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_gem_evict.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem_evict.h
|
||||
@@ -11,6 +11,7 @@
|
||||
struct drm_mm_node;
|
||||
struct i915_address_space;
|
||||
struct i915_gem_ww_ctx;
|
||||
+struct drm_i915_gem_object;
|
||||
|
||||
int __must_check i915_gem_evict_something(struct i915_address_space *vm,
|
||||
struct i915_gem_ww_ctx *ww,
|
||||
@@ -23,6 +24,7 @@ int __must_check i915_gem_evict_for_node(struct i915_address_space *vm,
|
||||
struct drm_mm_node *node,
|
||||
unsigned int flags);
|
||||
int i915_gem_evict_vm(struct i915_address_space *vm,
|
||||
- struct i915_gem_ww_ctx *ww);
|
||||
+ struct i915_gem_ww_ctx *ww,
|
||||
+ struct drm_i915_gem_object **busy_bo);
|
||||
|
||||
#endif /* __I915_GEM_EVICT_H__ */
|
||||
diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
|
||||
index f17c09ead7d778..4d06875de14a14 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_vma.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_vma.c
|
||||
@@ -1569,7 +1569,7 @@ static int __i915_ggtt_pin(struct i915_vma *vma, struct i915_gem_ww_ctx *ww,
|
||||
* locked objects when called from execbuf when pinning
|
||||
* is removed. This would probably regress badly.
|
||||
*/
|
||||
- i915_gem_evict_vm(vm, NULL);
|
||||
+ i915_gem_evict_vm(vm, NULL, NULL);
|
||||
mutex_unlock(&vm->mutex);
|
||||
}
|
||||
} while (1);
|
||||
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
||||
index 8c6517d29b8e0c..37068542aafe7f 100644
|
||||
--- a/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
||||
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_evict.c
|
||||
@@ -344,7 +344,7 @@ static int igt_evict_vm(void *arg)
|
||||
|
||||
/* Everything is pinned, nothing should happen */
|
||||
mutex_lock(&ggtt->vm.mutex);
|
||||
- err = i915_gem_evict_vm(&ggtt->vm, NULL);
|
||||
+ err = i915_gem_evict_vm(&ggtt->vm, NULL, NULL);
|
||||
mutex_unlock(&ggtt->vm.mutex);
|
||||
if (err) {
|
||||
pr_err("i915_gem_evict_vm on a full GGTT returned err=%d]\n",
|
||||
@@ -356,7 +356,7 @@ static int igt_evict_vm(void *arg)
|
||||
|
||||
for_i915_gem_ww(&ww, err, false) {
|
||||
mutex_lock(&ggtt->vm.mutex);
|
||||
- err = i915_gem_evict_vm(&ggtt->vm, &ww);
|
||||
+ err = i915_gem_evict_vm(&ggtt->vm, &ww, NULL);
|
||||
mutex_unlock(&ggtt->vm.mutex);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user