Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d05f761332 | ||
|
081d3097a0 | ||
|
be8c8e8230 | ||
|
86d2ec1f79 | ||
|
eb2be11b19 | ||
|
aaa7b3d556 | ||
|
aa69546f01 | ||
|
accb6d07f4 | ||
|
f79f7ddb8e | ||
|
4201196110 | ||
|
8b0d439206 | ||
|
8316a6970a | ||
|
c171d77094 | ||
|
16c81fb013 | ||
|
1882fa3bd9 | ||
|
c4ceba207d | ||
|
a380d532bc | ||
|
b82abcf5f6 | ||
|
1084ad5ba1 | ||
|
1e4b8fb627 | ||
|
02132367d6 | ||
|
1c4fece830 |
2
PKGBUILD
2
PKGBUILD
@@ -56,7 +56,7 @@ else
|
|||||||
fi
|
fi
|
||||||
pkgname=("${pkgbase}" "${pkgbase}-headers")
|
pkgname=("${pkgbase}" "${pkgbase}-headers")
|
||||||
pkgver="${_basekernel}"."${_sub}"
|
pkgver="${_basekernel}"."${_sub}"
|
||||||
pkgrel=271
|
pkgrel=272
|
||||||
pkgdesc='Linux-tkg'
|
pkgdesc='Linux-tkg'
|
||||||
arch=('x86_64') # no i686 in here
|
arch=('x86_64') # no i686 in here
|
||||||
url="https://www.kernel.org/"
|
url="https://www.kernel.org/"
|
||||||
|
@@ -20,7 +20,7 @@ _EXT_CONFIG_PATH=~/.config/frogminer/linux-tkg.cfg
|
|||||||
# Default is "true".
|
# Default is "true".
|
||||||
_NUKR="true"
|
_NUKR="true"
|
||||||
|
|
||||||
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com" and "github.com"
|
# Git mirror to use to get the kernel sources, possible values are "kernel.org", "googlesource.com", "github.com" and "torvalds"
|
||||||
_git_mirror="kernel.org"
|
_git_mirror="kernel.org"
|
||||||
|
|
||||||
# Custom compiler root dirs - Leave empty to use system compilers
|
# Custom compiler root dirs - Leave empty to use system compilers
|
||||||
@@ -144,7 +144,9 @@ _numadisable="false"
|
|||||||
_misc_adds="true"
|
_misc_adds="true"
|
||||||
|
|
||||||
# Set to "0" for periodic ticks, "1" to use CattaRappa mode (enabling full tickless) and "2" for tickless idle only.
|
# Set to "0" for periodic ticks, "1" to use CattaRappa mode (enabling full tickless) and "2" for tickless idle only.
|
||||||
# Full tickless can give higher performances in various cases but, depending on hardware, lower consistency. Just tickless idle can perform better on some platforms (mostly AMD based).
|
# Full tickless can give higher performances in case you use isolation of CPUs for tasks
|
||||||
|
# and it works only when using the nohz_full kernel parameter, otherwise behaves like idle.
|
||||||
|
# Just tickless idle perform better for most platforms.
|
||||||
_tickless="2"
|
_tickless="2"
|
||||||
|
|
||||||
# Set to "true" to use ACS override patch - https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Bypassing_the_IOMMU_groups_.28ACS_override_patch.29 - Kernel default is "false"
|
# Set to "true" to use ACS override patch - https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Bypassing_the_IOMMU_groups_.28ACS_override_patch.29 - Kernel default is "false"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.0.0-arch1 Kernel Configuration
|
# Linux/x86 6.0.5-arch1 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
|
CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0"
|
||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
@@ -17,7 +17,7 @@ CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
|||||||
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
||||||
CONFIG_CC_HAS_ASM_INLINE=y
|
CONFIG_CC_HAS_ASM_INLINE=y
|
||||||
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
||||||
CONFIG_PAHOLE_VERSION=123
|
CONFIG_PAHOLE_VERSION=124
|
||||||
CONFIG_IRQ_WORK=y
|
CONFIG_IRQ_WORK=y
|
||||||
CONFIG_BUILDTIME_TABLE_SORT=y
|
CONFIG_BUILDTIME_TABLE_SORT=y
|
||||||
CONFIG_THREAD_INFO_IN_TASK=y
|
CONFIG_THREAD_INFO_IN_TASK=y
|
||||||
@@ -7596,6 +7596,7 @@ CONFIG_HID_SMARTJOYPLUS=m
|
|||||||
CONFIG_SMARTJOYPLUS_FF=y
|
CONFIG_SMARTJOYPLUS_FF=y
|
||||||
CONFIG_HID_TIVO=m
|
CONFIG_HID_TIVO=m
|
||||||
CONFIG_HID_TOPSEED=m
|
CONFIG_HID_TOPSEED=m
|
||||||
|
CONFIG_HID_TOPRE=m
|
||||||
CONFIG_HID_THINGM=m
|
CONFIG_HID_THINGM=m
|
||||||
CONFIG_HID_THRUSTMASTER=m
|
CONFIG_HID_THRUSTMASTER=m
|
||||||
CONFIG_THRUSTMASTER_FF=y
|
CONFIG_THRUSTMASTER_FF=y
|
||||||
@@ -10374,6 +10375,7 @@ CONFIG_LSM="landlock,lockdown,yama,integrity,bpf"
|
|||||||
# Memory initialization
|
# Memory initialization
|
||||||
#
|
#
|
||||||
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
|
CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
|
||||||
|
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
|
||||||
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
|
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
|
||||||
# CONFIG_INIT_STACK_NONE is not set
|
# CONFIG_INIT_STACK_NONE is not set
|
||||||
# CONFIG_INIT_STACK_ALL_PATTERN is not set
|
# CONFIG_INIT_STACK_ALL_PATTERN is not set
|
||||||
@@ -10849,6 +10851,7 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
# Compile-time checks and compiler options
|
# Compile-time checks and compiler options
|
||||||
#
|
#
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
|
CONFIG_AS_HAS_NON_CONST_LEB128=y
|
||||||
# CONFIG_DEBUG_INFO_NONE is not set
|
# CONFIG_DEBUG_INFO_NONE is not set
|
||||||
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
|
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
|
||||||
# CONFIG_DEBUG_INFO_DWARF4 is not set
|
# CONFIG_DEBUG_INFO_DWARF4 is not set
|
||||||
|
@@ -1,16 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# List of kernels that are maintained upstream
|
# List of kernels that are maintained upstream
|
||||||
_current_kernels=("6.1" "6.0" "5.19" "5.15" "5.10" "5.4")
|
_current_kernels=("6.1" "6.0" "5.15" "5.10" "5.4")
|
||||||
|
|
||||||
# List of kernels that are no longer maintained upstream
|
# List of kernels that are no longer maintained upstream
|
||||||
_eol_kernels=("5.18" "5.17" "5.16" "5.14" "5.13" "5.12" "5.11" "5.9" "5.8" "5.7")
|
_eol_kernels=("5.19" "5.18" "5.17" "5.16" "5.14" "5.13" "5.12" "5.11" "5.9" "5.8" "5.7")
|
||||||
|
|
||||||
typeset -Ag _kernel_git_remotes
|
typeset -Ag _kernel_git_remotes
|
||||||
_kernel_git_remotes=(
|
_kernel_git_remotes=(
|
||||||
["kernel.org"]="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
|
["kernel.org"]="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
|
||||||
["googlesource.com"]="https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable"
|
["googlesource.com"]="https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable"
|
||||||
["github.com"]="https://github.com/gregkh/linux.git"
|
["github.com"]="https://github.com/gregkh/linux.git"
|
||||||
|
["torvalds"]="https://github.com/torvalds/linux.git"
|
||||||
)
|
)
|
||||||
|
|
||||||
_git_remote_names=( "${!_kernel_git_remotes[@]}" )
|
_git_remote_names=( "${!_kernel_git_remotes[@]}" )
|
||||||
@@ -35,53 +36,35 @@ for _key in "${_current_kernels[@]}" "${_eol_kernels[@]}"; do
|
|||||||
_kver_latest_tags_map[$_key]=$(echo "$_kernel_tags" | grep -F "v$_key" | tail -1 | cut -c1-)
|
_kver_latest_tags_map[$_key]=$(echo "$_kernel_tags" | grep -F "v$_key" | tail -1 | cut -c1-)
|
||||||
done
|
done
|
||||||
|
|
||||||
# only used by workflow trigger script
|
|
||||||
typeset -Ag _kver_subver_map
|
|
||||||
_kver_subver_map=(
|
|
||||||
["5.4"]="214"
|
|
||||||
["5.7"]="19"
|
|
||||||
["5.8"]="18"
|
|
||||||
["5.9"]="16"
|
|
||||||
["5.10"]="144"
|
|
||||||
["5.11"]="22"
|
|
||||||
["5.12"]="19"
|
|
||||||
["5.13"]="19"
|
|
||||||
["5.14"]="21"
|
|
||||||
["5.15"]="69"
|
|
||||||
["5.16"]="20"
|
|
||||||
["5.17"]="15"
|
|
||||||
["5.18"]="19"
|
|
||||||
["5.19"]="10"
|
|
||||||
["6.0"]="rc6"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# PREEMPT_RT's supported kernel subversion
|
# PREEMPT_RT's supported kernel subversion
|
||||||
typeset -Ag _rt_subver_map
|
typeset -Ag _rt_subver_map
|
||||||
_rt_subver_map=(
|
_rt_subver_map=(
|
||||||
["5.4"]="188"
|
["5.4"]="209"
|
||||||
["5.9"]="1"
|
["5.9"]="1"
|
||||||
["5.10"]="109"
|
["5.10"]="153"
|
||||||
["5.11"]="4"
|
["5.11"]="4"
|
||||||
["5.14"]="2"
|
["5.14"]="2"
|
||||||
["5.15"]="32"
|
["5.15"]="76"
|
||||||
["5.16"]="2"
|
["5.16"]="2"
|
||||||
["5.17"]="1"
|
["5.17"]="1"
|
||||||
|
["6.0"]="5"
|
||||||
|
["6.1"]="rc3"
|
||||||
)
|
)
|
||||||
|
|
||||||
# PREEMPT_RT's patch revision for the kernel
|
# PREEMPT_RT's patch revision for the kernel
|
||||||
# We separated this to allow for forcing the application of the patch when _preempt_rt_force=1 on version mismatch
|
# We separated this to allow for forcing the application of the patch when _preempt_rt_force=1 on version mismatch
|
||||||
typeset -Ag _rt_rev_map
|
typeset -Ag _rt_rev_map
|
||||||
_rt_rev_map=(
|
_rt_rev_map=(
|
||||||
["5.4"]="73"
|
["5.4"]="77"
|
||||||
["5.9"]="20"
|
["5.9"]="20"
|
||||||
["5.10"]="65"
|
["5.10"]="76"
|
||||||
["5.11"]="11"
|
["5.11"]="11"
|
||||||
["5.14"]="21"
|
["5.14"]="21"
|
||||||
["5.15"]="39"
|
["5.15"]="53"
|
||||||
["5.16"]="19"
|
["5.16"]="19"
|
||||||
["5.17"]="17"
|
["5.17"]="17"
|
||||||
|
["6.0"]="14"
|
||||||
|
["6.1"]="2"
|
||||||
)
|
)
|
||||||
|
|
||||||
_undefine() {
|
_undefine() {
|
||||||
@@ -287,7 +270,7 @@ _set_cpu_scheduler() {
|
|||||||
elif [ "$_kver" = "514" ]; then
|
elif [ "$_kver" = "514" ]; then
|
||||||
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
|
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
|
||||||
elif [ "$_kver" = "515" ]; then
|
elif [ "$_kver" = "515" ]; then
|
||||||
_avail_cpu_scheds=("pds" "bmq" "cacule" "tt" "cfs")
|
_avail_cpu_scheds=("pds" "bmq" "cacule" "tt" "bore" "cfs")
|
||||||
elif [ "$_kver" = "516" ]; then
|
elif [ "$_kver" = "516" ]; then
|
||||||
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
|
_avail_cpu_scheds=("pds" "bmq" "cacule" "cfs")
|
||||||
elif [ "$_kver" = "517" ]; then
|
elif [ "$_kver" = "517" ]; then
|
||||||
@@ -297,19 +280,31 @@ _set_cpu_scheduler() {
|
|||||||
elif [ "$_kver" = "519" ]; then
|
elif [ "$_kver" = "519" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "pds" "bmq" "cacule" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "cacule" "tt" "bore")
|
||||||
elif [ "$_kver" = "600" ]; then
|
elif [ "$_kver" = "600" ]; then
|
||||||
_avail_cpu_scheds=("cfs" "tt" "bore")
|
_avail_cpu_scheds=("cfs" "pds" "bmq" "tt" "bore")
|
||||||
|
_projectc_unoff="1"
|
||||||
|
elif [ "$_kver" = "601" ]; then
|
||||||
|
_avail_cpu_scheds=("cfs" "bore")
|
||||||
else
|
else
|
||||||
_avail_cpu_scheds=("cfs")
|
_avail_cpu_scheds=("cfs")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${_preempt_rt}" = "1" ]; then
|
if [ "${_preempt_rt}" = "1" ]; then
|
||||||
_avail_cpu_scheds=("cfs")
|
warning "! Since you have enabled _preempt_rt, incompatible cpu schedulers will not be available !"
|
||||||
|
if [[ "${_avail_cpu_scheds[*]}" =~ "bore" ]]; then
|
||||||
|
_avail_cpu_scheds=("cfs" "bore")
|
||||||
|
else
|
||||||
|
_avail_cpu_scheds=("cfs")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Populate descriptions of the available CPU schedulers
|
# Populate descriptions of the available CPU schedulers
|
||||||
_avail_cpu_scheds_text=()
|
_avail_cpu_scheds_text=()
|
||||||
for _sched in "${_avail_cpu_scheds[@]}"; do
|
for _sched in "${_avail_cpu_scheds[@]}"; do
|
||||||
_avail_cpu_scheds_text+=("${_sched_description_array[$_sched]}")
|
if [ "$_sched" = "pds" ] || [ "$_sched" = "bmq" ] && [ "$_projectc_unoff" = "1" ]; then
|
||||||
|
_avail_cpu_scheds_text+=("Project C / ${_sched^^} (unofficial port - ! possibly unstable !)")
|
||||||
|
else
|
||||||
|
_avail_cpu_scheds_text+=("${_sched_description_array[$_sched]}")
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! [[ ${_avail_cpu_scheds[*]} =~ "$_cpusched" ]]; then
|
if ! [[ ${_avail_cpu_scheds[*]} =~ "$_cpusched" ]]; then
|
||||||
@@ -432,6 +427,7 @@ _linux_git_branch_checkout() {
|
|||||||
msg2 "master branch doesn't locally exist, shallow cloning..."
|
msg2 "master branch doesn't locally exist, shallow cloning..."
|
||||||
git remote set-branches --add kernel.org master
|
git remote set-branches --add kernel.org master
|
||||||
git remote set-branches --add googlesource.com master
|
git remote set-branches --add googlesource.com master
|
||||||
|
git remote set-branches --add torvalds master
|
||||||
git fetch --depth=1 $_git_mirror master
|
git fetch --depth=1 $_git_mirror master
|
||||||
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
git fetch --depth 1 $_git_mirror tag "$_kernel_git_tag"
|
||||||
git checkout -b master-${_git_mirror} ${_git_mirror}/master
|
git checkout -b master-${_git_mirror} ${_git_mirror}/master
|
||||||
@@ -449,6 +445,7 @@ _linux_git_branch_checkout() {
|
|||||||
msg2 "${_basekernel}.y branch doesn't locally exist, shallow cloning..."
|
msg2 "${_basekernel}.y branch doesn't locally exist, shallow cloning..."
|
||||||
git remote set-branches --add kernel.org linux-${_basekernel}.y
|
git remote set-branches --add kernel.org linux-${_basekernel}.y
|
||||||
git remote set-branches --add googlesource.com linux-${_basekernel}.y
|
git remote set-branches --add googlesource.com linux-${_basekernel}.y
|
||||||
|
git remote set-branches --add torvalds linux-${_basekernel}.y
|
||||||
git fetch --depth=1 $_git_mirror linux-${_basekernel}.y
|
git fetch --depth=1 $_git_mirror linux-${_basekernel}.y
|
||||||
git fetch --depth=1 $_git_mirror tag "$_kernel_git_tag"
|
git fetch --depth=1 $_git_mirror tag "$_kernel_git_tag"
|
||||||
git checkout -b linux-${_basekernel}-${_git_mirror} ${_git_mirror}/linux-${_basekernel}.y
|
git checkout -b linux-${_basekernel}-${_git_mirror} ${_git_mirror}/linux-${_basekernel}.y
|
||||||
@@ -650,8 +647,13 @@ _tkg_srcprep() {
|
|||||||
if [ ${_rt_subver_map[$_basekernel]+_} = "_" ]; then
|
if [ ${_rt_subver_map[$_basekernel]+_} = "_" ]; then
|
||||||
preempt_rt_ksubver="${_rt_subver_map[$_basekernel]}"
|
preempt_rt_ksubver="${_rt_subver_map[$_basekernel]}"
|
||||||
# Check if subversion is supported, skip check if forced
|
# Check if subversion is supported, skip check if forced
|
||||||
if [ "${_preempt_rt_force}" = "1" ] || [ "${preempt_rt_ksubver}" = "${_kver_subver_map[$_basekernel]}" ]; then
|
if [ "${_preempt_rt_force}" = "1" ] || [ "${preempt_rt_ksubver}" = "${_sub}" ]; then
|
||||||
preempt_rt_file_gz="patch-${_basekernel}.${preempt_rt_ksubver}-rt${_rt_rev_map["$_basekernel"]}.patch.gz"
|
if [[ "${_sub}" == *rc* ]]; then
|
||||||
|
_separator="-"
|
||||||
|
else
|
||||||
|
_separator="."
|
||||||
|
fi
|
||||||
|
preempt_rt_file_gz="patch-${_basekernel}${_separator}${preempt_rt_ksubver}-rt${_rt_rev_map["$_basekernel"]}.patch.gz"
|
||||||
preempt_rt_file=`basename ${preempt_rt_file_gz} .gz`
|
preempt_rt_file=`basename ${preempt_rt_file_gz} .gz`
|
||||||
curl "https://cdn.kernel.org/pub/linux/kernel/projects/rt/${_basekernel}/${preempt_rt_file_gz}" > "$srcdir"/"${preempt_rt_file_gz}"
|
curl "https://cdn.kernel.org/pub/linux/kernel/projects/rt/${_basekernel}/${preempt_rt_file_gz}" > "$srcdir"/"${preempt_rt_file_gz}"
|
||||||
last_pwd=`pwd`
|
last_pwd=`pwd`
|
||||||
@@ -661,10 +663,10 @@ _tkg_srcprep() {
|
|||||||
tkgpatch="$srcdir/${preempt_rt_file}"
|
tkgpatch="$srcdir/${preempt_rt_file}"
|
||||||
_msg="Applying PREEMPT_RT patch" && _tkg_patcher
|
_msg="Applying PREEMPT_RT patch" && _tkg_patcher
|
||||||
else
|
else
|
||||||
msg2 "Skipping PREEMPT_RT patch for ${_basekernel}.${_sub}"
|
warning "Skipping PREEMPT_RT patch for ${_basekernel}.${_sub} (last known good ${_basekernel}.${preempt_rt_ksubver})"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
msg2 "Skipping PREEMPT_RT patch on unsupported kernel version"
|
warning "Skipping PREEMPT_RT patch on unsupported kernel version"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -677,6 +679,11 @@ _tkg_srcprep() {
|
|||||||
tkgpatch="$srcdir/0003-glitched-base.patch"
|
tkgpatch="$srcdir/0003-glitched-base.patch"
|
||||||
_msg="Applying glitched base patch" && _tkg_patcher
|
_msg="Applying glitched base patch" && _tkg_patcher
|
||||||
|
|
||||||
|
if [ "${_preempt_rt}" != "1" ]; then
|
||||||
|
tkgpatch="$srcdir/0003-glitched-base-nonrt.patch"
|
||||||
|
_msg="Applying glitched base non-rt additions patch" && _tkg_patcher
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$_distro" =~ ^(Fedora|Suse)$ ]]; then
|
if [[ "$_distro" =~ ^(Fedora|Suse)$ ]]; then
|
||||||
tkgpatch="$srcdir/0013-fedora-rpm.patch"
|
tkgpatch="$srcdir/0013-fedora-rpm.patch"
|
||||||
_msg="RPM: fixing spec generator" && _tkg_patcher
|
_msg="RPM: fixing spec generator" && _tkg_patcher
|
||||||
@@ -705,7 +712,7 @@ _tkg_srcprep() {
|
|||||||
elif [ "$_kver" = "509" ]; then
|
elif [ "$_kver" = "509" ]; then
|
||||||
rev=3
|
rev=3
|
||||||
elif [ "$_kver" = "510" ]; then
|
elif [ "$_kver" = "510" ]; then
|
||||||
rev=3
|
rev=5
|
||||||
elif [ "$_kver" = "511" ]; then
|
elif [ "$_kver" = "511" ]; then
|
||||||
rev=3
|
rev=3
|
||||||
elif [ "$_kver" = "512" ]; then
|
elif [ "$_kver" = "512" ]; then
|
||||||
@@ -941,10 +948,10 @@ _tkg_srcprep() {
|
|||||||
# cpu opt
|
# cpu opt
|
||||||
_cpu_marchs=("native_amd" "native_intel" "generic_cpu" "generic_cpu2" "generic_cpu3" "generic_cpu4")
|
_cpu_marchs=("native_amd" "native_intel" "generic_cpu" "generic_cpu2" "generic_cpu3" "generic_cpu4")
|
||||||
_cpu_marchs+=("k8" "k8sse3" "k10" "barcelona" "bobcat" "jaguar" "bulldozer" "piledriver")
|
_cpu_marchs+=("k8" "k8sse3" "k10" "barcelona" "bobcat" "jaguar" "bulldozer" "piledriver")
|
||||||
_cpu_marchs+=("steamroller" "excavator" "zen" "zen2" "zen3" "mpsc" "atom" "core2" "nehalem" "westmere")
|
_cpu_marchs+=("steamroller" "excavator" "zen" "zen2" "zen3" "zen4" "mpsc" "atom" "core2" "nehalem" "westmere")
|
||||||
_cpu_marchs+=("bonnell" "silvermont" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake")
|
_cpu_marchs+=("bonnell" "silvermont" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake")
|
||||||
_cpu_marchs+=("skylakex" "cannonlake" "icelake" "goldmont" "goldmontplus" "cascadelake")
|
_cpu_marchs+=("skylakex" "cannonlake" "icelake" "goldmont" "goldmontplus" "cascadelake")
|
||||||
_cpu_marchs+=("cooperlake" "tigerlake" "sapphirerapids" "rocketlake" "alderlake")
|
_cpu_marchs+=("cooperlake" "tigerlake" "sapphirerapids" "rocketlake" "alderlake" "meteorlake")
|
||||||
|
|
||||||
typeset -A _generic_march_map
|
typeset -A _generic_march_map
|
||||||
_generic_march_map=(
|
_generic_march_map=(
|
||||||
@@ -1328,7 +1335,7 @@ _tkg_srcprep() {
|
|||||||
plain "Use CattaRappa mode (Tickless/Dynticks) ?"
|
plain "Use CattaRappa mode (Tickless/Dynticks) ?"
|
||||||
_tickless_array_text=(
|
_tickless_array_text=(
|
||||||
"No, use periodic ticks."
|
"No, use periodic ticks."
|
||||||
"Yes, full tickless baby!\n Can give higher performances in many cases but lower consistency on some hardware."
|
"Yes, full tickless baby!\n Full tickless can give higher performances in case you use isolation of CPUs for task, in other cases it behaves as Idle."
|
||||||
"Just tickless idle plz.\n Just tickless idle can perform better with some platforms (mostly AMD) or CPU schedulers (mostly MuQSS)."
|
"Just tickless idle plz.\n Just tickless idle can perform better with some platforms (mostly AMD) or CPU schedulers (mostly MuQSS)."
|
||||||
)
|
)
|
||||||
_default_index="2"
|
_default_index="2"
|
||||||
|
38
linux-tkg-patches/5.10/0003-glitched-base-nonrt.patch
Normal file
38
linux-tkg-patches/5.10/0003-glitched-base-nonrt.patch
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
Date: Mon, 29 Jan 2018 18:29:13 +0000
|
||||||
|
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
|
||||||
|
to iterate in a single balance run.
|
||||||
|
|
||||||
|
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
---
|
||||||
|
kernel/sched/core.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||||
|
index f788cd61df21..2bfbb4213707 100644
|
||||||
|
--- a/kernel/sched/core.c
|
||||||
|
+++ b/kernel/sched/core.c
|
||||||
|
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
|
||||||
|
* Number of tasks to iterate in a single balance run.
|
||||||
|
* Limited because this is done with IRQs disabled.
|
||||||
|
*/
|
||||||
|
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
||||||
|
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* period over which we measure -rt task CPU usage in us.
|
||||||
|
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* part of the period that we allow rt tasks to run in us.
|
||||||
|
- * default: 0.95s
|
||||||
|
+ * XanMod default: 0.98s
|
||||||
|
*/
|
||||||
|
-int sysctl_sched_rt_runtime = 950000;
|
||||||
|
+int sysctl_sched_rt_runtime = 980000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* __task_rq_lock - lock the rq @p resides on.
|
||||||
|
--
|
||||||
|
2.28.0
|
@@ -54,46 +54,6 @@ index 361ea7ab30ea..0c5cf69b241a 100644
|
|||||||
2.28.0
|
2.28.0
|
||||||
|
|
||||||
|
|
||||||
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
Date: Mon, 29 Jan 2018 18:29:13 +0000
|
|
||||||
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
|
|
||||||
to iterate in a single balance run.
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
---
|
|
||||||
kernel/sched/core.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
|
||||||
index f788cd61df21..2bfbb4213707 100644
|
|
||||||
--- a/kernel/sched/core.c
|
|
||||||
+++ b/kernel/sched/core.c
|
|
||||||
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
|
|
||||||
* Number of tasks to iterate in a single balance run.
|
|
||||||
* Limited because this is done with IRQs disabled.
|
|
||||||
*/
|
|
||||||
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
|
||||||
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* period over which we measure -rt task CPU usage in us.
|
|
||||||
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* part of the period that we allow rt tasks to run in us.
|
|
||||||
- * default: 0.95s
|
|
||||||
+ * XanMod default: 0.98s
|
|
||||||
*/
|
|
||||||
-int sysctl_sched_rt_runtime = 950000;
|
|
||||||
+int sysctl_sched_rt_runtime = 980000;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* __task_rq_lock - lock the rq @p resides on.
|
|
||||||
--
|
|
||||||
2.28.0
|
|
||||||
|
|
||||||
|
|
||||||
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
|
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
|
||||||
From: Alexandre Frade <admfrade@gmail.com>
|
From: Alexandre Frade <admfrade@gmail.com>
|
||||||
Date: Mon, 29 Jan 2018 17:41:29 +0000
|
Date: Mon, 29 Jan 2018 17:41:29 +0000
|
||||||
|
File diff suppressed because it is too large
Load Diff
38
linux-tkg-patches/5.15/0003-glitched-base-nonrt.patch
Normal file
38
linux-tkg-patches/5.15/0003-glitched-base-nonrt.patch
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
Date: Mon, 29 Jan 2018 18:29:13 +0000
|
||||||
|
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
|
||||||
|
to iterate in a single balance run.
|
||||||
|
|
||||||
|
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
---
|
||||||
|
kernel/sched/core.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||||
|
index f788cd61df21..2bfbb4213707 100644
|
||||||
|
--- a/kernel/sched/core.c
|
||||||
|
+++ b/kernel/sched/core.c
|
||||||
|
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
|
||||||
|
* Number of tasks to iterate in a single balance run.
|
||||||
|
* Limited because this is done with IRQs disabled.
|
||||||
|
*/
|
||||||
|
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
||||||
|
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* period over which we measure -rt task CPU usage in us.
|
||||||
|
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* part of the period that we allow rt tasks to run in us.
|
||||||
|
- * default: 0.95s
|
||||||
|
+ * XanMod default: 0.98s
|
||||||
|
*/
|
||||||
|
-int sysctl_sched_rt_runtime = 950000;
|
||||||
|
+int sysctl_sched_rt_runtime = 980000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* __task_rq_lock - lock the rq @p resides on.
|
||||||
|
--
|
||||||
|
2.28.0
|
@@ -54,46 +54,6 @@ index 361ea7ab30ea..0c5cf69b241a 100644
|
|||||||
2.28.0
|
2.28.0
|
||||||
|
|
||||||
|
|
||||||
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
Date: Mon, 29 Jan 2018 18:29:13 +0000
|
|
||||||
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
|
|
||||||
to iterate in a single balance run.
|
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
|
||||||
---
|
|
||||||
kernel/sched/core.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
|
||||||
index f788cd61df21..2bfbb4213707 100644
|
|
||||||
--- a/kernel/sched/core.c
|
|
||||||
+++ b/kernel/sched/core.c
|
|
||||||
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
|
|
||||||
* Number of tasks to iterate in a single balance run.
|
|
||||||
* Limited because this is done with IRQs disabled.
|
|
||||||
*/
|
|
||||||
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
|
||||||
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* period over which we measure -rt task CPU usage in us.
|
|
||||||
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* part of the period that we allow rt tasks to run in us.
|
|
||||||
- * default: 0.95s
|
|
||||||
+ * XanMod default: 0.98s
|
|
||||||
*/
|
|
||||||
-int sysctl_sched_rt_runtime = 950000;
|
|
||||||
+int sysctl_sched_rt_runtime = 980000;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* __task_rq_lock - lock the rq @p resides on.
|
|
||||||
--
|
|
||||||
2.28.0
|
|
||||||
|
|
||||||
|
|
||||||
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
|
From acc49f33a10f61dc66c423888cbb883ba46710e4 Mon Sep 17 00:00:00 2001
|
||||||
From: Alexandre Frade <admfrade@gmail.com>
|
From: Alexandre Frade <admfrade@gmail.com>
|
||||||
Date: Mon, 29 Jan 2018 17:41:29 +0000
|
Date: Mon, 29 Jan 2018 17:41:29 +0000
|
||||||
|
File diff suppressed because it is too large
Load Diff
38
linux-tkg-patches/5.4/0003-glitched-base-nonrt.patch
Normal file
38
linux-tkg-patches/5.4/0003-glitched-base-nonrt.patch
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
From 28f32f59d9d55ac7ec3a20b79bdd02d2a0a5f7e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
Date: Mon, 29 Jan 2018 18:29:13 +0000
|
||||||
|
Subject: [PATCH 03/17] sched/core: nr_migrate = 128 increases number of tasks
|
||||||
|
to iterate in a single balance run.
|
||||||
|
|
||||||
|
Signed-off-by: Alexandre Frade <admfrade@gmail.com>
|
||||||
|
---
|
||||||
|
kernel/sched/core.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||||
|
index f788cd61df21..2bfbb4213707 100644
|
||||||
|
--- a/kernel/sched/core.c
|
||||||
|
+++ b/kernel/sched/core.c
|
||||||
|
@@ -59,7 +59,7 @@ const_debug unsigned int sysctl_sched_features =
|
||||||
|
* Number of tasks to iterate in a single balance run.
|
||||||
|
* Limited because this is done with IRQs disabled.
|
||||||
|
*/
|
||||||
|
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
||||||
|
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* period over which we measure -rt task CPU usage in us.
|
||||||
|
@@ -71,9 +71,9 @@ __read_mostly int scheduler_running;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* part of the period that we allow rt tasks to run in us.
|
||||||
|
- * default: 0.95s
|
||||||
|
+ * XanMod default: 0.98s
|
||||||
|
*/
|
||||||
|
-int sysctl_sched_rt_runtime = 950000;
|
||||||
|
+int sysctl_sched_rt_runtime = 980000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* __task_rq_lock - lock the rq @p resides on.
|
||||||
|
--
|
||||||
|
2.28.0
|
@@ -31,31 +31,6 @@ index 2acfc69878f5..3f1131431e06 100644
|
|||||||
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
|
EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure);
|
||||||
|
|
||||||
__cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
|
__cacheline_aligned_in_smp DEFINE_SEQLOCK(rename_lock);
|
||||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
|
||||||
index 211890edf37e..37121563407d 100644
|
|
||||||
--- a/kernel/sched/core.c
|
|
||||||
+++ b/kernel/sched/core.c
|
|
||||||
@@ -41,7 +41,7 @@ const_debug unsigned int sysctl_sched_features =
|
|
||||||
* Number of tasks to iterate in a single balance run.
|
|
||||||
* Limited because this is done with IRQs disabled.
|
|
||||||
*/
|
|
||||||
-const_debug unsigned int sysctl_sched_nr_migrate = 32;
|
|
||||||
+const_debug unsigned int sysctl_sched_nr_migrate = 128;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* period over which we average the RT time consumption, measured
|
|
||||||
@@ -61,9 +61,9 @@ __read_mostly int scheduler_running;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* part of the period that we allow rt tasks to run in us.
|
|
||||||
- * default: 0.95s
|
|
||||||
+ * XanMod default: 0.98s
|
|
||||||
*/
|
|
||||||
-int sysctl_sched_rt_runtime = 950000;
|
|
||||||
+int sysctl_sched_rt_runtime = 980000;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* __task_rq_lock - lock the rq @p resides on.
|
|
||||||
diff --git a/lib/Kconfig b/lib/Kconfig
|
diff --git a/lib/Kconfig b/lib/Kconfig
|
||||||
index 5fe577673b98..c44c27cd6e05 100644
|
index 5fe577673b98..c44c27cd6e05 100644
|
||||||
--- a/lib/Kconfig
|
--- a/lib/Kconfig
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -522,3 +522,38 @@ index 1fd3cbca20a2..c7bf189d50de 100644
|
|||||||
--
|
--
|
||||||
2.25.1
|
2.25.1
|
||||||
|
|
||||||
|
From fb23dad87a0bfb6fdfde3dc1d18104da631d050a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sjoerd Simons <sjoerd@collabora.com>
|
||||||
|
Date: Sat, 8 Oct 2022 21:57:51 +0200
|
||||||
|
Subject: [PATCH] soundwire: intel: Initialize clock stop timeout
|
||||||
|
|
||||||
|
The bus->clk_stop_timeout member is only initialized to a non-zero value
|
||||||
|
during the codec driver probe. This can lead to corner cases where this
|
||||||
|
value remains pegged at zero when the bus suspends, which results in an
|
||||||
|
endless loop in sdw_bus_wait_for_clk_prep_deprep().
|
||||||
|
|
||||||
|
Corner cases include configurations with no codecs described in the
|
||||||
|
firmware, or delays in probing codec drivers.
|
||||||
|
|
||||||
|
Initializing the default timeout to the smallest non-zero value avoid this
|
||||||
|
problem and allows for the existing logic to be preserved: the
|
||||||
|
bus->clk_stop_timeout is set as the maximum required by all codecs
|
||||||
|
connected on the bus.
|
||||||
|
|
||||||
|
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
|
||||||
|
---
|
||||||
|
drivers/soundwire/intel.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/soundwire/intel.c b/drivers/soundwire/intel.c
|
||||||
|
index af6c1a93372d90..002bc26b525e87 100644
|
||||||
|
--- a/drivers/soundwire/intel.c
|
||||||
|
+++ b/drivers/soundwire/intel.c
|
||||||
|
@@ -1307,6 +1307,7 @@ static int intel_link_probe(struct auxiliary_device *auxdev,
|
||||||
|
cdns->msg_count = 0;
|
||||||
|
|
||||||
|
bus->link_id = auxdev->id;
|
||||||
|
+ bus->clk_stop_timeout = 1;
|
||||||
|
|
||||||
|
sdw_cdns_probe(cdns);
|
||||||
|
|
||||||
|
@@ -426,99 +426,3 @@ index 4bf4ea6cbb5eee..4850dafbaa05fb 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ---- Socket functions ---- */
|
/* ---- Socket functions ---- */
|
||||||
From 50e6a66675f6c9835d4f1d4f8c947d1699ce8e24 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
|
|
||||||
Date: Fri, 7 Oct 2022 09:51:13 +0200
|
|
||||||
Subject: [PATCH 4/5] drm/sched: add DRM_SCHED_FENCE_DONT_PIPELINE flag
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Setting this flag on a scheduler fence prevents pipelining of jobs
|
|
||||||
depending on this fence. In other words we always insert a full CPU
|
|
||||||
round trip before dependen jobs are pushed to the pipeline.
|
|
||||||
|
|
||||||
Signed-off-by: Christian König <christian.koenig@amd.com>
|
|
||||||
---
|
|
||||||
drivers/gpu/drm/scheduler/sched_entity.c | 3 ++-
|
|
||||||
include/drm/gpu_scheduler.h | 9 +++++++++
|
|
||||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c
|
|
||||||
index 6b25b2f4f5a3..6137537aaea4 100644
|
|
||||||
--- a/drivers/gpu/drm/scheduler/sched_entity.c
|
|
||||||
+++ b/drivers/gpu/drm/scheduler/sched_entity.c
|
|
||||||
@@ -385,7 +385,8 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity)
|
|
||||||
}
|
|
||||||
|
|
||||||
s_fence = to_drm_sched_fence(fence);
|
|
||||||
- if (s_fence && s_fence->sched == sched) {
|
|
||||||
+ if (s_fence && s_fence->sched == sched &&
|
|
||||||
+ !test_bit(DRM_SCHED_FENCE_DONT_PIPELINE, &fence->flags)) {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fence is from the same scheduler, only need to wait for
|
|
||||||
diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
|
|
||||||
index addb135eeea6..289a33e80639 100644
|
|
||||||
--- a/include/drm/gpu_scheduler.h
|
|
||||||
+++ b/include/drm/gpu_scheduler.h
|
|
||||||
@@ -32,6 +32,15 @@
|
|
||||||
|
|
||||||
#define MAX_WAIT_SCHED_ENTITY_Q_EMPTY msecs_to_jiffies(1000)
|
|
||||||
|
|
||||||
+/**
|
|
||||||
+ * DRM_SCHED_FENCE_DONT_PIPELINE - Prefent dependency pipelining
|
|
||||||
+ *
|
|
||||||
+ * Setting this flag on a scheduler fence prevents pipelining of jobs depending
|
|
||||||
+ * on this fence. In other words we always insert a full CPU round trip before
|
|
||||||
+ * dependen jobs are pushed to the hw queue.
|
|
||||||
+ */
|
|
||||||
+#define DRM_SCHED_FENCE_DONT_PIPELINE DMA_FENCE_FLAG_USER_BITS
|
|
||||||
+
|
|
||||||
struct drm_gem_object;
|
|
||||||
|
|
||||||
struct drm_gpu_scheduler;
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
||||||
From e15e1601fba660124acd7ad41b6f61d46a1c4835 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
|
|
||||||
Date: Fri, 7 Oct 2022 10:59:58 +0200
|
|
||||||
Subject: [PATCH 5/5] drm/amdgpu: use DRM_SCHED_FENCE_DONT_PIPELINE for VM
|
|
||||||
updates
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Make sure that we always have a CPU round trip to let the submission
|
|
||||||
code correctly decide if a TLB flush is necessary or not.
|
|
||||||
|
|
||||||
Signed-off-by: Christian König <christian.koenig@amd.com>
|
|
||||||
---
|
|
||||||
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 9 ++++++++-
|
|
||||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
|
|
||||||
index 1fd3cbca20a2..c7bf189d50de 100644
|
|
||||||
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
|
|
||||||
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
|
|
||||||
@@ -115,8 +115,15 @@ static int amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p,
|
|
||||||
amdgpu_bo_fence(p->vm->root.bo, f, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (fence && !p->immediate)
|
|
||||||
+ if (fence && !p->immediate) {
|
|
||||||
+ /*
|
|
||||||
+ * Most hw generations now have a separate queue for page table
|
|
||||||
+ * updates, but when the queue is shared with userspace we need
|
|
||||||
+ * the extra CPU round trip to correctly flush the TLB.
|
|
||||||
+ */
|
|
||||||
+ set_bit(DRM_SCHED_FENCE_DONT_PIPELINE, &f->flags);
|
|
||||||
swap(*fence, f);
|
|
||||||
+ }
|
|
||||||
dma_fence_put(f);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user