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.
|
# 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"
|
_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
|
# 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 !
|
# ! 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"
|
_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
|
# - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4
|
||||||
_processor_opt="skylake"
|
_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 only - Enable Response Driven Balancer, an experimental load balancer for CacULE
|
||||||
_cacule_rdb="false"
|
_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"
|
# Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false"
|
||||||
_random_trust_cpu="true"
|
_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 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"
|
_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).
|
# 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=""
|
_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
|
# 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
|
# If you set this to a lower value than you have cores, some cores will be disabled
|
||||||
# Default Arch kernel value is 320
|
# Default Arch kernel value is 320
|
||||||
_NR_CPUS_value=""
|
_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 ####
|
#### USER PATCHES ####
|
||||||
|
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# 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_CC_IS_GCC=y
|
||||||
CONFIG_GCC_VERSION=120201
|
CONFIG_GCC_VERSION=120200
|
||||||
CONFIG_CLANG_VERSION=0
|
CONFIG_CLANG_VERSION=0
|
||||||
CONFIG_AS_IS_GNU=y
|
CONFIG_AS_IS_GNU=y
|
||||||
CONFIG_AS_VERSION=24000
|
CONFIG_AS_VERSION=23900
|
||||||
CONFIG_LD_IS_BFD=y
|
CONFIG_LD_IS_BFD=y
|
||||||
CONFIG_LD_VERSION=24000
|
CONFIG_LD_VERSION=23900
|
||||||
CONFIG_LLD_VERSION=0
|
CONFIG_LLD_VERSION=0
|
||||||
CONFIG_CC_CAN_LINK=y
|
CONFIG_CC_CAN_LINK=y
|
||||||
CONFIG_CC_CAN_LINK_STATIC=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_DEFAULT_ALL is not set
|
||||||
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
|
# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set
|
||||||
# CONFIG_TASKS_TRACE_RCU_READ_MB 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
|
# end of RCU Subsystem
|
||||||
|
|
||||||
|
CONFIG_BUILD_BIN2C=y
|
||||||
CONFIG_IKCONFIG=y
|
CONFIG_IKCONFIG=y
|
||||||
CONFIG_IKCONFIG_PROC=y
|
CONFIG_IKCONFIG_PROC=y
|
||||||
CONFIG_IKHEADERS=m
|
CONFIG_IKHEADERS=m
|
||||||
@@ -205,7 +206,6 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
|||||||
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
||||||
CONFIG_CC_HAS_INT128=y
|
CONFIG_CC_HAS_INT128=y
|
||||||
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
||||||
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
|
|
||||||
CONFIG_GCC12_NO_ARRAY_BOUNDS=y
|
CONFIG_GCC12_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_ARCH_SUPPORTS_INT128=y
|
CONFIG_ARCH_SUPPORTS_INT128=y
|
||||||
@@ -241,7 +241,6 @@ CONFIG_UTS_NS=y
|
|||||||
CONFIG_TIME_NS=y
|
CONFIG_TIME_NS=y
|
||||||
CONFIG_IPC_NS=y
|
CONFIG_IPC_NS=y
|
||||||
CONFIG_USER_NS=y
|
CONFIG_USER_NS=y
|
||||||
CONFIG_USER_NS_UNPRIVILEGED=y
|
|
||||||
CONFIG_PID_NS=y
|
CONFIG_PID_NS=y
|
||||||
CONFIG_NET_NS=y
|
CONFIG_NET_NS=y
|
||||||
CONFIG_CHECKPOINT_RESTORE=y
|
CONFIG_CHECKPOINT_RESTORE=y
|
||||||
@@ -487,7 +486,7 @@ CONFIG_X86_INTEL_TSX_MODE_AUTO=y
|
|||||||
CONFIG_X86_SGX=y
|
CONFIG_X86_SGX=y
|
||||||
CONFIG_EFI=y
|
CONFIG_EFI=y
|
||||||
CONFIG_EFI_STUB=y
|
CONFIG_EFI_STUB=y
|
||||||
# CONFIG_EFI_HANDOVER_PROTOCOL is not set
|
CONFIG_EFI_HANDOVER_PROTOCOL=y
|
||||||
CONFIG_EFI_MIXED=y
|
CONFIG_EFI_MIXED=y
|
||||||
# CONFIG_EFI_FAKE_MEMMAP is not set
|
# CONFIG_EFI_FAKE_MEMMAP is not set
|
||||||
CONFIG_EFI_RUNTIME_MAP=y
|
CONFIG_EFI_RUNTIME_MAP=y
|
||||||
@@ -637,7 +636,7 @@ CONFIG_ACPI_ADXL=y
|
|||||||
CONFIG_ACPI_CONFIGFS=m
|
CONFIG_ACPI_CONFIGFS=m
|
||||||
CONFIG_ACPI_PFRUT=m
|
CONFIG_ACPI_PFRUT=m
|
||||||
CONFIG_ACPI_PCC=y
|
CONFIG_ACPI_PCC=y
|
||||||
CONFIG_ACPI_FFH=y
|
# CONFIG_ACPI_FFH is not set
|
||||||
CONFIG_PMIC_OPREGION=y
|
CONFIG_PMIC_OPREGION=y
|
||||||
CONFIG_BYTCRC_PMIC_OPREGION=y
|
CONFIG_BYTCRC_PMIC_OPREGION=y
|
||||||
CONFIG_CHTCRC_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_GZIP is not set
|
||||||
# CONFIG_MODULE_COMPRESS_XZ is not set
|
# CONFIG_MODULE_COMPRESS_XZ is not set
|
||||||
CONFIG_MODULE_COMPRESS_ZSTD=y
|
CONFIG_MODULE_COMPRESS_ZSTD=y
|
||||||
CONFIG_MODULE_DECOMPRESS=y
|
# CONFIG_MODULE_DECOMPRESS is not set
|
||||||
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
|
CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y
|
||||||
CONFIG_MODPROBE_PATH="/sbin/modprobe"
|
CONFIG_MODPROBE_PATH="/sbin/modprobe"
|
||||||
CONFIG_MODULES_TREE_LOOKUP=y
|
CONFIG_MODULES_TREE_LOOKUP=y
|
||||||
@@ -1988,7 +1987,7 @@ CONFIG_BT_HCIUART_QCA=y
|
|||||||
CONFIG_BT_HCIUART_AG6XX=y
|
CONFIG_BT_HCIUART_AG6XX=y
|
||||||
CONFIG_BT_HCIUART_MRVL=y
|
CONFIG_BT_HCIUART_MRVL=y
|
||||||
CONFIG_BT_HCIBCM203X=m
|
CONFIG_BT_HCIBCM203X=m
|
||||||
CONFIG_BT_HCIBCM4377=m
|
# CONFIG_BT_HCIBCM4377 is not set
|
||||||
CONFIG_BT_HCIBPA10X=m
|
CONFIG_BT_HCIBPA10X=m
|
||||||
CONFIG_BT_HCIBFUSB=m
|
CONFIG_BT_HCIBFUSB=m
|
||||||
CONFIG_BT_HCIDTL1=m
|
CONFIG_BT_HCIDTL1=m
|
||||||
@@ -2326,7 +2325,7 @@ CONFIG_SYSFB=y
|
|||||||
CONFIG_FW_CS_DSP=m
|
CONFIG_FW_CS_DSP=m
|
||||||
CONFIG_GOOGLE_FIRMWARE=y
|
CONFIG_GOOGLE_FIRMWARE=y
|
||||||
# CONFIG_GOOGLE_SMI is not set
|
# CONFIG_GOOGLE_SMI is not set
|
||||||
CONFIG_GOOGLE_CBMEM=m
|
# CONFIG_GOOGLE_CBMEM is not set
|
||||||
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
CONFIG_GOOGLE_COREBOOT_TABLE=m
|
||||||
CONFIG_GOOGLE_MEMCONSOLE=m
|
CONFIG_GOOGLE_MEMCONSOLE=m
|
||||||
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
|
# 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_DEF_COMP="lzo-rle"
|
||||||
CONFIG_ZRAM_WRITEBACK=y
|
CONFIG_ZRAM_WRITEBACK=y
|
||||||
# CONFIG_ZRAM_MEMORY_TRACKING is not set
|
# 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=m
|
||||||
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
||||||
CONFIG_BLK_DEV_DRBD=m
|
CONFIG_BLK_DEV_DRBD=m
|
||||||
@@ -2547,9 +2546,6 @@ CONFIG_BLK_DEV_NBD=m
|
|||||||
CONFIG_BLK_DEV_RAM=m
|
CONFIG_BLK_DEV_RAM=m
|
||||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
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_ATA_OVER_ETH=m
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
CONFIG_XEN_BLKDEV_BACKEND=m
|
||||||
@@ -2598,8 +2594,6 @@ CONFIG_TIFM_CORE=m
|
|||||||
CONFIG_TIFM_7XX1=m
|
CONFIG_TIFM_7XX1=m
|
||||||
CONFIG_ICS932S401=m
|
CONFIG_ICS932S401=m
|
||||||
CONFIG_ENCLOSURE_SERVICES=m
|
CONFIG_ENCLOSURE_SERVICES=m
|
||||||
CONFIG_SMPRO_ERRMON=m
|
|
||||||
CONFIG_SMPRO_MISC=m
|
|
||||||
CONFIG_HP_ILO=m
|
CONFIG_HP_ILO=m
|
||||||
CONFIG_APDS9802ALS=m
|
CONFIG_APDS9802ALS=m
|
||||||
CONFIG_ISL29003=m
|
CONFIG_ISL29003=m
|
||||||
@@ -3324,7 +3318,7 @@ CONFIG_ENC28J60=m
|
|||||||
# CONFIG_ENC28J60_WRITEVERIFY is not set
|
# CONFIG_ENC28J60_WRITEVERIFY is not set
|
||||||
CONFIG_ENCX24J600=m
|
CONFIG_ENCX24J600=m
|
||||||
CONFIG_LAN743X=m
|
CONFIG_LAN743X=m
|
||||||
CONFIG_VCAP=y
|
# CONFIG_VCAP is not set
|
||||||
CONFIG_NET_VENDOR_MICROSEMI=y
|
CONFIG_NET_VENDOR_MICROSEMI=y
|
||||||
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
CONFIG_MSCC_OCELOT_SWITCH_LIB=m
|
||||||
CONFIG_NET_VENDOR_MICROSOFT=y
|
CONFIG_NET_VENDOR_MICROSOFT=y
|
||||||
@@ -3898,7 +3892,7 @@ CONFIG_MT7921_COMMON=m
|
|||||||
CONFIG_MT7921E=m
|
CONFIG_MT7921E=m
|
||||||
CONFIG_MT7921S=m
|
CONFIG_MT7921S=m
|
||||||
CONFIG_MT7921U=m
|
CONFIG_MT7921U=m
|
||||||
CONFIG_MT7996E=m
|
# CONFIG_MT7996E is not set
|
||||||
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
||||||
CONFIG_WILC1000=m
|
CONFIG_WILC1000=m
|
||||||
CONFIG_WILC1000_SDIO=m
|
CONFIG_WILC1000_SDIO=m
|
||||||
@@ -3962,29 +3956,27 @@ CONFIG_RTL8XXXU_UNTESTED=y
|
|||||||
CONFIG_RTW88=m
|
CONFIG_RTW88=m
|
||||||
CONFIG_RTW88_CORE=m
|
CONFIG_RTW88_CORE=m
|
||||||
CONFIG_RTW88_PCI=m
|
CONFIG_RTW88_PCI=m
|
||||||
CONFIG_RTW88_USB=m
|
|
||||||
CONFIG_RTW88_8822B=m
|
CONFIG_RTW88_8822B=m
|
||||||
CONFIG_RTW88_8822C=m
|
CONFIG_RTW88_8822C=m
|
||||||
CONFIG_RTW88_8723D=m
|
CONFIG_RTW88_8723D=m
|
||||||
CONFIG_RTW88_8821C=m
|
CONFIG_RTW88_8821C=m
|
||||||
CONFIG_RTW88_8822BE=m
|
CONFIG_RTW88_8822BE=m
|
||||||
CONFIG_RTW88_8822BU=m
|
# CONFIG_RTW88_8822BU is not set
|
||||||
CONFIG_RTW88_8822CE=m
|
CONFIG_RTW88_8822CE=m
|
||||||
CONFIG_RTW88_8822CU=m
|
# CONFIG_RTW88_8822CU is not set
|
||||||
CONFIG_RTW88_8723DE=m
|
CONFIG_RTW88_8723DE=m
|
||||||
CONFIG_RTW88_8723DU=m
|
# CONFIG_RTW88_8723DU is not set
|
||||||
CONFIG_RTW88_8821CE=m
|
CONFIG_RTW88_8821CE=m
|
||||||
CONFIG_RTW88_8821CU=m
|
# CONFIG_RTW88_8821CU is not set
|
||||||
CONFIG_RTW88_DEBUG=y
|
CONFIG_RTW88_DEBUG=y
|
||||||
CONFIG_RTW88_DEBUGFS=y
|
CONFIG_RTW88_DEBUGFS=y
|
||||||
CONFIG_RTW89=m
|
CONFIG_RTW89=m
|
||||||
CONFIG_RTW89_CORE=m
|
CONFIG_RTW89_CORE=m
|
||||||
CONFIG_RTW89_PCI=m
|
CONFIG_RTW89_PCI=m
|
||||||
CONFIG_RTW89_8852A=m
|
CONFIG_RTW89_8852A=m
|
||||||
CONFIG_RTW89_8852B=m
|
|
||||||
CONFIG_RTW89_8852C=m
|
CONFIG_RTW89_8852C=m
|
||||||
CONFIG_RTW89_8852AE=m
|
CONFIG_RTW89_8852AE=m
|
||||||
CONFIG_RTW89_8852BE=m
|
# CONFIG_RTW89_8852BE is not set
|
||||||
CONFIG_RTW89_8852CE=m
|
CONFIG_RTW89_8852CE=m
|
||||||
CONFIG_RTW89_DEBUG=y
|
CONFIG_RTW89_DEBUG=y
|
||||||
CONFIG_RTW89_DEBUGMSG=y
|
CONFIG_RTW89_DEBUGMSG=y
|
||||||
@@ -4232,7 +4224,7 @@ CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
|
|||||||
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
||||||
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
||||||
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
||||||
CONFIG_TOUCHSCREEN_CYTTSP5=m
|
# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
|
||||||
CONFIG_TOUCHSCREEN_DA9034=m
|
CONFIG_TOUCHSCREEN_DA9034=m
|
||||||
CONFIG_TOUCHSCREEN_DA9052=m
|
CONFIG_TOUCHSCREEN_DA9052=m
|
||||||
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
||||||
@@ -4244,7 +4236,7 @@ CONFIG_TOUCHSCREEN_FUJITSU=m
|
|||||||
CONFIG_TOUCHSCREEN_GOODIX=m
|
CONFIG_TOUCHSCREEN_GOODIX=m
|
||||||
CONFIG_TOUCHSCREEN_HIDEEP=m
|
CONFIG_TOUCHSCREEN_HIDEEP=m
|
||||||
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
|
CONFIG_TOUCHSCREEN_HYCON_HY46XX=m
|
||||||
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=m
|
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
|
||||||
CONFIG_TOUCHSCREEN_ILI210X=m
|
CONFIG_TOUCHSCREEN_ILI210X=m
|
||||||
CONFIG_TOUCHSCREEN_ILITEK=m
|
CONFIG_TOUCHSCREEN_ILITEK=m
|
||||||
CONFIG_TOUCHSCREEN_S6SY761=m
|
CONFIG_TOUCHSCREEN_S6SY761=m
|
||||||
@@ -4319,7 +4311,7 @@ CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
|
|||||||
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
|
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
|
||||||
CONFIG_TOUCHSCREEN_IQS5XX=m
|
CONFIG_TOUCHSCREEN_IQS5XX=m
|
||||||
CONFIG_TOUCHSCREEN_ZINITIX=m
|
CONFIG_TOUCHSCREEN_ZINITIX=m
|
||||||
CONFIG_TOUCHSCREEN_HIMAX_HX83112B=m
|
# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
|
||||||
CONFIG_INPUT_MISC=y
|
CONFIG_INPUT_MISC=y
|
||||||
CONFIG_INPUT_88PM860X_ONKEY=m
|
CONFIG_INPUT_88PM860X_ONKEY=m
|
||||||
CONFIG_INPUT_88PM80X_ONKEY=m
|
CONFIG_INPUT_88PM80X_ONKEY=m
|
||||||
@@ -4437,7 +4429,7 @@ CONFIG_HW_CONSOLE=y
|
|||||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||||
CONFIG_UNIX98_PTYS=y
|
CONFIG_UNIX98_PTYS=y
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
# CONFIG_LEGACY_TIOCSTI is not set
|
CONFIG_LEGACY_TIOCSTI=y
|
||||||
CONFIG_LDISC_AUTOLOAD=y
|
CONFIG_LDISC_AUTOLOAD=y
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -4530,7 +4522,7 @@ CONFIG_IPMI_SSIF=m
|
|||||||
CONFIG_IPMI_IPMB=m
|
CONFIG_IPMI_IPMB=m
|
||||||
CONFIG_IPMI_WATCHDOG=m
|
CONFIG_IPMI_WATCHDOG=m
|
||||||
CONFIG_IPMI_POWEROFF=m
|
CONFIG_IPMI_POWEROFF=m
|
||||||
CONFIG_SSIF_IPMI_BMC=m
|
# CONFIG_SSIF_IPMI_BMC is not set
|
||||||
CONFIG_IPMB_DEVICE_INTERFACE=m
|
CONFIG_IPMB_DEVICE_INTERFACE=m
|
||||||
CONFIG_HW_RANDOM=y
|
CONFIG_HW_RANDOM=y
|
||||||
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
||||||
@@ -4726,7 +4718,7 @@ CONFIG_SPI_MICROCHIP_CORE=m
|
|||||||
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
|
CONFIG_SPI_MICROCHIP_CORE_QSPI=m
|
||||||
# CONFIG_SPI_LANTIQ_SSC is not set
|
# CONFIG_SPI_LANTIQ_SSC is not set
|
||||||
CONFIG_SPI_OC_TINY=m
|
CONFIG_SPI_OC_TINY=m
|
||||||
CONFIG_SPI_PCI1XXXX=m
|
# CONFIG_SPI_PCI1XXXX is not set
|
||||||
CONFIG_SPI_PXA2XX=m
|
CONFIG_SPI_PXA2XX=m
|
||||||
CONFIG_SPI_PXA2XX_PCI=m
|
CONFIG_SPI_PXA2XX_PCI=m
|
||||||
# CONFIG_SPI_ROCKCHIP is not set
|
# CONFIG_SPI_ROCKCHIP is not set
|
||||||
@@ -4943,7 +4935,7 @@ CONFIG_GPIO_VIPERBOARD=m
|
|||||||
# Virtual GPIO drivers
|
# Virtual GPIO drivers
|
||||||
#
|
#
|
||||||
CONFIG_GPIO_AGGREGATOR=m
|
CONFIG_GPIO_AGGREGATOR=m
|
||||||
CONFIG_GPIO_LATCH=m
|
# CONFIG_GPIO_LATCH is not set
|
||||||
CONFIG_GPIO_MOCKUP=m
|
CONFIG_GPIO_MOCKUP=m
|
||||||
CONFIG_GPIO_VIRTIO=m
|
CONFIG_GPIO_VIRTIO=m
|
||||||
CONFIG_GPIO_SIM=m
|
CONFIG_GPIO_SIM=m
|
||||||
@@ -5081,7 +5073,6 @@ CONFIG_HWMON_VID=m
|
|||||||
#
|
#
|
||||||
CONFIG_SENSORS_ABITUGURU=m
|
CONFIG_SENSORS_ABITUGURU=m
|
||||||
CONFIG_SENSORS_ABITUGURU3=m
|
CONFIG_SENSORS_ABITUGURU3=m
|
||||||
CONFIG_SENSORS_SMPRO=m
|
|
||||||
CONFIG_SENSORS_AD7314=m
|
CONFIG_SENSORS_AD7314=m
|
||||||
CONFIG_SENSORS_AD7414=m
|
CONFIG_SENSORS_AD7414=m
|
||||||
CONFIG_SENSORS_AD7418=m
|
CONFIG_SENSORS_AD7418=m
|
||||||
@@ -5201,9 +5192,8 @@ CONFIG_SENSORS_NCT7904=m
|
|||||||
CONFIG_SENSORS_NPCM7XX=m
|
CONFIG_SENSORS_NPCM7XX=m
|
||||||
CONFIG_SENSORS_NZXT_KRAKEN2=m
|
CONFIG_SENSORS_NZXT_KRAKEN2=m
|
||||||
CONFIG_SENSORS_NZXT_SMART2=m
|
CONFIG_SENSORS_NZXT_SMART2=m
|
||||||
CONFIG_SENSORS_OCC_P8_I2C=m
|
# CONFIG_SENSORS_OCC_P8_I2C is not set
|
||||||
CONFIG_SENSORS_OCC=m
|
# CONFIG_SENSORS_OXP is not set
|
||||||
CONFIG_SENSORS_OXP=m
|
|
||||||
CONFIG_SENSORS_PCF8591=m
|
CONFIG_SENSORS_PCF8591=m
|
||||||
CONFIG_PMBUS=m
|
CONFIG_PMBUS=m
|
||||||
CONFIG_SENSORS_PMBUS=m
|
CONFIG_SENSORS_PMBUS=m
|
||||||
@@ -5408,7 +5398,7 @@ CONFIG_MAX63XX_WATCHDOG=m
|
|||||||
CONFIG_RETU_WATCHDOG=m
|
CONFIG_RETU_WATCHDOG=m
|
||||||
CONFIG_ACQUIRE_WDT=m
|
CONFIG_ACQUIRE_WDT=m
|
||||||
CONFIG_ADVANTECH_WDT=m
|
CONFIG_ADVANTECH_WDT=m
|
||||||
CONFIG_ADVANTECH_EC_WDT=m
|
# CONFIG_ADVANTECH_EC_WDT is not set
|
||||||
CONFIG_ALIM1535_WDT=m
|
CONFIG_ALIM1535_WDT=m
|
||||||
CONFIG_ALIM7101_WDT=m
|
CONFIG_ALIM7101_WDT=m
|
||||||
CONFIG_EBC_C384_WDT=m
|
CONFIG_EBC_C384_WDT=m
|
||||||
@@ -5490,7 +5480,7 @@ CONFIG_BCMA_DRIVER_GPIO=y
|
|||||||
#
|
#
|
||||||
CONFIG_MFD_CORE=y
|
CONFIG_MFD_CORE=y
|
||||||
CONFIG_MFD_AS3711=y
|
CONFIG_MFD_AS3711=y
|
||||||
CONFIG_MFD_SMPRO=m
|
# CONFIG_MFD_SMPRO is not set
|
||||||
CONFIG_PMIC_ADP5520=y
|
CONFIG_PMIC_ADP5520=y
|
||||||
CONFIG_MFD_AAT2870_CORE=y
|
CONFIG_MFD_AAT2870_CORE=y
|
||||||
CONFIG_MFD_BCM590XX=m
|
CONFIG_MFD_BCM590XX=m
|
||||||
@@ -5671,7 +5661,7 @@ CONFIG_REGULATOR_MT6311=m
|
|||||||
CONFIG_REGULATOR_MT6323=m
|
CONFIG_REGULATOR_MT6323=m
|
||||||
CONFIG_REGULATOR_MT6331=m
|
CONFIG_REGULATOR_MT6331=m
|
||||||
CONFIG_REGULATOR_MT6332=m
|
CONFIG_REGULATOR_MT6332=m
|
||||||
CONFIG_REGULATOR_MT6357=m
|
# CONFIG_REGULATOR_MT6357 is not set
|
||||||
CONFIG_REGULATOR_MT6358=m
|
CONFIG_REGULATOR_MT6358=m
|
||||||
CONFIG_REGULATOR_MT6359=m
|
CONFIG_REGULATOR_MT6359=m
|
||||||
CONFIG_REGULATOR_MT6360=m
|
CONFIG_REGULATOR_MT6360=m
|
||||||
@@ -5693,7 +5683,7 @@ CONFIG_REGULATOR_RT5120=m
|
|||||||
CONFIG_REGULATOR_RT5190A=m
|
CONFIG_REGULATOR_RT5190A=m
|
||||||
CONFIG_REGULATOR_RT5759=m
|
CONFIG_REGULATOR_RT5759=m
|
||||||
CONFIG_REGULATOR_RT6160=m
|
CONFIG_REGULATOR_RT6160=m
|
||||||
CONFIG_REGULATOR_RT6190=m
|
# CONFIG_REGULATOR_RT6190 is not set
|
||||||
CONFIG_REGULATOR_RT6245=m
|
CONFIG_REGULATOR_RT6245=m
|
||||||
CONFIG_REGULATOR_RTQ2134=m
|
CONFIG_REGULATOR_RTQ2134=m
|
||||||
CONFIG_REGULATOR_RTMV20=m
|
CONFIG_REGULATOR_RTMV20=m
|
||||||
@@ -6187,8 +6177,7 @@ CONFIG_VIDEO_VIMC=m
|
|||||||
CONFIG_VIDEO_VIVID=m
|
CONFIG_VIDEO_VIVID=m
|
||||||
CONFIG_VIDEO_VIVID_CEC=y
|
CONFIG_VIDEO_VIVID_CEC=y
|
||||||
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
||||||
CONFIG_VIDEO_VISL=m
|
# CONFIG_VIDEO_VISL is not set
|
||||||
# CONFIG_VISL_DEBUGFS is not set
|
|
||||||
CONFIG_DVB_TEST_DRIVERS=y
|
CONFIG_DVB_TEST_DRIVERS=y
|
||||||
CONFIG_DVB_VIDTV=m
|
CONFIG_DVB_VIDTV=m
|
||||||
|
|
||||||
@@ -6263,7 +6252,7 @@ CONFIG_VIDEO_NOON010PC30=m
|
|||||||
CONFIG_VIDEO_OG01A1B=m
|
CONFIG_VIDEO_OG01A1B=m
|
||||||
CONFIG_VIDEO_OV02A10=m
|
CONFIG_VIDEO_OV02A10=m
|
||||||
CONFIG_VIDEO_OV08D10=m
|
CONFIG_VIDEO_OV08D10=m
|
||||||
CONFIG_VIDEO_OV08X40=m
|
# CONFIG_VIDEO_OV08X40 is not set
|
||||||
CONFIG_VIDEO_OV13858=m
|
CONFIG_VIDEO_OV13858=m
|
||||||
CONFIG_VIDEO_OV13B10=m
|
CONFIG_VIDEO_OV13B10=m
|
||||||
CONFIG_VIDEO_OV2640=m
|
CONFIG_VIDEO_OV2640=m
|
||||||
@@ -6271,7 +6260,7 @@ CONFIG_VIDEO_OV2659=m
|
|||||||
CONFIG_VIDEO_OV2680=m
|
CONFIG_VIDEO_OV2680=m
|
||||||
CONFIG_VIDEO_OV2685=m
|
CONFIG_VIDEO_OV2685=m
|
||||||
CONFIG_VIDEO_OV2740=m
|
CONFIG_VIDEO_OV2740=m
|
||||||
CONFIG_VIDEO_OV4689=m
|
# CONFIG_VIDEO_OV4689 is not set
|
||||||
CONFIG_VIDEO_OV5647=m
|
CONFIG_VIDEO_OV5647=m
|
||||||
CONFIG_VIDEO_OV5648=m
|
CONFIG_VIDEO_OV5648=m
|
||||||
CONFIG_VIDEO_OV5670=m
|
CONFIG_VIDEO_OV5670=m
|
||||||
@@ -6581,6 +6570,7 @@ CONFIG_DRM=y
|
|||||||
CONFIG_DRM_MIPI_DBI=m
|
CONFIG_DRM_MIPI_DBI=m
|
||||||
CONFIG_DRM_MIPI_DSI=y
|
CONFIG_DRM_MIPI_DSI=y
|
||||||
# CONFIG_DRM_DEBUG_MM is not set
|
# CONFIG_DRM_DEBUG_MM is not set
|
||||||
|
CONFIG_DRM_USE_DYNAMIC_DEBUG=y
|
||||||
CONFIG_DRM_KMS_HELPER=y
|
CONFIG_DRM_KMS_HELPER=y
|
||||||
CONFIG_DRM_FBDEV_EMULATION=y
|
CONFIG_DRM_FBDEV_EMULATION=y
|
||||||
CONFIG_DRM_FBDEV_OVERALLOC=100
|
CONFIG_DRM_FBDEV_OVERALLOC=100
|
||||||
@@ -6858,7 +6848,7 @@ CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
|
|||||||
# CONFIG_LOGO is not set
|
# CONFIG_LOGO is not set
|
||||||
# end of Graphics support
|
# end of Graphics support
|
||||||
|
|
||||||
CONFIG_DRM_ACCEL=y
|
# CONFIG_DRM_ACCEL is not set
|
||||||
CONFIG_SOUND=m
|
CONFIG_SOUND=m
|
||||||
CONFIG_SOUND_OSS_CORE=y
|
CONFIG_SOUND_OSS_CORE=y
|
||||||
# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
|
# 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_DMIC=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=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_MAX98357A=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=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_RT274=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=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_WM8904=m
|
||||||
CONFIG_SND_SOC_WM8940=m
|
CONFIG_SND_SOC_WM8940=m
|
||||||
CONFIG_SND_SOC_WM8960=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_WM8962=m
|
||||||
CONFIG_SND_SOC_WM8974=m
|
CONFIG_SND_SOC_WM8974=m
|
||||||
CONFIG_SND_SOC_WM8978=m
|
CONFIG_SND_SOC_WM8978=m
|
||||||
@@ -8357,7 +8347,7 @@ CONFIG_INFINIBAND_HFI1=m
|
|||||||
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
||||||
# CONFIG_SDMA_VERBOSITY is not set
|
# CONFIG_SDMA_VERBOSITY is not set
|
||||||
CONFIG_INFINIBAND_IRDMA=m
|
CONFIG_INFINIBAND_IRDMA=m
|
||||||
CONFIG_MANA_INFINIBAND=m
|
# CONFIG_MANA_INFINIBAND is not set
|
||||||
CONFIG_MLX4_INFINIBAND=m
|
CONFIG_MLX4_INFINIBAND=m
|
||||||
CONFIG_MLX5_INFINIBAND=m
|
CONFIG_MLX5_INFINIBAND=m
|
||||||
CONFIG_INFINIBAND_MTHCA=m
|
CONFIG_INFINIBAND_MTHCA=m
|
||||||
@@ -8633,7 +8623,7 @@ CONFIG_NITRO_ENCLAVES=m
|
|||||||
CONFIG_ACRN_HSM=m
|
CONFIG_ACRN_HSM=m
|
||||||
CONFIG_EFI_SECRET=m
|
CONFIG_EFI_SECRET=m
|
||||||
CONFIG_SEV_GUEST=m
|
CONFIG_SEV_GUEST=m
|
||||||
CONFIG_TDX_GUEST_DRIVER=m
|
# CONFIG_TDX_GUEST_DRIVER is not set
|
||||||
CONFIG_VIRTIO_ANCHOR=y
|
CONFIG_VIRTIO_ANCHOR=y
|
||||||
CONFIG_VIRTIO=y
|
CONFIG_VIRTIO=y
|
||||||
CONFIG_VIRTIO_PCI_LIB=m
|
CONFIG_VIRTIO_PCI_LIB=m
|
||||||
@@ -8831,7 +8821,7 @@ CONFIG_CROS_EC_DEBUGFS=m
|
|||||||
CONFIG_CROS_EC_SENSORHUB=m
|
CONFIG_CROS_EC_SENSORHUB=m
|
||||||
CONFIG_CROS_EC_SYSFS=m
|
CONFIG_CROS_EC_SYSFS=m
|
||||||
CONFIG_CROS_EC_TYPEC=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_LOGGER=m
|
||||||
CONFIG_CROS_USBPD_NOTIFY=m
|
CONFIG_CROS_USBPD_NOTIFY=m
|
||||||
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
|
CONFIG_CHROMEOS_PRIVACY_SCREEN=m
|
||||||
@@ -8908,9 +8898,7 @@ CONFIG_AMILO_RFKILL=m
|
|||||||
CONFIG_FUJITSU_LAPTOP=m
|
CONFIG_FUJITSU_LAPTOP=m
|
||||||
CONFIG_FUJITSU_TABLET=m
|
CONFIG_FUJITSU_TABLET=m
|
||||||
CONFIG_GPD_POCKET_FAN=m
|
CONFIG_GPD_POCKET_FAN=m
|
||||||
CONFIG_X86_PLATFORM_DRIVERS_HP=y
|
# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
|
||||||
CONFIG_HP_ACCEL=m
|
|
||||||
CONFIG_HP_WMI=m
|
|
||||||
CONFIG_WIRELESS_HOTKEY=m
|
CONFIG_WIRELESS_HOTKEY=m
|
||||||
CONFIG_IBM_RTL=m
|
CONFIG_IBM_RTL=m
|
||||||
CONFIG_IDEAPAD_LAPTOP=m
|
CONFIG_IDEAPAD_LAPTOP=m
|
||||||
@@ -8925,7 +8913,7 @@ CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
|
|||||||
CONFIG_THINKPAD_LMI=m
|
CONFIG_THINKPAD_LMI=m
|
||||||
CONFIG_INTEL_ATOMISP2_PDX86=y
|
CONFIG_INTEL_ATOMISP2_PDX86=y
|
||||||
CONFIG_INTEL_ATOMISP2_LED=m
|
CONFIG_INTEL_ATOMISP2_LED=m
|
||||||
CONFIG_INTEL_IFS=m
|
# CONFIG_INTEL_IFS is not set
|
||||||
CONFIG_INTEL_SAR_INT1092=m
|
CONFIG_INTEL_SAR_INT1092=m
|
||||||
CONFIG_INTEL_SKL_INT3472=m
|
CONFIG_INTEL_SKL_INT3472=m
|
||||||
CONFIG_INTEL_PMC_CORE=y
|
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_DEFAULT_ON is not set
|
||||||
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
|
||||||
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
|
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
|
||||||
CONFIG_IOMMUFD=m
|
# CONFIG_IOMMUFD is not set
|
||||||
CONFIG_IRQ_REMAP=y
|
CONFIG_IRQ_REMAP=y
|
||||||
CONFIG_HYPERV_IOMMU=y
|
CONFIG_HYPERV_IOMMU=y
|
||||||
CONFIG_VIRTIO_IOMMU=m
|
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_3AXIS=m
|
||||||
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
|
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
|
||||||
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
|
CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
|
||||||
CONFIG_IIO_KX022A=m
|
# CONFIG_IIO_KX022A_SPI is not set
|
||||||
CONFIG_IIO_KX022A_SPI=m
|
# CONFIG_IIO_KX022A_I2C is not set
|
||||||
CONFIG_IIO_KX022A_I2C=m
|
|
||||||
CONFIG_KXSD9=m
|
CONFIG_KXSD9=m
|
||||||
CONFIG_KXSD9_SPI=m
|
CONFIG_KXSD9_SPI=m
|
||||||
CONFIG_KXSD9_I2C=m
|
CONFIG_KXSD9_I2C=m
|
||||||
@@ -9257,7 +9244,7 @@ CONFIG_STK8BA50=m
|
|||||||
# Analog to digital converters
|
# Analog to digital converters
|
||||||
#
|
#
|
||||||
CONFIG_AD_SIGMA_DELTA=m
|
CONFIG_AD_SIGMA_DELTA=m
|
||||||
CONFIG_AD4130=m
|
# CONFIG_AD4130 is not set
|
||||||
CONFIG_AD7091R5=m
|
CONFIG_AD7091R5=m
|
||||||
CONFIG_AD7124=m
|
CONFIG_AD7124=m
|
||||||
CONFIG_AD7192=m
|
CONFIG_AD7192=m
|
||||||
@@ -9298,7 +9285,7 @@ CONFIG_MAX1027=m
|
|||||||
CONFIG_MAX11100=m
|
CONFIG_MAX11100=m
|
||||||
CONFIG_MAX1118=m
|
CONFIG_MAX1118=m
|
||||||
CONFIG_MAX11205=m
|
CONFIG_MAX11205=m
|
||||||
CONFIG_MAX11410=m
|
# CONFIG_MAX11410 is not set
|
||||||
CONFIG_MAX1241=m
|
CONFIG_MAX1241=m
|
||||||
CONFIG_MAX1363=m
|
CONFIG_MAX1363=m
|
||||||
CONFIG_MAX9611=m
|
CONFIG_MAX9611=m
|
||||||
@@ -9306,7 +9293,7 @@ CONFIG_MCP320X=m
|
|||||||
CONFIG_MCP3422=m
|
CONFIG_MCP3422=m
|
||||||
CONFIG_MCP3911=m
|
CONFIG_MCP3911=m
|
||||||
CONFIG_MEDIATEK_MT6360_ADC=m
|
CONFIG_MEDIATEK_MT6360_ADC=m
|
||||||
CONFIG_MEDIATEK_MT6370_ADC=m
|
# CONFIG_MEDIATEK_MT6370_ADC is not set
|
||||||
CONFIG_MEN_Z188_ADC=m
|
CONFIG_MEN_Z188_ADC=m
|
||||||
CONFIG_MP2629_ADC=m
|
CONFIG_MP2629_ADC=m
|
||||||
CONFIG_NAU7802=m
|
CONFIG_NAU7802=m
|
||||||
@@ -9339,7 +9326,7 @@ CONFIG_XILINX_XADC=m
|
|||||||
#
|
#
|
||||||
# Analog to digital and digital to analog converters
|
# Analog to digital and digital to analog converters
|
||||||
#
|
#
|
||||||
CONFIG_AD74115=m
|
# CONFIG_AD74115 is not set
|
||||||
CONFIG_AD74413R=m
|
CONFIG_AD74413R=m
|
||||||
# end of Analog to digital and digital to analog converters
|
# end of Analog to digital and digital to analog converters
|
||||||
|
|
||||||
@@ -9489,7 +9476,7 @@ CONFIG_AD9523=m
|
|||||||
#
|
#
|
||||||
CONFIG_ADF4350=m
|
CONFIG_ADF4350=m
|
||||||
CONFIG_ADF4371=m
|
CONFIG_ADF4371=m
|
||||||
CONFIG_ADF4377=m
|
# CONFIG_ADF4377 is not set
|
||||||
CONFIG_ADMV1013=m
|
CONFIG_ADMV1013=m
|
||||||
CONFIG_ADMV1014=m
|
CONFIG_ADMV1014=m
|
||||||
CONFIG_ADMV4420=m
|
CONFIG_ADMV4420=m
|
||||||
@@ -9798,7 +9785,7 @@ CONFIG_TMP007=m
|
|||||||
CONFIG_TMP117=m
|
CONFIG_TMP117=m
|
||||||
CONFIG_TSYS01=m
|
CONFIG_TSYS01=m
|
||||||
CONFIG_TSYS02D=m
|
CONFIG_TSYS02D=m
|
||||||
CONFIG_MAX30208=m
|
# CONFIG_MAX30208 is not set
|
||||||
CONFIG_MAX31856=m
|
CONFIG_MAX31856=m
|
||||||
CONFIG_MAX31865=m
|
CONFIG_MAX31865=m
|
||||||
# end of Temperature sensors
|
# end of Temperature sensors
|
||||||
@@ -9952,8 +9939,7 @@ CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m
|
|||||||
CONFIG_FPGA_DFL_PCI=m
|
CONFIG_FPGA_DFL_PCI=m
|
||||||
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
|
CONFIG_FPGA_M10_BMC_SEC_UPDATE=m
|
||||||
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
|
CONFIG_FPGA_MGR_MICROCHIP_SPI=m
|
||||||
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG=m
|
# CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI is not set
|
||||||
CONFIG_FPGA_MGR_LATTICE_SYSCONFIG_SPI=m
|
|
||||||
CONFIG_TEE=m
|
CONFIG_TEE=m
|
||||||
CONFIG_AMDTEE=m
|
CONFIG_AMDTEE=m
|
||||||
CONFIG_MULTIPLEXER=m
|
CONFIG_MULTIPLEXER=m
|
||||||
@@ -10198,10 +10184,10 @@ CONFIG_SQUASHFS=m
|
|||||||
# CONFIG_SQUASHFS_FILE_CACHE is not set
|
# CONFIG_SQUASHFS_FILE_CACHE is not set
|
||||||
CONFIG_SQUASHFS_FILE_DIRECT=y
|
CONFIG_SQUASHFS_FILE_DIRECT=y
|
||||||
CONFIG_SQUASHFS_DECOMP_SINGLE=y
|
CONFIG_SQUASHFS_DECOMP_SINGLE=y
|
||||||
CONFIG_SQUASHFS_DECOMP_MULTI=y
|
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
|
||||||
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
|
CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
|
||||||
CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
|
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
|
||||||
CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y
|
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
|
||||||
CONFIG_SQUASHFS_XATTR=y
|
CONFIG_SQUASHFS_XATTR=y
|
||||||
CONFIG_SQUASHFS_ZLIB=y
|
CONFIG_SQUASHFS_ZLIB=y
|
||||||
CONFIG_SQUASHFS_LZ4=y
|
CONFIG_SQUASHFS_LZ4=y
|
||||||
@@ -10880,7 +10866,6 @@ CONFIG_TEXTSEARCH_BM=m
|
|||||||
CONFIG_TEXTSEARCH_FSM=m
|
CONFIG_TEXTSEARCH_FSM=m
|
||||||
CONFIG_BTREE=y
|
CONFIG_BTREE=y
|
||||||
CONFIG_INTERVAL_TREE=y
|
CONFIG_INTERVAL_TREE=y
|
||||||
CONFIG_INTERVAL_TREE_SPAN_ITER=y
|
|
||||||
CONFIG_XARRAY_MULTI=y
|
CONFIG_XARRAY_MULTI=y
|
||||||
CONFIG_ASSOCIATIVE_ARRAY=y
|
CONFIG_ASSOCIATIVE_ARRAY=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
|
@@ -284,8 +284,7 @@ _set_cpu_scheduler() {
|
|||||||
elif [ "$_kver" = "601" ]; then
|
elif [ "$_kver" = "601" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||||
elif [ "$_kver" = "602" ]; then
|
elif [ "$_kver" = "602" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "tt" "bore")
|
||||||
_projectc_unoff=1
|
|
||||||
else
|
else
|
||||||
_avail_cpu_scheds=("cfs")
|
_avail_cpu_scheds=("cfs")
|
||||||
fi
|
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"
|
_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"
|
_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
|
if [ -n "$_custom_commandline" ]; then
|
||||||
_enable "CMDLINE_BOOL"
|
_enable "CMDLINE_BOOL"
|
||||||
_disable "CMDLINE_OVERRIDE"
|
_disable "CMDLINE_OVERRIDE"
|
||||||
@@ -1578,14 +1572,10 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\r
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# NR_CPUS
|
# NR_CPUS
|
||||||
if [ "$_basever" != "601" ]; then
|
|
||||||
if [ -n "$_NR_CPUS_value" ]; then
|
if [ -n "$_NR_CPUS_value" ]; then
|
||||||
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
scripts/config --set-val "NR_CPUS" "$_NR_CPUS_value"
|
||||||
_enable "FORCE_NR_CPUS"
|
_enable "FORCE_NR_CPUS"
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
warning "NR_CPUS is bugged on 6.1.y, so your setting was ignored"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -358,263 +358,3 @@ index c0cd1b9..af1e2fb 100644
|
|||||||
--
|
--
|
||||||
https://clearlinux.org
|
https://clearlinux.org
|
||||||
|
|
||||||
From 676c2dc63592f52b716515573a3a825582a371e9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Arjan van de Ven <arjan@linux.intel.com>
|
|
||||||
Date: Sat, 8 Dec 2018 18:21:32 +0000
|
|
||||||
Subject: [PATCH 1/9] x86/vdso: Use lfence instead of rep and nop
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
arch/x86/include/asm/vdso/processor.h | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/arch/x86/include/asm/vdso/processor.h b/arch/x86/include/asm/vdso/processor.h
|
|
||||||
index 57b1a7034c64..e2c45674f989 100644
|
|
||||||
--- a/arch/x86/include/asm/vdso/processor.h
|
|
||||||
+++ b/arch/x86/include/asm/vdso/processor.h
|
|
||||||
@@ -10,7 +10,7 @@
|
|
||||||
/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
|
|
||||||
static __always_inline void rep_nop(void)
|
|
||||||
{
|
|
||||||
- asm volatile("rep; nop" ::: "memory");
|
|
||||||
+ asm volatile("lfence" ::: "memory");
|
|
||||||
}
|
|
||||||
|
|
||||||
static __always_inline void cpu_relax(void)
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
||||||
From 48dc9669f8db68adc480ffc2698ed8204440e45b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Arjan van de Ven <arjan@linux.intel.com>
|
|
||||||
Date: Thu, 13 Dec 2018 01:00:49 +0000
|
|
||||||
Subject: [PATCH 2/9] sched/wait: Do accept() in LIFO order for cache
|
|
||||||
efficiency
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
include/linux/wait.h | 2 ++
|
|
||||||
kernel/sched/wait.c | 24 ++++++++++++++++++++++++
|
|
||||||
net/ipv4/inet_connection_sock.c | 2 +-
|
|
||||||
3 files changed, 27 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/linux/wait.h b/include/linux/wait.h
|
|
||||||
index a0307b516b09..edc21128f387 100644
|
|
||||||
--- a/include/linux/wait.h
|
|
||||||
+++ b/include/linux/wait.h
|
|
||||||
@@ -165,6 +165,7 @@ static inline bool wq_has_sleeper(struct wait_queue_head *wq_head)
|
|
||||||
|
|
||||||
extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
extern void add_wait_queue_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
+extern void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
extern void add_wait_queue_priority(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
|
|
||||||
@@ -1192,6 +1193,7 @@ do { \
|
|
||||||
*/
|
|
||||||
void prepare_to_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
|
||||||
bool prepare_to_wait_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
|
||||||
+void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
|
||||||
long prepare_to_wait_event(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
|
|
||||||
void finish_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
|
|
||||||
long wait_woken(struct wait_queue_entry *wq_entry, unsigned mode, long timeout);
|
|
||||||
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
|
|
||||||
index 133b74730738..1647fb8662eb 100644
|
|
||||||
--- a/kernel/sched/wait.c
|
|
||||||
+++ b/kernel/sched/wait.c
|
|
||||||
@@ -47,6 +47,17 @@ void add_wait_queue_priority(struct wait_queue_head *wq_head, struct wait_queue_
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(add_wait_queue_priority);
|
|
||||||
|
|
||||||
+void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
|
|
||||||
+{
|
|
||||||
+ unsigned long flags;
|
|
||||||
+
|
|
||||||
+ wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
|
|
||||||
+ spin_lock_irqsave(&wq_head->lock, flags);
|
|
||||||
+ __add_wait_queue(wq_head, wq_entry);
|
|
||||||
+ spin_unlock_irqrestore(&wq_head->lock, flags);
|
|
||||||
+}
|
|
||||||
+EXPORT_SYMBOL(add_wait_queue_exclusive_lifo);
|
|
||||||
+
|
|
||||||
void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
@@ -293,6 +304,19 @@ prepare_to_wait_exclusive(struct wait_queue_head *wq_head, struct wait_queue_ent
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(prepare_to_wait_exclusive);
|
|
||||||
|
|
||||||
+void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state)
|
|
||||||
+{
|
|
||||||
+ unsigned long flags;
|
|
||||||
+
|
|
||||||
+ wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
|
|
||||||
+ spin_lock_irqsave(&wq_head->lock, flags);
|
|
||||||
+ if (list_empty(&wq_entry->entry))
|
|
||||||
+ __add_wait_queue(wq_head, wq_entry);
|
|
||||||
+ set_current_state(state);
|
|
||||||
+ spin_unlock_irqrestore(&wq_head->lock, flags);
|
|
||||||
+}
|
|
||||||
+EXPORT_SYMBOL(prepare_to_wait_exclusive_lifo);
|
|
||||||
+
|
|
||||||
void init_wait_entry(struct wait_queue_entry *wq_entry, int flags)
|
|
||||||
{
|
|
||||||
wq_entry->flags = flags;
|
|
||||||
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
|
|
||||||
index f2c43f67187d..9885bfb429a2 100644
|
|
||||||
--- a/net/ipv4/inet_connection_sock.c
|
|
||||||
+++ b/net/ipv4/inet_connection_sock.c
|
|
||||||
@@ -606,7 +606,7 @@ static int inet_csk_wait_for_connect(struct sock *sk, long timeo)
|
|
||||||
* having to remove and re-insert us on the wait queue.
|
|
||||||
*/
|
|
||||||
for (;;) {
|
|
||||||
- prepare_to_wait_exclusive(sk_sleep(sk), &wait,
|
|
||||||
+ prepare_to_wait_exclusive_lifo(sk_sleep(sk), &wait,
|
|
||||||
TASK_INTERRUPTIBLE);
|
|
||||||
release_sock(sk);
|
|
||||||
if (reqsk_queue_empty(&icsk->icsk_accept_queue))
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
From afa213811c5490906caf394b20bb4b616fc6f12a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
|
|
||||||
Date: Thu, 25 Aug 2022 15:55:26 -0700
|
|
||||||
Subject: [PATCH 3/9] sched/fair: Simplify asym_packing logic for SMT sched
|
|
||||||
groups
|
|
||||||
|
|
||||||
When the destination CPU is an SMT sibling and idle, it can only help the
|
|
||||||
busiest group if all of its other SMT siblings are also idle. Otherwise,
|
|
||||||
there is not increase in throughput.
|
|
||||||
|
|
||||||
It does not matter whether the busiest group has SMT siblings. Simply
|
|
||||||
check if there are any tasks running on the local group before proceeding.
|
|
||||||
|
|
||||||
Cc: Ben Segall <bsegall@google.com>
|
|
||||||
Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
|
|
||||||
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
|
|
||||||
Cc: Len Brown <len.brown@intel.com>
|
|
||||||
Cc: Mel Gorman <mgorman@suse.de>
|
|
||||||
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
||||||
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
|
|
||||||
Cc: Steven Rostedt <rostedt@goodmis.org>
|
|
||||||
Cc: Tim C. Chen <tim.c.chen@intel.com>
|
|
||||||
Cc: Valentin Schneider <vschneid@redhat.com>
|
|
||||||
Cc: x86@kernel.org
|
|
||||||
Cc: linux-kernel@vger.kernel.org
|
|
||||||
Reviewed-by: Len Brown <len.brown@intel.com>
|
|
||||||
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
kernel/sched/fair.c | 29 +++++++++--------------------
|
|
||||||
1 file changed, 9 insertions(+), 20 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
|
|
||||||
index 345cc5e9fa6e..60f9690a5626 100644
|
|
||||||
--- a/kernel/sched/fair.c
|
|
||||||
+++ b/kernel/sched/fair.c
|
|
||||||
@@ -8921,12 +8921,10 @@ static bool asym_smt_can_pull_tasks(int dst_cpu, struct sd_lb_stats *sds,
|
|
||||||
struct sched_group *sg)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_SCHED_SMT
|
|
||||||
- bool local_is_smt, sg_is_smt;
|
|
||||||
+ bool local_is_smt;
|
|
||||||
int sg_busy_cpus;
|
|
||||||
|
|
||||||
local_is_smt = sds->local->flags & SD_SHARE_CPUCAPACITY;
|
|
||||||
- sg_is_smt = sg->flags & SD_SHARE_CPUCAPACITY;
|
|
||||||
-
|
|
||||||
sg_busy_cpus = sgs->group_weight - sgs->idle_cpus;
|
|
||||||
|
|
||||||
if (!local_is_smt) {
|
|
||||||
@@ -8947,25 +8945,16 @@ static bool asym_smt_can_pull_tasks(int dst_cpu, struct sd_lb_stats *sds,
|
|
||||||
return sched_asym_prefer(dst_cpu, sg->asym_prefer_cpu);
|
|
||||||
}
|
|
||||||
|
|
||||||
- /* @dst_cpu has SMT siblings. */
|
|
||||||
-
|
|
||||||
- if (sg_is_smt) {
|
|
||||||
- int local_busy_cpus = sds->local->group_weight -
|
|
||||||
- sds->local_stat.idle_cpus;
|
|
||||||
- int busy_cpus_delta = sg_busy_cpus - local_busy_cpus;
|
|
||||||
-
|
|
||||||
- if (busy_cpus_delta == 1)
|
|
||||||
- return sched_asym_prefer(dst_cpu, sg->asym_prefer_cpu);
|
|
||||||
-
|
|
||||||
- return false;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
- * @sg does not have SMT siblings. Ensure that @sds::local does not end
|
|
||||||
- * up with more than one busy SMT sibling and only pull tasks if there
|
|
||||||
- * are not busy CPUs (i.e., no CPU has running tasks).
|
|
||||||
+ * @dst_cpu has SMT siblings. When both @dst_cpu and the busiest core
|
|
||||||
+ * have one or more busy siblings, moving tasks between them results
|
|
||||||
+ * in the same throughput. Only if all the siblings of @dst_cpu are
|
|
||||||
+ * idle throughput can increase.
|
|
||||||
+ *
|
|
||||||
+ * If the difference in the number of busy CPUs is two or more, let
|
|
||||||
+ * find_busiest_group() take care of it.
|
|
||||||
*/
|
|
||||||
- if (!sds->local_stat.sum_nr_running)
|
|
||||||
+ if (sg_busy_cpus == 1 && !sds->local_stat.sum_nr_running)
|
|
||||||
return sched_asym_prefer(dst_cpu, sg->asym_prefer_cpu);
|
|
||||||
|
|
||||||
return false;
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
From a1f627fd10ced4f5eeae678bc4ba96ea7fa01d7e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
|
|
||||||
Date: Thu, 25 Aug 2022 15:55:28 -0700
|
|
||||||
Subject: [PATCH 4/9] sched/fair: Let lower-priority CPUs do active balancing
|
|
||||||
|
|
||||||
When more than one SMT siblings of a physical core are busy, an idle CPU
|
|
||||||
of lower priority can help.
|
|
||||||
|
|
||||||
Indicate that the low priority CPU can do active balancing from the high-
|
|
||||||
priority CPU only if they belong to separate cores.
|
|
||||||
|
|
||||||
Cc: Ben Segall <bsegall@google.com>
|
|
||||||
Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
|
|
||||||
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
|
|
||||||
Cc: Len Brown <len.brown@intel.com>
|
|
||||||
Cc: Mel Gorman <mgorman@suse.de>
|
|
||||||
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
|
||||||
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
|
|
||||||
Cc: Steven Rostedt <rostedt@goodmis.org>
|
|
||||||
Cc: Tim C. Chen <tim.c.chen@intel.com>
|
|
||||||
Cc: Valentin Schneider <vschneid@redhat.com>
|
|
||||||
Cc: x86@kernel.org
|
|
||||||
Cc: linux-kernel@vger.kernel.org
|
|
||||||
Reviewed-by: Len Brown <len.brown@intel.com>
|
|
||||||
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
kernel/sched/fair.c | 7 ++++++-
|
|
||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
|
|
||||||
index 60f9690a5626..67b0eacad0e9 100644
|
|
||||||
--- a/kernel/sched/fair.c
|
|
||||||
+++ b/kernel/sched/fair.c
|
|
||||||
@@ -10176,9 +10176,14 @@ asym_active_balance(struct lb_env *env)
|
|
||||||
* ASYM_PACKING needs to force migrate tasks from busy but
|
|
||||||
* lower priority CPUs in order to pack all tasks in the
|
|
||||||
* highest priority CPUs.
|
|
||||||
+ *
|
|
||||||
+ * If the busy CPU has higher priority but is an SMT sibling
|
|
||||||
+ * in which other SMT siblings are also busy, a lower-priority
|
|
||||||
+ * CPU in a separate core can help.
|
|
||||||
*/
|
|
||||||
return env->idle != CPU_NOT_IDLE && (env->sd->flags & SD_ASYM_PACKING) &&
|
|
||||||
- sched_asym_prefer(env->dst_cpu, env->src_cpu);
|
|
||||||
+ (sched_asym_prefer(env->dst_cpu, env->src_cpu) ||
|
|
||||||
+ !(env->sd->flags & SD_SHARE_CPUCAPACITY));
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
@@ -820,31 +820,3 @@ index a0b0397e29ee4c..87a983a356530c 100644
|
|||||||
spin_unlock(&zone->lock);
|
spin_unlock(&zone->lock);
|
||||||
return allocated;
|
return allocated;
|
||||||
}
|
}
|
||||||
|
|
||||||
From 6329525a0fa10cd13f39b76948b1296150f75c95 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
Date: Mon, 29 Aug 2022 16:47:26 +0000
|
|
||||||
Subject: [PATCH 14/16] XANMOD: Makefile: Disable GCC vectorization on trees
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
Makefile | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index 3f6628780eb2..35a5ae1ede42 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -1069,6 +1069,9 @@ endif
|
|
||||||
KBUILD_CFLAGS-$(call gcc-min-version, 90100) += -Wno-alloc-size-larger-than
|
|
||||||
KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH)
|
|
||||||
|
|
||||||
+# disable GCC vectorization on trees
|
|
||||||
+KBUILD_CFLAGS += $(call cc-option, -fno-tree-vectorize)
|
|
||||||
+
|
|
||||||
# disable invalid "can't wrap" optimizations for signed / pointers
|
|
||||||
KBUILD_CFLAGS += -fno-strict-overflow
|
|
||||||
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
|
||||||
|
@@ -20,265 +20,3 @@ index 6b3b59cc51d6..2a0072192c3d 100644
|
|||||||
|
|
||||||
int sched_thermal_decay_shift;
|
int sched_thermal_decay_shift;
|
||||||
static int __init setup_sched_thermal_decay_shift(char *str)
|
static int __init setup_sched_thermal_decay_shift(char *str)
|
||||||
|
|
||||||
From 5d5b708e3731e135ea7ae168571ad78d883e63e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
Date: Wed, 1 Feb 2023 10:17:47 +0000
|
|
||||||
Subject: [PATCH 02/16] XANMOD: fair: Remove all energy efficiency functions
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
kernel/sched/fair.c | 224 +-------------------------------------------
|
|
||||||
1 file changed, 3 insertions(+), 221 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
|
|
||||||
index 0f8736991427..345cc5e9fa6e 100644
|
|
||||||
--- a/kernel/sched/fair.c
|
|
||||||
+++ b/kernel/sched/fair.c
|
|
||||||
@@ -19,6 +19,9 @@
|
|
||||||
*
|
|
||||||
* Adaptive scheduling granularity, math enhancements by Peter Zijlstra
|
|
||||||
* Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra
|
|
||||||
+ *
|
|
||||||
+ * Remove energy efficiency functions by Alexandre Frade
|
|
||||||
+ * (C) 2021 Alexandre Frade <kernel@xanmod.org>
|
|
||||||
*/
|
|
||||||
#include <linux/energy_model.h>
|
|
||||||
#include <linux/mmap_lock.h>
|
|
||||||
@@ -7136,219 +7139,6 @@ eenv_pd_max_util(struct energy_env *eenv, struct cpumask *pd_cpus,
|
|
||||||
return min(max_util, eenv->cpu_cap);
|
|
||||||
}
|
|
||||||
|
|
||||||
-/*
|
|
||||||
- * compute_energy(): Use the Energy Model to estimate the energy that @pd would
|
|
||||||
- * consume for a given utilization landscape @eenv. When @dst_cpu < 0, the task
|
|
||||||
- * contribution is ignored.
|
|
||||||
- */
|
|
||||||
-static inline unsigned long
|
|
||||||
-compute_energy(struct energy_env *eenv, struct perf_domain *pd,
|
|
||||||
- struct cpumask *pd_cpus, struct task_struct *p, int dst_cpu)
|
|
||||||
-{
|
|
||||||
- unsigned long max_util = eenv_pd_max_util(eenv, pd_cpus, p, dst_cpu);
|
|
||||||
- unsigned long busy_time = eenv->pd_busy_time;
|
|
||||||
-
|
|
||||||
- if (dst_cpu >= 0)
|
|
||||||
- busy_time = min(eenv->pd_cap, busy_time + eenv->task_busy_time);
|
|
||||||
-
|
|
||||||
- return em_cpu_energy(pd->em_pd, max_util, busy_time, eenv->cpu_cap);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
- * find_energy_efficient_cpu(): Find most energy-efficient target CPU for the
|
|
||||||
- * waking task. find_energy_efficient_cpu() looks for the CPU with maximum
|
|
||||||
- * spare capacity in each performance domain and uses it as a potential
|
|
||||||
- * candidate to execute the task. Then, it uses the Energy Model to figure
|
|
||||||
- * out which of the CPU candidates is the most energy-efficient.
|
|
||||||
- *
|
|
||||||
- * The rationale for this heuristic is as follows. In a performance domain,
|
|
||||||
- * all the most energy efficient CPU candidates (according to the Energy
|
|
||||||
- * Model) are those for which we'll request a low frequency. When there are
|
|
||||||
- * several CPUs for which the frequency request will be the same, we don't
|
|
||||||
- * have enough data to break the tie between them, because the Energy Model
|
|
||||||
- * only includes active power costs. With this model, if we assume that
|
|
||||||
- * frequency requests follow utilization (e.g. using schedutil), the CPU with
|
|
||||||
- * the maximum spare capacity in a performance domain is guaranteed to be among
|
|
||||||
- * the best candidates of the performance domain.
|
|
||||||
- *
|
|
||||||
- * In practice, it could be preferable from an energy standpoint to pack
|
|
||||||
- * small tasks on a CPU in order to let other CPUs go in deeper idle states,
|
|
||||||
- * but that could also hurt our chances to go cluster idle, and we have no
|
|
||||||
- * ways to tell with the current Energy Model if this is actually a good
|
|
||||||
- * idea or not. So, find_energy_efficient_cpu() basically favors
|
|
||||||
- * cluster-packing, and spreading inside a cluster. That should at least be
|
|
||||||
- * a good thing for latency, and this is consistent with the idea that most
|
|
||||||
- * of the energy savings of EAS come from the asymmetry of the system, and
|
|
||||||
- * not so much from breaking the tie between identical CPUs. That's also the
|
|
||||||
- * reason why EAS is enabled in the topology code only for systems where
|
|
||||||
- * SD_ASYM_CPUCAPACITY is set.
|
|
||||||
- *
|
|
||||||
- * NOTE: Forkees are not accepted in the energy-aware wake-up path because
|
|
||||||
- * they don't have any useful utilization data yet and it's not possible to
|
|
||||||
- * forecast their impact on energy consumption. Consequently, they will be
|
|
||||||
- * placed by find_idlest_cpu() on the least loaded CPU, which might turn out
|
|
||||||
- * to be energy-inefficient in some use-cases. The alternative would be to
|
|
||||||
- * bias new tasks towards specific types of CPUs first, or to try to infer
|
|
||||||
- * their util_avg from the parent task, but those heuristics could hurt
|
|
||||||
- * other use-cases too. So, until someone finds a better way to solve this,
|
|
||||||
- * let's keep things simple by re-using the existing slow path.
|
|
||||||
- */
|
|
||||||
-static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
|
|
||||||
-{
|
|
||||||
- struct cpumask *cpus = this_cpu_cpumask_var_ptr(select_rq_mask);
|
|
||||||
- unsigned long prev_delta = ULONG_MAX, best_delta = ULONG_MAX;
|
|
||||||
- unsigned long p_util_min = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MIN) : 0;
|
|
||||||
- unsigned long p_util_max = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MAX) : 1024;
|
|
||||||
- struct root_domain *rd = this_rq()->rd;
|
|
||||||
- int cpu, best_energy_cpu, target = -1;
|
|
||||||
- struct sched_domain *sd;
|
|
||||||
- struct perf_domain *pd;
|
|
||||||
- struct energy_env eenv;
|
|
||||||
-
|
|
||||||
- rcu_read_lock();
|
|
||||||
- pd = rcu_dereference(rd->pd);
|
|
||||||
- if (!pd || READ_ONCE(rd->overutilized))
|
|
||||||
- goto unlock;
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * Energy-aware wake-up happens on the lowest sched_domain starting
|
|
||||||
- * from sd_asym_cpucapacity spanning over this_cpu and prev_cpu.
|
|
||||||
- */
|
|
||||||
- sd = rcu_dereference(*this_cpu_ptr(&sd_asym_cpucapacity));
|
|
||||||
- while (sd && !cpumask_test_cpu(prev_cpu, sched_domain_span(sd)))
|
|
||||||
- sd = sd->parent;
|
|
||||||
- if (!sd)
|
|
||||||
- goto unlock;
|
|
||||||
-
|
|
||||||
- target = prev_cpu;
|
|
||||||
-
|
|
||||||
- sync_entity_load_avg(&p->se);
|
|
||||||
- if (!uclamp_task_util(p, p_util_min, p_util_max))
|
|
||||||
- goto unlock;
|
|
||||||
-
|
|
||||||
- eenv_task_busy_time(&eenv, p, prev_cpu);
|
|
||||||
-
|
|
||||||
- for (; pd; pd = pd->next) {
|
|
||||||
- unsigned long util_min = p_util_min, util_max = p_util_max;
|
|
||||||
- unsigned long cpu_cap, cpu_thermal_cap, util;
|
|
||||||
- unsigned long cur_delta, max_spare_cap = 0;
|
|
||||||
- unsigned long rq_util_min, rq_util_max;
|
|
||||||
- unsigned long prev_spare_cap = 0;
|
|
||||||
- int max_spare_cap_cpu = -1;
|
|
||||||
- unsigned long base_energy;
|
|
||||||
-
|
|
||||||
- cpumask_and(cpus, perf_domain_span(pd), cpu_online_mask);
|
|
||||||
-
|
|
||||||
- if (cpumask_empty(cpus))
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- /* Account thermal pressure for the energy estimation */
|
|
||||||
- cpu = cpumask_first(cpus);
|
|
||||||
- cpu_thermal_cap = arch_scale_cpu_capacity(cpu);
|
|
||||||
- cpu_thermal_cap -= arch_scale_thermal_pressure(cpu);
|
|
||||||
-
|
|
||||||
- eenv.cpu_cap = cpu_thermal_cap;
|
|
||||||
- eenv.pd_cap = 0;
|
|
||||||
-
|
|
||||||
- for_each_cpu(cpu, cpus) {
|
|
||||||
- struct rq *rq = cpu_rq(cpu);
|
|
||||||
-
|
|
||||||
- eenv.pd_cap += cpu_thermal_cap;
|
|
||||||
-
|
|
||||||
- if (!cpumask_test_cpu(cpu, sched_domain_span(sd)))
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- if (!cpumask_test_cpu(cpu, p->cpus_ptr))
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- util = cpu_util_next(cpu, p, cpu);
|
|
||||||
- cpu_cap = capacity_of(cpu);
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * Skip CPUs that cannot satisfy the capacity request.
|
|
||||||
- * IOW, placing the task there would make the CPU
|
|
||||||
- * overutilized. Take uclamp into account to see how
|
|
||||||
- * much capacity we can get out of the CPU; this is
|
|
||||||
- * aligned with sched_cpu_util().
|
|
||||||
- */
|
|
||||||
- if (uclamp_is_used() && !uclamp_rq_is_idle(rq)) {
|
|
||||||
- /*
|
|
||||||
- * Open code uclamp_rq_util_with() except for
|
|
||||||
- * the clamp() part. Ie: apply max aggregation
|
|
||||||
- * only. util_fits_cpu() logic requires to
|
|
||||||
- * operate on non clamped util but must use the
|
|
||||||
- * max-aggregated uclamp_{min, max}.
|
|
||||||
- */
|
|
||||||
- rq_util_min = uclamp_rq_get(rq, UCLAMP_MIN);
|
|
||||||
- rq_util_max = uclamp_rq_get(rq, UCLAMP_MAX);
|
|
||||||
-
|
|
||||||
- util_min = max(rq_util_min, p_util_min);
|
|
||||||
- util_max = max(rq_util_max, p_util_max);
|
|
||||||
- }
|
|
||||||
- if (!util_fits_cpu(util, util_min, util_max, cpu))
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- lsub_positive(&cpu_cap, util);
|
|
||||||
-
|
|
||||||
- if (cpu == prev_cpu) {
|
|
||||||
- /* Always use prev_cpu as a candidate. */
|
|
||||||
- prev_spare_cap = cpu_cap;
|
|
||||||
- } else if (cpu_cap > max_spare_cap) {
|
|
||||||
- /*
|
|
||||||
- * Find the CPU with the maximum spare capacity
|
|
||||||
- * among the remaining CPUs in the performance
|
|
||||||
- * domain.
|
|
||||||
- */
|
|
||||||
- max_spare_cap = cpu_cap;
|
|
||||||
- max_spare_cap_cpu = cpu;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (max_spare_cap_cpu < 0 && prev_spare_cap == 0)
|
|
||||||
- continue;
|
|
||||||
-
|
|
||||||
- eenv_pd_busy_time(&eenv, cpus, p);
|
|
||||||
- /* Compute the 'base' energy of the pd, without @p */
|
|
||||||
- base_energy = compute_energy(&eenv, pd, cpus, p, -1);
|
|
||||||
-
|
|
||||||
- /* Evaluate the energy impact of using prev_cpu. */
|
|
||||||
- if (prev_spare_cap > 0) {
|
|
||||||
- prev_delta = compute_energy(&eenv, pd, cpus, p,
|
|
||||||
- prev_cpu);
|
|
||||||
- /* CPU utilization has changed */
|
|
||||||
- if (prev_delta < base_energy)
|
|
||||||
- goto unlock;
|
|
||||||
- prev_delta -= base_energy;
|
|
||||||
- best_delta = min(best_delta, prev_delta);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Evaluate the energy impact of using max_spare_cap_cpu. */
|
|
||||||
- if (max_spare_cap_cpu >= 0 && max_spare_cap > prev_spare_cap) {
|
|
||||||
- cur_delta = compute_energy(&eenv, pd, cpus, p,
|
|
||||||
- max_spare_cap_cpu);
|
|
||||||
- /* CPU utilization has changed */
|
|
||||||
- if (cur_delta < base_energy)
|
|
||||||
- goto unlock;
|
|
||||||
- cur_delta -= base_energy;
|
|
||||||
- if (cur_delta < best_delta) {
|
|
||||||
- best_delta = cur_delta;
|
|
||||||
- best_energy_cpu = max_spare_cap_cpu;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- rcu_read_unlock();
|
|
||||||
-
|
|
||||||
- if (best_delta < prev_delta)
|
|
||||||
- target = best_energy_cpu;
|
|
||||||
-
|
|
||||||
- return target;
|
|
||||||
-
|
|
||||||
-unlock:
|
|
||||||
- rcu_read_unlock();
|
|
||||||
-
|
|
||||||
- return target;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
* select_task_rq_fair: Select target runqueue for the waking task in domains
|
|
||||||
* that have the relevant SD flag set. In practice, this is SD_BALANCE_WAKE,
|
|
||||||
@@ -7376,14 +7166,6 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags)
|
|
||||||
lockdep_assert_held(&p->pi_lock);
|
|
||||||
if (wake_flags & WF_TTWU) {
|
|
||||||
record_wakee(p);
|
|
||||||
-
|
|
||||||
- if (sched_energy_enabled()) {
|
|
||||||
- new_cpu = find_energy_efficient_cpu(p, prev_cpu);
|
|
||||||
- if (new_cpu >= 0)
|
|
||||||
- return new_cpu;
|
|
||||||
- new_cpu = prev_cpu;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
want_affine = !wake_wide(p) && cpumask_test_cpu(cpu, p->cpus_ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
@@ -88,31 +88,3 @@ index 6b423eebfd5d..61e3271675d6 100644
|
|||||||
#define MICRO_FREQUENCY_MIN_SAMPLE_RATE (10000)
|
#define MICRO_FREQUENCY_MIN_SAMPLE_RATE (10000)
|
||||||
#define MIN_FREQUENCY_UP_THRESHOLD (1)
|
#define MIN_FREQUENCY_UP_THRESHOLD (1)
|
||||||
#define MAX_FREQUENCY_UP_THRESHOLD (100)
|
#define MAX_FREQUENCY_UP_THRESHOLD (100)
|
||||||
|
|
||||||
From cba31b19f8c38696b13ba48e0e8b6dbe747d6bae Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
Date: Mon, 29 Jan 2018 17:31:25 +0000
|
|
||||||
Subject: [PATCH 10/16] XANMOD: mm/vmscan: vm_swappiness = 30 decreases the
|
|
||||||
amount of swapping
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|
||||||
---
|
|
||||||
mm/vmscan.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/mm/vmscan.c b/mm/vmscan.c
|
|
||||||
index 5b7b8d4f5297..549684b29418 100644
|
|
||||||
--- a/mm/vmscan.c
|
|
||||||
+++ b/mm/vmscan.c
|
|
||||||
@@ -190,7 +190,7 @@ struct scan_control {
|
|
||||||
/*
|
|
||||||
* From 0 .. 200. Higher means more swappy.
|
|
||||||
*/
|
|
||||||
-int vm_swappiness = 60;
|
|
||||||
+int vm_swappiness = 30;
|
|
||||||
|
|
||||||
static void set_task_reclaim_state(struct task_struct *task,
|
|
||||||
struct reclaim_state *rs)
|
|
||||||
--
|
|
||||||
2.39.1
|
|
||||||
|
@@ -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
|
select CPU_FREQ_GOV_PERFORMANCE
|
||||||
help
|
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