Compare commits
20 Commits
12ad6316be
...
6.15
Author | SHA1 | Date | |
---|---|---|---|
86c5c0ef41 | |||
720355d977 | |||
28be96caa2 | |||
4d05ae4de6 | |||
48372baf14 | |||
01b98c3c62 | |||
492ec3ca82 | |||
8df072e89b | |||
4cb7006cd5 | |||
43dc655d2e | |||
4d2691343a | |||
97cfa52990 | |||
245a50c3dd | |||
20c917c71c | |||
a5a8a2798d | |||
5c06d65ded | |||
9d4ee668cc | |||
23be27fbba | |||
f2e779751a | |||
0a221c5ce2 |
1
debian/.gitignore
vendored
1
debian/.gitignore
vendored
@@ -27,6 +27,7 @@
|
|||||||
/rules.gen
|
/rules.gen
|
||||||
!/linux-bpf-dev.*
|
!/linux-bpf-dev.*
|
||||||
!/linux-cpupower.*
|
!/linux-cpupower.*
|
||||||
|
!/linux-misc-tools.*
|
||||||
!/linux-perf.*
|
!/linux-perf.*
|
||||||
|
|
||||||
# Ignore compiled Python files
|
# Ignore compiled Python files
|
||||||
|
9
debian/bin/gencontrol.py
vendored
9
debian/bin/gencontrol.py
vendored
@@ -350,14 +350,7 @@ class Gencontrol(Base):
|
|||||||
def process_changelog(self) -> None:
|
def process_changelog(self) -> None:
|
||||||
version = self.version = self.changelog[0].version
|
version = self.version = self.changelog[0].version
|
||||||
|
|
||||||
if self.changelog[0].distribution == 'UNRELEASED':
|
self.abiname = f'{version.linux_upstream_full}'
|
||||||
self.abiname = f'{version.linux_upstream}+unreleased'
|
|
||||||
elif self.changelog[0].distribution == 'experimental':
|
|
||||||
self.abiname = f'{version.linux_upstream}'
|
|
||||||
elif version.linux_revision_backports:
|
|
||||||
self.abiname = f'{version.linux_upstream_full}+bpo'
|
|
||||||
else:
|
|
||||||
self.abiname = f'{version.linux_upstream_full}'
|
|
||||||
|
|
||||||
self.vars = {
|
self.vars = {
|
||||||
'upstreamversion': self.version.linux_upstream,
|
'upstreamversion': self.version.linux_upstream,
|
||||||
|
@@ -5,9 +5,9 @@ export GIT_OPTIONAL_LOCKS=0
|
|||||||
|
|
||||||
w=$(git rev-parse --path-format=absolute --show-toplevel) ; : "${w:?}" ; cd "$w"
|
w=$(git rev-parse --path-format=absolute --show-toplevel) ; : "${w:?}" ; cd "$w"
|
||||||
|
|
||||||
dst='debian/patches/pf-tmp'
|
dst='debian/patches/tmp-pf'
|
||||||
src='../linux-extras'
|
src='../linux-extras'
|
||||||
branches='amd-pstate btrfs cpuidle crypto exfat fixes fuse kbuild nfs smb zstd'
|
branches='fixes archlinux cpuidle exfat kbuild nfs smb xfs'
|
||||||
|
|
||||||
if [ -d "${dst}" ] ; then rm -rf "${dst}" ; fi
|
if [ -d "${dst}" ] ; then rm -rf "${dst}" ; fi
|
||||||
mkdir -p "${dst}"
|
mkdir -p "${dst}"
|
||||||
@@ -34,19 +34,17 @@ for b in ${branches} ; do
|
|||||||
git switch --detach "${ref}"
|
git switch --detach "${ref}"
|
||||||
git switch -C "$r"
|
git switch -C "$r"
|
||||||
|
|
||||||
|
rm -rf "$w/${dst}/$b" ; mkdir -p "$w/${dst}/$b"
|
||||||
if git rebase "${from}" ; then
|
if git rebase "${from}" ; then
|
||||||
[ -d "$w/${dst}/$b/" ] || mkdir -p "$w/${dst}/$b"
|
|
||||||
|
|
||||||
set +e
|
|
||||||
env -C "$w" git ls-files -z | grep -zF "${dst}/$b/" | grep -zFv '/.' | env -C "$w" -u GIT_OPTIONAL_LOCKS xargs -r -0 git rm -f
|
|
||||||
find "$w/${dst}/$b/" -name '*.patch' -type f -exec rm -f {} +
|
|
||||||
set -e
|
|
||||||
|
|
||||||
git format-patch -N --subject-prefix='' --output-directory "$w/${dst}/$b" "${from}..$r"
|
git format-patch -N --subject-prefix='' --output-directory "$w/${dst}/$b" "${from}..$r"
|
||||||
else
|
else
|
||||||
echo >&2
|
echo >&2
|
||||||
git rebase --abort
|
git rebase --abort
|
||||||
echo >&2
|
|
||||||
|
touch "$w/${dst}/$b/0000-rebase-failed"
|
||||||
|
|
||||||
|
base=$(git merge-base "${from}" "${ref}")
|
||||||
|
git format-patch -N --subject-prefix='' --output-directory "$w/${dst}/$b" "${base}..${ref}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git switch -q --detach "${ref}"
|
git switch -q --detach "${ref}"
|
||||||
@@ -57,6 +55,6 @@ done
|
|||||||
cd "$w" ; rm -rf "$t"
|
cd "$w" ; rm -rf "$t"
|
||||||
|
|
||||||
echo >&2
|
echo >&2
|
||||||
echo 'put in debian/patches/series' >&2
|
echo 'output:' >&2
|
||||||
echo >&2
|
echo >&2
|
||||||
find "${dst}/" -type f -name '*.patch' | sed -E 's#^debian/patches/##' | sort -V
|
find "${dst}/" -type f -name '*.patch' | sed -E 's#^debian/patches/##' | sort -V
|
60
debian/bin/genpatch-zen
vendored
Executable file
60
debian/bin/genpatch-zen
vendored
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -ef
|
||||||
|
|
||||||
|
export GIT_OPTIONAL_LOCKS=0
|
||||||
|
|
||||||
|
w=$(git rev-parse --path-format=absolute --show-toplevel) ; : "${w:?}" ; cd "$w"
|
||||||
|
|
||||||
|
dst='debian/patches/tmp-zen'
|
||||||
|
src='../linux-extras'
|
||||||
|
branches='zen-sauce fixes'
|
||||||
|
|
||||||
|
if [ -d "${dst}" ] ; then rm -rf "${dst}" ; fi
|
||||||
|
mkdir -p "${dst}"
|
||||||
|
|
||||||
|
kver=
|
||||||
|
if [ -n "$1" ] ; then
|
||||||
|
kver="$1"
|
||||||
|
else
|
||||||
|
kver=$(dpkg-parsechangelog --show-field=Version | sed -E 's/^[0-9]+://;s/-[^-]*$//' | cut -d. -f1-2)
|
||||||
|
fi
|
||||||
|
from="upstream/linux-${kver}.y"
|
||||||
|
|
||||||
|
t=$(mktemp -d) ; : "${t:?}"
|
||||||
|
|
||||||
|
cp -ar "${src}" "$t/"
|
||||||
|
cd "$t/${src##*/}"
|
||||||
|
|
||||||
|
git config advice.skippedCherryPicks false
|
||||||
|
|
||||||
|
for b in ${branches} ; do
|
||||||
|
ref="zen/${kver}/$b"
|
||||||
|
r="tmp-rebase-$b"
|
||||||
|
|
||||||
|
git switch --detach "${ref}"
|
||||||
|
git switch -C "$r"
|
||||||
|
|
||||||
|
rm -rf "$w/${dst}/$b" ; mkdir -p "$w/${dst}/$b"
|
||||||
|
if git rebase "${from}" ; then
|
||||||
|
git format-patch -N --subject-prefix='' --output-directory "$w/${dst}/$b" "${from}..$r"
|
||||||
|
else
|
||||||
|
echo >&2
|
||||||
|
git rebase --abort
|
||||||
|
|
||||||
|
touch "$w/${dst}/$b/0000-rebase-failed"
|
||||||
|
|
||||||
|
base=$(git merge-base "${from}" "${ref}")
|
||||||
|
git format-patch -N --subject-prefix='' --output-directory "$w/${dst}/$b" "${base}..${ref}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
git switch -q --detach "${ref}"
|
||||||
|
git branch -D "$r"
|
||||||
|
echo >&2
|
||||||
|
done
|
||||||
|
|
||||||
|
cd "$w" ; rm -rf "$t"
|
||||||
|
|
||||||
|
echo >&2
|
||||||
|
echo 'output:' >&2
|
||||||
|
echo >&2
|
||||||
|
find "${dst}/" -type f -name '*.patch' | sed -E 's#^debian/patches/##' | sort -V
|
13
debian/bin/refine-configs
vendored
13
debian/bin/refine-configs
vendored
@@ -11,12 +11,15 @@ dpkg-parsechangelog --show-field Source | grep -Eq '^linux'
|
|||||||
|
|
||||||
ch_ver=$(dpkg-parsechangelog --show-field Version)
|
ch_ver=$(dpkg-parsechangelog --show-field Version)
|
||||||
|
|
||||||
v=$1
|
ktarget=$1
|
||||||
|
[ -n "${ktarget}" ] || ktarget=oldconfig
|
||||||
|
|
||||||
|
v=$2
|
||||||
[ -n "$v" ] || v=$(echo "${ch_ver}" | sed -E 's/^\d+://;s/-[^-]+$//')
|
[ -n "$v" ] || v=$(echo "${ch_ver}" | sed -E 's/^\d+://;s/-[^-]+$//')
|
||||||
[ -n "$v" ]
|
[ -n "$v" ]
|
||||||
|
|
||||||
## should be source tree with patches applied
|
## should be source tree with patches applied
|
||||||
src_dir=$2
|
src_dir=$3
|
||||||
[ -n "${src_dir}" ] || src_dir="/tmp/linux-$v"
|
[ -n "${src_dir}" ] || src_dir="/tmp/linux-$v"
|
||||||
[ -n "${src_dir}" ]
|
[ -n "${src_dir}" ]
|
||||||
[ -d "${src_dir}" ]
|
[ -d "${src_dir}" ]
|
||||||
@@ -25,8 +28,8 @@ src_dir=$(readlink -f "${src_dir}")
|
|||||||
nproc=$(nproc || printf 2)
|
nproc=$(nproc || printf 2)
|
||||||
case "${nproc}" in
|
case "${nproc}" in
|
||||||
[0-1] ) nproc=2 ;;
|
[0-1] ) nproc=2 ;;
|
||||||
[2-9] | 1[0-9] ) ;;
|
[2-8] ) ;;
|
||||||
* ) nproc=20 ;;
|
* ) nproc=8 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
rm -rf debian/build/
|
rm -rf debian/build/
|
||||||
@@ -44,7 +47,7 @@ for c in ${configs} ; do
|
|||||||
|
|
||||||
f="debian/build/$c"
|
f="debian/build/$c"
|
||||||
cp -f "$f" "${src_dir}/.config"
|
cp -f "$f" "${src_dir}/.config"
|
||||||
env -C "${src_dir}" make "-j${nproc}" oldconfig
|
env -C "${src_dir}" make "-j${nproc}" "${ktarget}"
|
||||||
cp -f "${src_dir}/.config" "$f"
|
cp -f "${src_dir}/.config" "$f"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
75
debian/changelog
vendored
75
debian/changelog
vendored
@@ -1,16 +1,71 @@
|
|||||||
linux (6.14.1-1) sid; urgency=medium
|
linux (6.15.11-1) sid; urgency=medium
|
||||||
|
|
||||||
* New upstream stable update:
|
* New upstream stable update:
|
||||||
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.14.1
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.11
|
||||||
|
|
||||||
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 07 Apr 2025 12:41:44 +0300
|
-- Konstantin Demin <rockdrilla@gmail.com> Wed, 20 Aug 2025 21:45:46 +0300
|
||||||
|
|
||||||
linux (6.14-1) sid; urgency=medium
|
linux (6.15.10-1) sid; urgency=medium
|
||||||
|
|
||||||
* Sync with Debian.
|
* New upstream stable update:
|
||||||
* Refresh patches.
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.10
|
||||||
* Refine configs.
|
|
||||||
* New upstream release: https://kernelnewbies.org/Linux_6.13
|
|
||||||
* New upstream release: https://kernelnewbies.org/Linux_6.14
|
|
||||||
|
|
||||||
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 27 Mar 2025 01:51:03 +0300
|
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 15 Aug 2025 15:43:04 +0300
|
||||||
|
|
||||||
|
linux (6.15.9-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.9
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 01 Aug 2025 16:49:13 +0300
|
||||||
|
|
||||||
|
linux (6.15.8-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.8
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Sat, 26 Jul 2025 12:31:39 +0300
|
||||||
|
|
||||||
|
linux (6.15.7-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.7
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 17 Jul 2025 22:21:12 +0300
|
||||||
|
|
||||||
|
linux (6.15.6-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.6
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 10 Jul 2025 19:38:23 +0300
|
||||||
|
|
||||||
|
linux (6.15.5-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.5
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Mon, 07 Jul 2025 01:40:22 +0300
|
||||||
|
|
||||||
|
linux (6.15.4-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.4
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 27 Jun 2025 14:05:47 +0300
|
||||||
|
|
||||||
|
linux (6.15.3-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.3
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Thu, 19 Jun 2025 17:46:46 +0300
|
||||||
|
|
||||||
|
linux (6.15.2-1) sid; urgency=medium
|
||||||
|
|
||||||
|
* New upstream stable update:
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.1
|
||||||
|
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.15.2
|
||||||
|
* New upstream release: https://kernelnewbies.org/Linux_6.15
|
||||||
|
|
||||||
|
-- Konstantin Demin <rockdrilla@gmail.com> Tue, 17 Jun 2025 12:18:45 +0300
|
||||||
|
199
debian/config/amd64/config.cloud
vendored
199
debian/config/amd64/config.cloud
vendored
@@ -12,17 +12,6 @@
|
|||||||
# CONFIG_X86_INTEL_LPSS is not set
|
# CONFIG_X86_INTEL_LPSS is not set
|
||||||
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
||||||
CONFIG_IOSF_MBI=m
|
CONFIG_IOSF_MBI=m
|
||||||
CONFIG_HYPERVISOR_GUEST=y
|
|
||||||
CONFIG_PARAVIRT=y
|
|
||||||
# CONFIG_PARAVIRT_DEBUG is not set
|
|
||||||
CONFIG_PARAVIRT_SPINLOCKS=y
|
|
||||||
CONFIG_KVM_GUEST=y
|
|
||||||
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
|
|
||||||
CONFIG_PVH=y
|
|
||||||
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
|
||||||
CONFIG_JAILHOUSE_GUEST=y
|
|
||||||
CONFIG_ACRN_GUEST=y
|
|
||||||
CONFIG_INTEL_TDX_GUEST=y
|
|
||||||
# CONFIG_GART_IOMMU is not set
|
# CONFIG_GART_IOMMU is not set
|
||||||
CONFIG_NR_CPUS=64
|
CONFIG_NR_CPUS=64
|
||||||
# CONFIG_X86_MCE_INJECT is not set
|
# CONFIG_X86_MCE_INJECT is not set
|
||||||
@@ -63,14 +52,7 @@ CONFIG_IO_DELAY_NONE=y
|
|||||||
##
|
##
|
||||||
## file: arch/x86/xen/Kconfig
|
## file: arch/x86/xen/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN=y
|
|
||||||
CONFIG_XEN_PV=y
|
|
||||||
CONFIG_XEN_512GB=y
|
|
||||||
CONFIG_XEN_PVHVM_GUEST=y
|
|
||||||
# CONFIG_XEN_DEBUG_FS is not set
|
|
||||||
CONFIG_XEN_PVH=y
|
|
||||||
# CONFIG_XEN_DOM0 is not set
|
# CONFIG_XEN_DOM0 is not set
|
||||||
CONFIG_XEN_PV_MSR_SAFE=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: block/Kconfig
|
## file: block/Kconfig
|
||||||
@@ -110,8 +92,6 @@ CONFIG_XEN_PV_MSR_SAFE=y
|
|||||||
## file: crypto/Kconfig
|
## file: crypto/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CRYPTO_ECDH=m
|
CONFIG_CRYPTO_ECDH=m
|
||||||
CONFIG_CRYPTO_CTS=m
|
|
||||||
CONFIG_CRYPTO_XTS=m
|
|
||||||
CONFIG_CRYPTO_DEFLATE=m
|
CONFIG_CRYPTO_DEFLATE=m
|
||||||
CONFIG_CRYPTO_842=m
|
CONFIG_CRYPTO_842=m
|
||||||
CONFIG_CRYPTO_LZ4=m
|
CONFIG_CRYPTO_LZ4=m
|
||||||
@@ -151,7 +131,8 @@ CONFIG_CRYPTO_ZSTD=m
|
|||||||
CONFIG_ATA=m
|
CONFIG_ATA=m
|
||||||
# CONFIG_ATA_ACPI is not set
|
# CONFIG_ATA_ACPI is not set
|
||||||
# CONFIG_SATA_PMP is not set
|
# CONFIG_SATA_PMP is not set
|
||||||
# CONFIG_SATA_AHCI is not set
|
CONFIG_SATA_AHCI=m
|
||||||
|
CONFIG_SATA_MOBILE_LPM_POLICY=0
|
||||||
# CONFIG_SATA_AHCI_PLATFORM is not set
|
# CONFIG_SATA_AHCI_PLATFORM is not set
|
||||||
# CONFIG_AHCI_DWC is not set
|
# CONFIG_AHCI_DWC is not set
|
||||||
# CONFIG_SATA_ACARD_AHCI is not set
|
# CONFIG_SATA_ACARD_AHCI is not set
|
||||||
@@ -220,8 +201,6 @@ CONFIG_ATA=m
|
|||||||
## file: drivers/block/Kconfig
|
## file: drivers/block/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_ATA_OVER_ETH is not set
|
# CONFIG_ATA_OVER_ETH is not set
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/block/mtip32xx/Kconfig
|
## file: drivers/block/mtip32xx/Kconfig
|
||||||
@@ -267,7 +246,6 @@ CONFIG_TCG_TIS=m
|
|||||||
# CONFIG_TCG_NSC is not set
|
# CONFIG_TCG_NSC is not set
|
||||||
# CONFIG_TCG_ATMEL is not set
|
# CONFIG_TCG_ATMEL is not set
|
||||||
# CONFIG_TCG_INFINEON is not set
|
# CONFIG_TCG_INFINEON is not set
|
||||||
CONFIG_TCG_XEN=m
|
|
||||||
CONFIG_TCG_CRB=m
|
CONFIG_TCG_CRB=m
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -293,12 +271,6 @@ CONFIG_TCG_CRB=m
|
|||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
|
||||||
## end choice
|
## end choice
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/cpuidle/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
|
|
||||||
CONFIG_HALTPOLL_CPUIDLE=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/crypto/Kconfig
|
## file: drivers/crypto/Kconfig
|
||||||
##
|
##
|
||||||
@@ -332,6 +304,7 @@ CONFIG_HALTPOLL_CPUIDLE=y
|
|||||||
##
|
##
|
||||||
CONFIG_CXL_BUS=y
|
CONFIG_CXL_BUS=y
|
||||||
# CONFIG_CXL_MEM_RAW_COMMANDS is not set
|
# CONFIG_CXL_MEM_RAW_COMMANDS is not set
|
||||||
|
# CONFIG_CXL_FEATURES is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/devfreq/Kconfig
|
## file: drivers/devfreq/Kconfig
|
||||||
@@ -424,6 +397,11 @@ CONFIG_GOOGLE_COREBOOT_TABLE=m
|
|||||||
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
|
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
|
||||||
CONFIG_GOOGLE_VPD=m
|
CONFIG_GOOGLE_VPD=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/fwctl/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_FWCTL is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gnss/Kconfig
|
## file: drivers/gnss/Kconfig
|
||||||
##
|
##
|
||||||
@@ -467,10 +445,7 @@ CONFIG_GOOGLE_VPD=m
|
|||||||
##
|
##
|
||||||
## file: drivers/hv/Kconfig
|
## file: drivers/hv/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_HYPERV=m
|
# CONFIG_MSHV_ROOT is not set
|
||||||
# CONFIG_HYPERV_VTL_MODE is not set
|
|
||||||
CONFIG_HYPERV_UTILS=m
|
|
||||||
CONFIG_HYPERV_BALLOON=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/hwmon/Kconfig
|
## file: drivers/hwmon/Kconfig
|
||||||
@@ -683,7 +658,6 @@ CONFIG_INFINIBAND_SRPT=m
|
|||||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||||
# CONFIG_SERIO_PS2MULT is not set
|
# CONFIG_SERIO_PS2MULT is not set
|
||||||
# CONFIG_SERIO_ARC_PS2 is not set
|
# CONFIG_SERIO_ARC_PS2 is not set
|
||||||
CONFIG_HYPERV_KEYBOARD=m
|
|
||||||
# CONFIG_USERIO is not set
|
# CONFIG_USERIO is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -701,12 +675,6 @@ CONFIG_HYPERV_KEYBOARD=m
|
|||||||
##
|
##
|
||||||
# CONFIG_INTERCONNECT is not set
|
# CONFIG_INTERCONNECT is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/iommu/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_IOMMU=y
|
|
||||||
CONFIG_VIRTIO_IOMMU=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/iommu/iommufd/Kconfig
|
## file: drivers/iommu/iommufd/Kconfig
|
||||||
##
|
##
|
||||||
@@ -804,7 +772,6 @@ CONFIG_FUSION_FC=m
|
|||||||
# CONFIG_TIFM_CORE is not set
|
# CONFIG_TIFM_CORE is not set
|
||||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||||
# CONFIG_HP_ILO is not set
|
# CONFIG_HP_ILO is not set
|
||||||
CONFIG_VMWARE_BALLOON=m
|
|
||||||
# CONFIG_SRAM is not set
|
# CONFIG_SRAM is not set
|
||||||
# CONFIG_DW_XDATA_PCIE is not set
|
# CONFIG_DW_XDATA_PCIE is not set
|
||||||
# CONFIG_XILINX_SDFEC is not set
|
# CONFIG_XILINX_SDFEC is not set
|
||||||
@@ -859,8 +826,6 @@ CONFIG_VMWARE_BALLOON=m
|
|||||||
##
|
##
|
||||||
## file: drivers/net/Kconfig
|
## file: drivers/net/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN_NETDEV_FRONTEND=m
|
|
||||||
CONFIG_XEN_NETDEV_BACKEND=m
|
|
||||||
# CONFIG_FUJITSU_ES is not set
|
# CONFIG_FUJITSU_ES is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -1078,11 +1043,6 @@ CONFIG_FBNIC=m
|
|||||||
##
|
##
|
||||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/net/ethernet/microsoft/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_MICROSOFT_MANA=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/ethernet/mscc/Kconfig
|
## file: drivers/net/ethernet/mscc/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1248,11 +1208,6 @@ CONFIG_MICROSOFT_MANA=m
|
|||||||
##
|
##
|
||||||
# CONFIG_NET_VENDOR_XILINX is not set
|
# CONFIG_NET_VENDOR_XILINX is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/net/hyperv/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_NET=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/mdio/Kconfig
|
## file: drivers/net/mdio/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1401,15 +1356,12 @@ CONFIG_NVME_TARGET_FC=m
|
|||||||
##
|
##
|
||||||
## file: drivers/pci/Kconfig
|
## file: drivers/pci/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN_PCIDEV_FRONTEND=m
|
|
||||||
# CONFIG_PCIE_TPH is not set
|
# CONFIG_PCIE_TPH is not set
|
||||||
CONFIG_PCI_HYPERV=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/controller/Kconfig
|
## file: drivers/pci/controller/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_VMD is not set
|
# CONFIG_VMD is not set
|
||||||
CONFIG_PCI_HYPERV_INTERFACE=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/controller/dwc/Kconfig
|
## file: drivers/pci/controller/dwc/Kconfig
|
||||||
@@ -1434,6 +1386,11 @@ CONFIG_PCIEASPM_DEFAULT=y
|
|||||||
# CONFIG_PCIEASPM_POWERSAVE is not set
|
# CONFIG_PCIEASPM_POWERSAVE is not set
|
||||||
## end choice
|
## end choice
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pci/pwrctrl/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_PCI_PWRCTL_SLOT is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/switch/Kconfig
|
## file: drivers/pci/switch/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1523,13 +1480,16 @@ CONFIG_PCIEASPM_DEFAULT=y
|
|||||||
##
|
##
|
||||||
CONFIG_PPS=m
|
CONFIG_PPS=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pps/generators/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_PPS_GENERATOR_TIO is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ptp/Kconfig
|
## file: drivers/ptp/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_DP83640_PHY is not set
|
# CONFIG_DP83640_PHY is not set
|
||||||
# CONFIG_PTP_1588_CLOCK_INES is not set
|
# CONFIG_PTP_1588_CLOCK_INES is not set
|
||||||
CONFIG_PTP_1588_CLOCK_KVM=m
|
|
||||||
CONFIG_PTP_1588_CLOCK_VMW=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pwm/Kconfig
|
## file: drivers/pwm/Kconfig
|
||||||
@@ -1589,8 +1549,6 @@ CONFIG_SCSI_FC_ATTRS=m
|
|||||||
CONFIG_SCSI_SRP_ATTRS=m
|
CONFIG_SCSI_SRP_ATTRS=m
|
||||||
CONFIG_SCSI_BUSLOGIC=m
|
CONFIG_SCSI_BUSLOGIC=m
|
||||||
# CONFIG_SCSI_FLASHPOINT is not set
|
# CONFIG_SCSI_FLASHPOINT is not set
|
||||||
CONFIG_XEN_SCSI_FRONTEND=m
|
|
||||||
CONFIG_HYPERV_STORAGE=m
|
|
||||||
# CONFIG_LIBFC is not set
|
# CONFIG_LIBFC is not set
|
||||||
CONFIG_SCSI_IPR=m
|
CONFIG_SCSI_IPR=m
|
||||||
# CONFIG_SCSI_IPR_TRACE is not set
|
# CONFIG_SCSI_IPR_TRACE is not set
|
||||||
@@ -1694,12 +1652,6 @@ CONFIG_SCSI_MPI3MR=m
|
|||||||
# CONFIG_N_GSM is not set
|
# CONFIG_N_GSM is not set
|
||||||
# CONFIG_NOZOMI is not set
|
# CONFIG_NOZOMI is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/tty/hvc/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HVC_XEN=y
|
|
||||||
CONFIG_HVC_XEN_FRONTEND=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/tty/serial/Kconfig
|
## file: drivers/tty/serial/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1723,6 +1675,7 @@ CONFIG_HVC_XEN_FRONTEND=y
|
|||||||
# CONFIG_SERIAL_8250_RSA is not set
|
# CONFIG_SERIAL_8250_RSA is not set
|
||||||
# CONFIG_SERIAL_8250_RT288X is not set
|
# CONFIG_SERIAL_8250_RT288X is not set
|
||||||
# CONFIG_SERIAL_8250_MID is not set
|
# CONFIG_SERIAL_8250_MID is not set
|
||||||
|
# CONFIG_SERIAL_8250_NI is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ufs/Kconfig
|
## file: drivers/ufs/Kconfig
|
||||||
@@ -1737,7 +1690,6 @@ CONFIG_HVC_XEN_FRONTEND=y
|
|||||||
# CONFIG_UIO_SERCOS3 is not set
|
# CONFIG_UIO_SERCOS3 is not set
|
||||||
# CONFIG_UIO_NETX is not set
|
# CONFIG_UIO_NETX is not set
|
||||||
# CONFIG_UIO_MF624 is not set
|
# CONFIG_UIO_MF624 is not set
|
||||||
CONFIG_UIO_HV_GENERIC=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/usb/Kconfig
|
## file: drivers/usb/Kconfig
|
||||||
@@ -1766,34 +1718,17 @@ CONFIG_UIO_HV_GENERIC=m
|
|||||||
##
|
##
|
||||||
CONFIG_FB_CIRRUS=m
|
CONFIG_FB_CIRRUS=m
|
||||||
CONFIG_FB_UVESA=m
|
CONFIG_FB_UVESA=m
|
||||||
CONFIG_XEN_FBDEV_FRONTEND=y
|
|
||||||
CONFIG_FB_HYPERV=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/video/fbdev/core/Kconfig
|
## file: drivers/video/fbdev/core/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_FB_DEVICE is not set
|
# CONFIG_FB_DEVICE is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virt/acrn/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_ACRN_HSM=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virt/coco/tdx-guest/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_TDX_GUEST_DRIVER=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/virt/vboxguest/Kconfig
|
## file: drivers/virt/vboxguest/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_VBOXGUEST is not set
|
# CONFIG_VBOXGUEST is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virtio/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/w1/Kconfig
|
## file: drivers/w1/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1807,6 +1742,7 @@ CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m
|
|||||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
|
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
|
||||||
CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
||||||
# CONFIG_LENOVO_SE10_WDT is not set
|
# CONFIG_LENOVO_SE10_WDT is not set
|
||||||
|
# CONFIG_LENOVO_SE30_WDT is not set
|
||||||
# CONFIG_XILINX_WATCHDOG is not set
|
# CONFIG_XILINX_WATCHDOG is not set
|
||||||
# CONFIG_CADENCE_WATCHDOG is not set
|
# CONFIG_CADENCE_WATCHDOG is not set
|
||||||
# CONFIG_DW_WATCHDOG is not set
|
# CONFIG_DW_WATCHDOG is not set
|
||||||
@@ -1844,35 +1780,8 @@ CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
|||||||
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
|
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
|
||||||
# CONFIG_NI903X_WDT is not set
|
# CONFIG_NI903X_WDT is not set
|
||||||
# CONFIG_NIC7018_WDT is not set
|
# CONFIG_NIC7018_WDT is not set
|
||||||
CONFIG_XEN_WDT=m
|
|
||||||
# CONFIG_PCIPCWATCHDOG is not set
|
# CONFIG_PCIPCWATCHDOG is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/xen/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_XEN_BALLOON=y
|
|
||||||
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
|
|
||||||
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
|
|
||||||
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
|
|
||||||
CONFIG_XEN_DEV_EVTCHN=m
|
|
||||||
CONFIG_XEN_BACKEND=y
|
|
||||||
CONFIG_XENFS=m
|
|
||||||
CONFIG_XEN_COMPAT_XENFS=y
|
|
||||||
CONFIG_XEN_SYS_HYPERVISOR=y
|
|
||||||
CONFIG_XEN_GNTDEV=m
|
|
||||||
CONFIG_XEN_GNTDEV_DMABUF=y
|
|
||||||
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
|
||||||
CONFIG_XEN_GRANT_DMA_ALLOC=y
|
|
||||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
|
||||||
# CONFIG_XEN_PVCALLS_FRONTEND is not set
|
|
||||||
# CONFIG_XEN_PVCALLS_BACKEND is not set
|
|
||||||
CONFIG_XEN_SCSI_BACKEND=m
|
|
||||||
CONFIG_XEN_PRIVCMD=m
|
|
||||||
CONFIG_XEN_PRIVCMD_EVENTFD=y
|
|
||||||
CONFIG_XEN_UNPOPULATED_ALLOC=y
|
|
||||||
CONFIG_XEN_VIRTIO=y
|
|
||||||
# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/Kconfig
|
## file: fs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1898,11 +1807,6 @@ CONFIG_XEN_VIRTIO=y
|
|||||||
##
|
##
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/btrfs/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_BTRFS_FS is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/coda/Kconfig
|
## file: fs/coda/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1938,12 +1842,6 @@ CONFIG_XEN_VIRTIO=y
|
|||||||
##
|
##
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/fuse/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_FUSE_FS=m
|
|
||||||
CONFIG_VIRTIO_FS=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/gfs2/Kconfig
|
## file: fs/gfs2/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2069,11 +1967,6 @@ CONFIG_PROC_VMCORE=y
|
|||||||
##
|
##
|
||||||
# CONFIG_CIFS is not set
|
# CONFIG_CIFS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/sysv/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_SYSV_FS is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/ufs/Kconfig
|
## file: fs/ufs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2124,7 +2017,6 @@ CONFIG_PREEMPT_NONE=y
|
|||||||
## file: kernel/power/Kconfig
|
## file: kernel/power/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_PM_DEBUG is not set
|
# CONFIG_PM_DEBUG is not set
|
||||||
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: kernel/rcu/Kconfig
|
## file: kernel/rcu/Kconfig
|
||||||
@@ -2164,7 +2056,6 @@ CONFIG_PANIC_TIMEOUT=5
|
|||||||
# CONFIG_FUNCTION_ERROR_INJECTION is not set
|
# CONFIG_FUNCTION_ERROR_INJECTION is not set
|
||||||
# CONFIG_RUNTIME_TESTING_MENU is not set
|
# CONFIG_RUNTIME_TESTING_MENU is not set
|
||||||
# CONFIG_MEMTEST is not set
|
# CONFIG_MEMTEST is not set
|
||||||
# CONFIG_HYPERV_TESTING is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: lib/Kconfig.kfence
|
## file: lib/Kconfig.kfence
|
||||||
@@ -2175,6 +2066,7 @@ CONFIG_PANIC_TIMEOUT=5
|
|||||||
## file: mm/Kconfig
|
## file: mm/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_ZSWAP is not set
|
# CONFIG_ZSWAP is not set
|
||||||
|
CONFIG_ZSMALLOC=m
|
||||||
# CONFIG_HWPOISON_INJECT is not set
|
# CONFIG_HWPOISON_INJECT is not set
|
||||||
# CONFIG_NUMA_EMU is not set
|
# CONFIG_NUMA_EMU is not set
|
||||||
|
|
||||||
@@ -2243,17 +2135,6 @@ CONFIG_MAX_SKB_FRAGS=19
|
|||||||
##
|
##
|
||||||
# CONFIG_CAN is not set
|
# CONFIG_CAN is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_IP_DCCP_DEBUG is not set
|
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/ccids/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
|
|
||||||
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/ieee802154/Kconfig
|
## file: net/ieee802154/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2411,11 +2292,6 @@ CONFIG_SUNRPC_XPRT_RDMA=m
|
|||||||
##
|
##
|
||||||
CONFIG_TIPC_MEDIA_IB=y
|
CONFIG_TIPC_MEDIA_IB=y
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/vmw_vsock/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_VSOCKETS=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/x25/Kconfig
|
## file: net/x25/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2441,6 +2317,7 @@ CONFIG_IPE_PROP_DM_VERITY_SIGNATURE=y
|
|||||||
## file: security/keys/Kconfig
|
## file: security/keys/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_KEYS_REQUEST_CACHE is not set
|
# CONFIG_KEYS_REQUEST_CACHE is not set
|
||||||
|
# CONFIG_BIG_KEYS is not set
|
||||||
# CONFIG_TRUSTED_KEYS is not set
|
# CONFIG_TRUSTED_KEYS is not set
|
||||||
# CONFIG_USER_DECRYPTED_DATA is not set
|
# CONFIG_USER_DECRYPTED_DATA is not set
|
||||||
|
|
||||||
@@ -2458,11 +2335,17 @@ CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y
|
|||||||
CONFIG_ARCH_SELECTS_KEXEC_FILE=y
|
CONFIG_ARCH_SELECTS_KEXEC_FILE=y
|
||||||
CONFIG_BLK_DEV_RNBD=y
|
CONFIG_BLK_DEV_RNBD=y
|
||||||
CONFIG_CRASH_RESERVE=y
|
CONFIG_CRASH_RESERVE=y
|
||||||
|
CONFIG_CRYPTO_CHACHA20_X86_64=m
|
||||||
CONFIG_CRYPTO_LIB_AESCFB=m
|
CONFIG_CRYPTO_LIB_AESCFB=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_INTERNAL=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_INTERNAL=m
|
||||||
|
CONFIG_CRYPTO_POLY1305_X86_64=m
|
||||||
CONFIG_CXL_PORT=y
|
CONFIG_CXL_PORT=y
|
||||||
CONFIG_FB_IOMEM_HELPERS_DEFERRED=y
|
|
||||||
CONFIG_HVC_IRQ=y
|
|
||||||
CONFIG_HYPERV_TIMER=y
|
|
||||||
CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
|
CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
|
||||||
CONFIG_INFINIBAND_RTRS=m
|
CONFIG_INFINIBAND_RTRS=m
|
||||||
CONFIG_INFINIBAND_USER_MEM=y
|
CONFIG_INFINIBAND_USER_MEM=y
|
||||||
@@ -2481,28 +2364,10 @@ CONFIG_ND_BTT=m
|
|||||||
CONFIG_ND_PFN=m
|
CONFIG_ND_PFN=m
|
||||||
CONFIG_NETFS_SUPPORT=m
|
CONFIG_NETFS_SUPPORT=m
|
||||||
# CONFIG_NVMEM_LAYOUTS is not set
|
# CONFIG_NVMEM_LAYOUTS is not set
|
||||||
CONFIG_PARAVIRT_CLOCK=y
|
|
||||||
CONFIG_PARAVIRT_XXL=y
|
|
||||||
CONFIG_PCI_XEN=y
|
|
||||||
CONFIG_PREEMPT_NONE_BUILD=y
|
CONFIG_PREEMPT_NONE_BUILD=y
|
||||||
CONFIG_RATIONAL=m
|
CONFIG_RATIONAL=m
|
||||||
CONFIG_SCSI_COMMON=m
|
CONFIG_SCSI_COMMON=m
|
||||||
CONFIG_SCSI_MOD=m
|
CONFIG_SCSI_MOD=m
|
||||||
CONFIG_SCSI_NETLINK=y
|
CONFIG_SCSI_NETLINK=y
|
||||||
CONFIG_SWIOTLB_XEN=y
|
|
||||||
CONFIG_SYS_HYPERVISOR=y
|
|
||||||
CONFIG_TCG_TIS_CORE=m
|
CONFIG_TCG_TIS_CORE=m
|
||||||
CONFIG_X86_HV_CALLBACK_VECTOR=y
|
|
||||||
CONFIG_XEN_ACPI=y
|
|
||||||
CONFIG_XEN_AUTO_XLATE=y
|
|
||||||
CONFIG_XEN_EFI=y
|
|
||||||
CONFIG_XEN_GRANT_DMA_OPS=y
|
|
||||||
CONFIG_XEN_HAVE_PVMMU=y
|
|
||||||
CONFIG_XEN_HAVE_VPMU=y
|
|
||||||
CONFIG_XEN_PCI_STUB=y
|
|
||||||
CONFIG_XEN_PVHVM=y
|
|
||||||
CONFIG_XEN_PVHVM_SMP=y
|
|
||||||
CONFIG_XEN_PV_SMP=y
|
|
||||||
CONFIG_XEN_SAVE_RESTORE=y
|
|
||||||
CONFIG_XEN_XENBUS_FRONTEND=y
|
|
||||||
CONFIG_ZSTD_COMPRESS=m
|
CONFIG_ZSTD_COMPRESS=m
|
||||||
|
251
debian/config/amd64/config.mobile
vendored
251
debian/config/amd64/config.mobile
vendored
@@ -12,7 +12,6 @@ CONFIG_X86_MPPARSE=y
|
|||||||
CONFIG_X86_INTEL_LPSS=y
|
CONFIG_X86_INTEL_LPSS=y
|
||||||
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
CONFIG_X86_AMD_PLATFORM_DEVICE=y
|
||||||
CONFIG_IOSF_MBI=y
|
CONFIG_IOSF_MBI=y
|
||||||
# CONFIG_HYPERVISOR_GUEST is not set
|
|
||||||
CONFIG_GART_IOMMU=y
|
CONFIG_GART_IOMMU=y
|
||||||
CONFIG_NR_CPUS=64
|
CONFIG_NR_CPUS=64
|
||||||
CONFIG_X86_MCE_INJECT=m
|
CONFIG_X86_MCE_INJECT=m
|
||||||
@@ -55,6 +54,11 @@ CONFIG_KVM_XEN=y
|
|||||||
CONFIG_RAS_CEC=y
|
CONFIG_RAS_CEC=y
|
||||||
# CONFIG_RAS_CEC_DEBUG is not set
|
# CONFIG_RAS_CEC_DEBUG is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: arch/x86/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_XEN_DOM0=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: block/Kconfig
|
## file: block/Kconfig
|
||||||
##
|
##
|
||||||
@@ -104,8 +108,6 @@ CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE=y
|
|||||||
## file: crypto/Kconfig
|
## file: crypto/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CRYPTO_ECDH=y
|
CONFIG_CRYPTO_ECDH=y
|
||||||
CONFIG_CRYPTO_CTS=y
|
|
||||||
CONFIG_CRYPTO_XTS=y
|
|
||||||
CONFIG_CRYPTO_DEFLATE=y
|
CONFIG_CRYPTO_DEFLATE=y
|
||||||
CONFIG_CRYPTO_842=y
|
CONFIG_CRYPTO_842=y
|
||||||
CONFIG_CRYPTO_LZ4=y
|
CONFIG_CRYPTO_LZ4=y
|
||||||
@@ -553,6 +555,7 @@ CONFIG_CRYPTO_DEV_QAT_ERROR_INJECTION=y
|
|||||||
##
|
##
|
||||||
CONFIG_CXL_BUS=m
|
CONFIG_CXL_BUS=m
|
||||||
CONFIG_CXL_MEM_RAW_COMMANDS=y
|
CONFIG_CXL_MEM_RAW_COMMANDS=y
|
||||||
|
CONFIG_CXL_FEATURES=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/devfreq/Kconfig
|
## file: drivers/devfreq/Kconfig
|
||||||
@@ -635,6 +638,9 @@ CONFIG_EDAC_LEGACY_SYSFS=y
|
|||||||
# CONFIG_EDAC_DEBUG is not set
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
CONFIG_EDAC_DECODE_MCE=y
|
CONFIG_EDAC_DECODE_MCE=y
|
||||||
CONFIG_EDAC_GHES=y
|
CONFIG_EDAC_GHES=y
|
||||||
|
# CONFIG_EDAC_SCRUB is not set
|
||||||
|
# CONFIG_EDAC_ECS is not set
|
||||||
|
# CONFIG_EDAC_MEM_REPAIR is not set
|
||||||
CONFIG_EDAC_AMD64=m
|
CONFIG_EDAC_AMD64=m
|
||||||
CONFIG_EDAC_E752X=m
|
CONFIG_EDAC_E752X=m
|
||||||
CONFIG_EDAC_I82975X=m
|
CONFIG_EDAC_I82975X=m
|
||||||
@@ -719,6 +725,13 @@ CONFIG_FSI_SBEFIFO=m
|
|||||||
CONFIG_FSI_OCC=m
|
CONFIG_FSI_OCC=m
|
||||||
CONFIG_I2CR_SCOM=m
|
CONFIG_I2CR_SCOM=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/fwctl/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_FWCTL=m
|
||||||
|
CONFIG_FWCTL_MLX5=m
|
||||||
|
CONFIG_FWCTL_PDS=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gnss/Kconfig
|
## file: drivers/gnss/Kconfig
|
||||||
##
|
##
|
||||||
@@ -848,6 +861,7 @@ CONFIG_DRM=y
|
|||||||
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
|
# CONFIG_DRM_DEBUG_MODESET_LOCK is not set
|
||||||
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
||||||
CONFIG_DRM_VGEM=m
|
CONFIG_DRM_VGEM=m
|
||||||
|
CONFIG_DRM_HYPERV=m
|
||||||
# CONFIG_DRM_WERROR is not set
|
# CONFIG_DRM_WERROR is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -894,6 +908,7 @@ CONFIG_DRM_AST=m
|
|||||||
CONFIG_DRM_CHIPONE_ICN6211=m
|
CONFIG_DRM_CHIPONE_ICN6211=m
|
||||||
CONFIG_DRM_CHRONTEL_CH7033=m
|
CONFIG_DRM_CHRONTEL_CH7033=m
|
||||||
CONFIG_DRM_DISPLAY_CONNECTOR=m
|
CONFIG_DRM_DISPLAY_CONNECTOR=m
|
||||||
|
CONFIG_DRM_I2C_NXP_TDA998X=m
|
||||||
CONFIG_DRM_ITE_IT6263=m
|
CONFIG_DRM_ITE_IT6263=m
|
||||||
CONFIG_DRM_ITE_IT6505=m
|
CONFIG_DRM_ITE_IT6505=m
|
||||||
CONFIG_DRM_LONTIUM_LT8912B=m
|
CONFIG_DRM_LONTIUM_LT8912B=m
|
||||||
@@ -983,14 +998,6 @@ CONFIG_DRM_GUD=m
|
|||||||
##
|
##
|
||||||
CONFIG_DRM_HISI_HIBMC=m
|
CONFIG_DRM_HISI_HIBMC=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/gpu/drm/i2c/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_DRM_I2C_CH7006=m
|
|
||||||
CONFIG_DRM_I2C_SIL164=m
|
|
||||||
CONFIG_DRM_I2C_NXP_TDA998X=m
|
|
||||||
CONFIG_DRM_I2C_NXP_TDA9950=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/i915/Kconfig
|
## file: drivers/gpu/drm/i915/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1052,7 +1059,9 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
|
|||||||
# CONFIG_NOUVEAU_DEBUG_PUSH is not set
|
# CONFIG_NOUVEAU_DEBUG_PUSH is not set
|
||||||
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
|
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
|
||||||
# CONFIG_DRM_NOUVEAU_SVM is not set
|
# CONFIG_DRM_NOUVEAU_SVM is not set
|
||||||
# CONFIG_DRM_NOUVEAU_GSP_DEFAULT is not set
|
CONFIG_DRM_NOUVEAU_GSP_DEFAULT=y
|
||||||
|
CONFIG_DRM_NOUVEAU_CH7006=m
|
||||||
|
CONFIG_DRM_NOUVEAU_SIL164=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/panel/Kconfig
|
## file: drivers/gpu/drm/panel/Kconfig
|
||||||
@@ -1114,6 +1123,7 @@ CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS=m
|
|||||||
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
|
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
|
||||||
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
|
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
|
||||||
CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
|
CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
|
||||||
|
CONFIG_DRM_PANEL_RAYDIUM_RM67200=m
|
||||||
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
|
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
|
||||||
CONFIG_DRM_PANEL_RAYDIUM_RM692E5=m
|
CONFIG_DRM_PANEL_RAYDIUM_RM692E5=m
|
||||||
CONFIG_DRM_PANEL_RAYDIUM_RM69380=m
|
CONFIG_DRM_PANEL_RAYDIUM_RM69380=m
|
||||||
@@ -1151,6 +1161,7 @@ CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m
|
|||||||
CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m
|
CONFIG_DRM_PANEL_STARTEK_KD070FHFID015=m
|
||||||
CONFIG_DRM_PANEL_EDP=m
|
CONFIG_DRM_PANEL_EDP=m
|
||||||
CONFIG_DRM_PANEL_SIMPLE=m
|
CONFIG_DRM_PANEL_SIMPLE=m
|
||||||
|
CONFIG_DRM_PANEL_SUMMIT=m
|
||||||
CONFIG_DRM_PANEL_SYNAPTICS_R63353=m
|
CONFIG_DRM_PANEL_SYNAPTICS_R63353=m
|
||||||
CONFIG_DRM_PANEL_TDO_TL070WSH30=m
|
CONFIG_DRM_PANEL_TDO_TL070WSH30=m
|
||||||
CONFIG_DRM_PANEL_TPO_TD028TTEC1=m
|
CONFIG_DRM_PANEL_TPO_TD028TTEC1=m
|
||||||
@@ -1159,6 +1170,7 @@ CONFIG_DRM_PANEL_TPO_TPG110=m
|
|||||||
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
|
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
|
||||||
CONFIG_DRM_PANEL_VISIONOX_R66451=m
|
CONFIG_DRM_PANEL_VISIONOX_R66451=m
|
||||||
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
|
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
|
||||||
|
CONFIG_DRM_PANEL_VISIONOX_RM692E5=m
|
||||||
CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m
|
CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m
|
||||||
CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
|
CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
|
||||||
CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
|
CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
|
||||||
@@ -1184,6 +1196,7 @@ CONFIG_DRM_SSD130X_SPI=m
|
|||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/tiny/Kconfig
|
## file: drivers/gpu/drm/tiny/Kconfig
|
||||||
##
|
##
|
||||||
|
CONFIG_DRM_APPLETBDRM=m
|
||||||
CONFIG_DRM_ARCPGU=m
|
CONFIG_DRM_ARCPGU=m
|
||||||
CONFIG_DRM_BOCHS=m
|
CONFIG_DRM_BOCHS=m
|
||||||
CONFIG_DRM_CIRRUS_QEMU=m
|
CONFIG_DRM_CIRRUS_QEMU=m
|
||||||
@@ -1222,11 +1235,19 @@ CONFIG_DRM_VIRTIO_GPU_KMS=y
|
|||||||
##
|
##
|
||||||
CONFIG_DRM_VKMS=m
|
CONFIG_DRM_VKMS=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/gpu/drm/vmwgfx/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_DRM_VMWGFX=m
|
||||||
|
# CONFIG_DRM_VMWGFX_MKSSTATS is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/xe/Kconfig
|
## file: drivers/gpu/drm/xe/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_DRM_XE=m
|
CONFIG_DRM_XE=m
|
||||||
CONFIG_DRM_XE_DISPLAY=y
|
CONFIG_DRM_XE_DISPLAY=y
|
||||||
|
CONFIG_DRM_XE_DP_TUNNEL=y
|
||||||
|
CONFIG_DRM_XE_DEVMEM_MIRROR=y
|
||||||
CONFIG_DRM_XE_FORCE_PROBE=""
|
CONFIG_DRM_XE_FORCE_PROBE=""
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -1253,6 +1274,11 @@ CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000
|
|||||||
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1
|
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1
|
||||||
CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y
|
CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/gpu/drm/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_DRM_XEN_FRONTEND=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/vga/Kconfig
|
## file: drivers/gpu/vga/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1280,6 +1306,8 @@ CONFIG_HID_ACRUX=m
|
|||||||
CONFIG_HID_ACRUX_FF=y
|
CONFIG_HID_ACRUX_FF=y
|
||||||
CONFIG_HID_APPLE=m
|
CONFIG_HID_APPLE=m
|
||||||
CONFIG_HID_APPLEIR=m
|
CONFIG_HID_APPLEIR=m
|
||||||
|
CONFIG_HID_APPLETB_BL=m
|
||||||
|
CONFIG_HID_APPLETB_KBD=m
|
||||||
CONFIG_HID_ASUS=m
|
CONFIG_HID_ASUS=m
|
||||||
CONFIG_HID_AUREAL=m
|
CONFIG_HID_AUREAL=m
|
||||||
CONFIG_HID_BELKIN=m
|
CONFIG_HID_BELKIN=m
|
||||||
@@ -1384,6 +1412,7 @@ CONFIG_HID_SUNPLUS=m
|
|||||||
CONFIG_HID_RMI=m
|
CONFIG_HID_RMI=m
|
||||||
CONFIG_HID_GREENASIA=m
|
CONFIG_HID_GREENASIA=m
|
||||||
CONFIG_GREENASIA_FF=y
|
CONFIG_GREENASIA_FF=y
|
||||||
|
CONFIG_HID_HYPERV_MOUSE=m
|
||||||
CONFIG_HID_SMARTJOYPLUS=m
|
CONFIG_HID_SMARTJOYPLUS=m
|
||||||
CONFIG_SMARTJOYPLUS_FF=y
|
CONFIG_SMARTJOYPLUS_FF=y
|
||||||
CONFIG_HID_TIVO=m
|
CONFIG_HID_TIVO=m
|
||||||
@@ -1394,6 +1423,7 @@ CONFIG_HID_THRUSTMASTER=m
|
|||||||
CONFIG_THRUSTMASTER_FF=y
|
CONFIG_THRUSTMASTER_FF=y
|
||||||
CONFIG_HID_UDRAW_PS3=m
|
CONFIG_HID_UDRAW_PS3=m
|
||||||
CONFIG_HID_U2FZERO=m
|
CONFIG_HID_U2FZERO=m
|
||||||
|
CONFIG_HID_UNIVERSAL_PIDFF=m
|
||||||
CONFIG_HID_WACOM=m
|
CONFIG_HID_WACOM=m
|
||||||
CONFIG_HID_WIIMOTE=m
|
CONFIG_HID_WIIMOTE=m
|
||||||
CONFIG_HID_WINWING=m
|
CONFIG_HID_WINWING=m
|
||||||
@@ -1463,6 +1493,11 @@ CONFIG_HSI_CHAR=m
|
|||||||
##
|
##
|
||||||
CONFIG_HTE=y
|
CONFIG_HTE=y
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/hv/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_MSHV_ROOT=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/hwmon/Kconfig
|
## file: drivers/hwmon/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1497,6 +1532,7 @@ CONFIG_SENSORS_FAM15H_POWER=m
|
|||||||
CONFIG_SENSORS_APPLESMC=m
|
CONFIG_SENSORS_APPLESMC=m
|
||||||
CONFIG_SENSORS_ASB100=m
|
CONFIG_SENSORS_ASB100=m
|
||||||
CONFIG_SENSORS_ATXP1=m
|
CONFIG_SENSORS_ATXP1=m
|
||||||
|
CONFIG_SENSORS_CGBC=m
|
||||||
CONFIG_SENSORS_CHIPCAP2=m
|
CONFIG_SENSORS_CHIPCAP2=m
|
||||||
CONFIG_SENSORS_CORSAIR_CPRO=m
|
CONFIG_SENSORS_CORSAIR_CPRO=m
|
||||||
CONFIG_SENSORS_CORSAIR_PSU=m
|
CONFIG_SENSORS_CORSAIR_PSU=m
|
||||||
@@ -1523,6 +1559,7 @@ CONFIG_SENSORS_G762=m
|
|||||||
CONFIG_SENSORS_GPIO_FAN=m
|
CONFIG_SENSORS_GPIO_FAN=m
|
||||||
CONFIG_SENSORS_HIH6130=m
|
CONFIG_SENSORS_HIH6130=m
|
||||||
CONFIG_SENSORS_HS3001=m
|
CONFIG_SENSORS_HS3001=m
|
||||||
|
CONFIG_SENSORS_HTU31=m
|
||||||
CONFIG_SENSORS_IBMAEM=m
|
CONFIG_SENSORS_IBMAEM=m
|
||||||
CONFIG_SENSORS_IBMPEX=m
|
CONFIG_SENSORS_IBMPEX=m
|
||||||
CONFIG_SENSORS_I5500=m
|
CONFIG_SENSORS_I5500=m
|
||||||
@@ -1695,6 +1732,7 @@ CONFIG_SENSORS_DELTA_AHE50DC_FAN=m
|
|||||||
CONFIG_SENSORS_FSP_3Y=m
|
CONFIG_SENSORS_FSP_3Y=m
|
||||||
CONFIG_SENSORS_IBM_CFFPS=m
|
CONFIG_SENSORS_IBM_CFFPS=m
|
||||||
CONFIG_SENSORS_DPS920AB=m
|
CONFIG_SENSORS_DPS920AB=m
|
||||||
|
CONFIG_SENSORS_INA233=m
|
||||||
CONFIG_SENSORS_INSPUR_IPSPS=m
|
CONFIG_SENSORS_INSPUR_IPSPS=m
|
||||||
CONFIG_SENSORS_IR35221=m
|
CONFIG_SENSORS_IR35221=m
|
||||||
CONFIG_SENSORS_IR36021=m
|
CONFIG_SENSORS_IR36021=m
|
||||||
@@ -2025,7 +2063,6 @@ CONFIG_INPUT_TWL4030_VIBRA=m
|
|||||||
CONFIG_INPUT_TWL6040_VIBRA=m
|
CONFIG_INPUT_TWL6040_VIBRA=m
|
||||||
CONFIG_INPUT_UINPUT=m
|
CONFIG_INPUT_UINPUT=m
|
||||||
CONFIG_INPUT_PALMAS_PWRBUTTON=m
|
CONFIG_INPUT_PALMAS_PWRBUTTON=m
|
||||||
CONFIG_INPUT_PCF50633_PMU=m
|
|
||||||
CONFIG_INPUT_PCF8574=m
|
CONFIG_INPUT_PCF8574=m
|
||||||
CONFIG_INPUT_PWM_BEEPER=m
|
CONFIG_INPUT_PWM_BEEPER=m
|
||||||
CONFIG_INPUT_PWM_VIBRA=m
|
CONFIG_INPUT_PWM_VIBRA=m
|
||||||
@@ -2047,6 +2084,7 @@ CONFIG_INPUT_IQS626A=m
|
|||||||
CONFIG_INPUT_IQS7222=m
|
CONFIG_INPUT_IQS7222=m
|
||||||
CONFIG_INPUT_CMA3000=m
|
CONFIG_INPUT_CMA3000=m
|
||||||
CONFIG_INPUT_CMA3000_I2C=m
|
CONFIG_INPUT_CMA3000_I2C=m
|
||||||
|
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
|
||||||
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
|
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
|
||||||
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
|
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
|
||||||
CONFIG_INPUT_DRV260X_HAPTICS=m
|
CONFIG_INPUT_DRV260X_HAPTICS=m
|
||||||
@@ -2075,6 +2113,7 @@ CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
|
|||||||
CONFIG_MOUSE_PS2_SENTELIC=y
|
CONFIG_MOUSE_PS2_SENTELIC=y
|
||||||
CONFIG_MOUSE_PS2_TOUCHKIT=y
|
CONFIG_MOUSE_PS2_TOUCHKIT=y
|
||||||
CONFIG_MOUSE_PS2_FOCALTECH=y
|
CONFIG_MOUSE_PS2_FOCALTECH=y
|
||||||
|
CONFIG_MOUSE_PS2_VMMOUSE=y
|
||||||
CONFIG_MOUSE_SERIAL=m
|
CONFIG_MOUSE_SERIAL=m
|
||||||
CONFIG_MOUSE_APPLETOUCH=m
|
CONFIG_MOUSE_APPLETOUCH=m
|
||||||
CONFIG_MOUSE_BCM5974=m
|
CONFIG_MOUSE_BCM5974=m
|
||||||
@@ -2237,11 +2276,6 @@ CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
|
|||||||
##
|
##
|
||||||
CONFIG_INTERCONNECT=y
|
CONFIG_INTERCONNECT=y
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/iommu/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_VIRTIO_IOMMU=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/iommu/iommufd/Kconfig
|
## file: drivers/iommu/iommufd/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2340,6 +2374,7 @@ CONFIG_LEDS_MC13783=m
|
|||||||
CONFIG_LEDS_TCA6507=m
|
CONFIG_LEDS_TCA6507=m
|
||||||
CONFIG_LEDS_TLC591XX=m
|
CONFIG_LEDS_TLC591XX=m
|
||||||
CONFIG_LEDS_MAX77650=m
|
CONFIG_LEDS_MAX77650=m
|
||||||
|
CONFIG_LEDS_MAX77705=m
|
||||||
CONFIG_LEDS_MAX8997=m
|
CONFIG_LEDS_MAX8997=m
|
||||||
CONFIG_LEDS_LM355x=m
|
CONFIG_LEDS_LM355x=m
|
||||||
CONFIG_LEDS_MENF21BMC=m
|
CONFIG_LEDS_MENF21BMC=m
|
||||||
@@ -2391,7 +2426,7 @@ CONFIG_LEDS_QCOM_LPG=m
|
|||||||
CONFIG_LEDS_MT6370_RGB=m
|
CONFIG_LEDS_MT6370_RGB=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/leds/simple/Kconfig
|
## file: drivers/leds/simatic/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m
|
CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m
|
||||||
CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE=m
|
CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE=m
|
||||||
@@ -2481,6 +2516,7 @@ CONFIG_MEDIA_CEC_SUPPORT=y
|
|||||||
## file: drivers/media/cec/i2c/Kconfig
|
## file: drivers/media/cec/i2c/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CEC_CH7322=m
|
CONFIG_CEC_CH7322=m
|
||||||
|
CONFIG_CEC_NXP_TDA9950=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/media/cec/platform/Kconfig
|
## file: drivers/media/cec/platform/Kconfig
|
||||||
@@ -2543,6 +2579,7 @@ CONFIG_VIDEO_MSP3400=m
|
|||||||
# CONFIG_VIDEO_BT856 is not set
|
# CONFIG_VIDEO_BT856 is not set
|
||||||
# CONFIG_VIDEO_BT866 is not set
|
# CONFIG_VIDEO_BT866 is not set
|
||||||
# CONFIG_VIDEO_ISL7998X is not set
|
# CONFIG_VIDEO_ISL7998X is not set
|
||||||
|
CONFIG_VIDEO_LT6911UXE=m
|
||||||
# CONFIG_VIDEO_KS0127 is not set
|
# CONFIG_VIDEO_KS0127 is not set
|
||||||
# CONFIG_VIDEO_MAX9286 is not set
|
# CONFIG_VIDEO_MAX9286 is not set
|
||||||
# CONFIG_VIDEO_ML86V7667 is not set
|
# CONFIG_VIDEO_ML86V7667 is not set
|
||||||
@@ -2868,6 +2905,7 @@ CONFIG_MFD_MAX77620=y
|
|||||||
CONFIG_MFD_MAX77650=m
|
CONFIG_MFD_MAX77650=m
|
||||||
CONFIG_MFD_MAX77686=m
|
CONFIG_MFD_MAX77686=m
|
||||||
CONFIG_MFD_MAX77693=m
|
CONFIG_MFD_MAX77693=m
|
||||||
|
CONFIG_MFD_MAX77705=m
|
||||||
CONFIG_MFD_MAX77714=m
|
CONFIG_MFD_MAX77714=m
|
||||||
CONFIG_MFD_MAX77843=y
|
CONFIG_MFD_MAX77843=y
|
||||||
CONFIG_MFD_MAX8907=m
|
CONFIG_MFD_MAX8907=m
|
||||||
@@ -2884,9 +2922,6 @@ CONFIG_MFD_CPCAP=m
|
|||||||
CONFIG_MFD_VIPERBOARD=m
|
CONFIG_MFD_VIPERBOARD=m
|
||||||
CONFIG_MFD_NTXEC=m
|
CONFIG_MFD_NTXEC=m
|
||||||
CONFIG_MFD_RETU=m
|
CONFIG_MFD_RETU=m
|
||||||
CONFIG_MFD_PCF50633=m
|
|
||||||
CONFIG_PCF50633_ADC=m
|
|
||||||
CONFIG_PCF50633_GPIO=m
|
|
||||||
CONFIG_MFD_SY7636A=m
|
CONFIG_MFD_SY7636A=m
|
||||||
CONFIG_MFD_RDC321X=m
|
CONFIG_MFD_RDC321X=m
|
||||||
CONFIG_MFD_RT4831=m
|
CONFIG_MFD_RT4831=m
|
||||||
@@ -3918,6 +3953,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
|
|||||||
CONFIG_8139TOO_8129=y
|
CONFIG_8139TOO_8129=y
|
||||||
# CONFIG_8139_OLD_RX_RESET is not set
|
# CONFIG_8139_OLD_RX_RESET is not set
|
||||||
CONFIG_R8169=m
|
CONFIG_R8169=m
|
||||||
|
CONFIG_R8169_LEDS=y
|
||||||
CONFIG_RTASE=m
|
CONFIG_RTASE=m
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -4105,6 +4141,7 @@ CONFIG_IEEE802154_HWSIM=m
|
|||||||
CONFIG_MCTP_SERIAL=m
|
CONFIG_MCTP_SERIAL=m
|
||||||
CONFIG_MCTP_TRANSPORT_I2C=m
|
CONFIG_MCTP_TRANSPORT_I2C=m
|
||||||
CONFIG_MCTP_TRANSPORT_I3C=m
|
CONFIG_MCTP_TRANSPORT_I3C=m
|
||||||
|
CONFIG_MCTP_TRANSPORT_USB=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/mdio/Kconfig
|
## file: drivers/net/mdio/Kconfig
|
||||||
@@ -4205,6 +4242,7 @@ CONFIG_QCA807X_PHY=m
|
|||||||
## file: drivers/net/phy/realtek/Kconfig
|
## file: drivers/net/phy/realtek/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_REALTEK_PHY=m
|
CONFIG_REALTEK_PHY=m
|
||||||
|
CONFIG_REALTEK_PHY_HWMON=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/plip/Kconfig
|
## file: drivers/net/plip/Kconfig
|
||||||
@@ -4357,7 +4395,8 @@ CONFIG_ATH10K_AHB=y
|
|||||||
CONFIG_ATH10K_SDIO=m
|
CONFIG_ATH10K_SDIO=m
|
||||||
CONFIG_ATH10K_USB=m
|
CONFIG_ATH10K_USB=m
|
||||||
# CONFIG_ATH10K_DEBUG is not set
|
# CONFIG_ATH10K_DEBUG is not set
|
||||||
# CONFIG_ATH10K_DEBUGFS is not set
|
CONFIG_ATH10K_DEBUGFS=y
|
||||||
|
CONFIG_ATH10K_SPECTRAL=y
|
||||||
# CONFIG_ATH10K_TRACING is not set
|
# CONFIG_ATH10K_TRACING is not set
|
||||||
# CONFIG_ATH10K_DFS_CERTIFIED is not set
|
# CONFIG_ATH10K_DFS_CERTIFIED is not set
|
||||||
|
|
||||||
@@ -4368,13 +4407,16 @@ CONFIG_ATH11K=m
|
|||||||
CONFIG_ATH11K_AHB=m
|
CONFIG_ATH11K_AHB=m
|
||||||
CONFIG_ATH11K_PCI=m
|
CONFIG_ATH11K_PCI=m
|
||||||
CONFIG_ATH11K_DEBUG=y
|
CONFIG_ATH11K_DEBUG=y
|
||||||
|
CONFIG_ATH11K_DEBUGFS=y
|
||||||
# CONFIG_ATH11K_TRACING is not set
|
# CONFIG_ATH11K_TRACING is not set
|
||||||
|
CONFIG_ATH11K_SPECTRAL=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/wireless/ath/ath12k/Kconfig
|
## file: drivers/net/wireless/ath/ath12k/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_ATH12K=m
|
CONFIG_ATH12K=m
|
||||||
CONFIG_ATH12K_DEBUG=y
|
CONFIG_ATH12K_DEBUG=y
|
||||||
|
CONFIG_ATH12K_DEBUGFS=y
|
||||||
# CONFIG_ATH12K_TRACING is not set
|
# CONFIG_ATH12K_TRACING is not set
|
||||||
# CONFIG_ATH12K_COREDUMP is not set
|
# CONFIG_ATH12K_COREDUMP is not set
|
||||||
|
|
||||||
@@ -4404,6 +4446,9 @@ CONFIG_ATH9K_BTCOEX_SUPPORT=y
|
|||||||
CONFIG_ATH9K=m
|
CONFIG_ATH9K=m
|
||||||
CONFIG_ATH9K_PCI=y
|
CONFIG_ATH9K_PCI=y
|
||||||
# CONFIG_ATH9K_AHB is not set
|
# CONFIG_ATH9K_AHB is not set
|
||||||
|
CONFIG_ATH9K_DEBUGFS=y
|
||||||
|
CONFIG_ATH9K_STATION_STATISTICS=y
|
||||||
|
# CONFIG_ATH9K_TX99 is not set
|
||||||
# CONFIG_ATH9K_DFS_CERTIFIED is not set
|
# CONFIG_ATH9K_DFS_CERTIFIED is not set
|
||||||
# CONFIG_ATH9K_DYNACK is not set
|
# CONFIG_ATH9K_DYNACK is not set
|
||||||
# CONFIG_ATH9K_WOW is not set
|
# CONFIG_ATH9K_WOW is not set
|
||||||
@@ -4412,14 +4457,16 @@ CONFIG_ATH9K_CHANNEL_CONTEXT=y
|
|||||||
CONFIG_ATH9K_PCOEM=y
|
CONFIG_ATH9K_PCOEM=y
|
||||||
CONFIG_ATH9K_PCI_NO_EEPROM=m
|
CONFIG_ATH9K_PCI_NO_EEPROM=m
|
||||||
CONFIG_ATH9K_HTC=m
|
CONFIG_ATH9K_HTC=m
|
||||||
# CONFIG_ATH9K_HTC_DEBUGFS is not set
|
CONFIG_ATH9K_HTC_DEBUGFS=y
|
||||||
# CONFIG_ATH9K_HWRNG is not set
|
# CONFIG_ATH9K_HWRNG is not set
|
||||||
|
CONFIG_ATH9K_COMMON_SPECTRAL=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/wireless/ath/carl9170/Kconfig
|
## file: drivers/net/wireless/ath/carl9170/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CARL9170=m
|
CONFIG_CARL9170=m
|
||||||
CONFIG_CARL9170_LEDS=y
|
CONFIG_CARL9170_LEDS=y
|
||||||
|
CONFIG_CARL9170_DEBUGFS=y
|
||||||
# CONFIG_CARL9170_HWRNG is not set
|
# CONFIG_CARL9170_HWRNG is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -4514,6 +4561,7 @@ CONFIG_IPW2200_QOS=y
|
|||||||
CONFIG_IWL4965=m
|
CONFIG_IWL4965=m
|
||||||
CONFIG_IWL3945=m
|
CONFIG_IWL3945=m
|
||||||
# CONFIG_IWLEGACY_DEBUG is not set
|
# CONFIG_IWLEGACY_DEBUG is not set
|
||||||
|
CONFIG_IWLEGACY_DEBUGFS=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/wireless/intel/iwlwifi/Kconfig
|
## file: drivers/net/wireless/intel/iwlwifi/Kconfig
|
||||||
@@ -4521,7 +4569,9 @@ CONFIG_IWL3945=m
|
|||||||
CONFIG_IWLWIFI=m
|
CONFIG_IWLWIFI=m
|
||||||
CONFIG_IWLDVM=m
|
CONFIG_IWLDVM=m
|
||||||
CONFIG_IWLMVM=m
|
CONFIG_IWLMVM=m
|
||||||
|
CONFIG_IWLMLD=m
|
||||||
# CONFIG_IWLWIFI_DEBUG is not set
|
# CONFIG_IWLWIFI_DEBUG is not set
|
||||||
|
CONFIG_IWLWIFI_DEBUGFS=y
|
||||||
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -4684,6 +4734,7 @@ CONFIG_RT2800USB_RT3573=y
|
|||||||
CONFIG_RT2800USB_RT53XX=y
|
CONFIG_RT2800USB_RT53XX=y
|
||||||
CONFIG_RT2800USB_RT55XX=y
|
CONFIG_RT2800USB_RT55XX=y
|
||||||
CONFIG_RT2800USB_UNKNOWN=y
|
CONFIG_RT2800USB_UNKNOWN=y
|
||||||
|
CONFIG_RT2X00_LIB_DEBUGFS=y
|
||||||
CONFIG_RT2X00_DEBUG=y
|
CONFIG_RT2X00_DEBUG=y
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -4738,6 +4789,8 @@ CONFIG_RTW88_8821CS=m
|
|||||||
CONFIG_RTW88_8821CU=m
|
CONFIG_RTW88_8821CU=m
|
||||||
CONFIG_RTW88_8821AU=m
|
CONFIG_RTW88_8821AU=m
|
||||||
CONFIG_RTW88_8812AU=m
|
CONFIG_RTW88_8812AU=m
|
||||||
|
CONFIG_RTW88_8814AE=m
|
||||||
|
CONFIG_RTW88_8814AU=m
|
||||||
CONFIG_RTW88_DEBUG=y
|
CONFIG_RTW88_DEBUG=y
|
||||||
CONFIG_RTW88_DEBUGFS=y
|
CONFIG_RTW88_DEBUGFS=y
|
||||||
|
|
||||||
@@ -5018,6 +5071,7 @@ CONFIG_PCIE_CADENCE_PLAT_HOST=y
|
|||||||
##
|
##
|
||||||
## file: drivers/pci/controller/dwc/Kconfig
|
## file: drivers/pci/controller/dwc/Kconfig
|
||||||
##
|
##
|
||||||
|
# CONFIG_PCIE_DW_DEBUGFS is not set
|
||||||
CONFIG_PCI_MESON=y
|
CONFIG_PCI_MESON=y
|
||||||
CONFIG_PCIE_INTEL_GW=y
|
CONFIG_PCIE_INTEL_GW=y
|
||||||
CONFIG_PCIE_DW_PLAT_HOST=y
|
CONFIG_PCIE_DW_PLAT_HOST=y
|
||||||
@@ -5046,6 +5100,11 @@ CONFIG_PCIE_ECRC=y
|
|||||||
CONFIG_PCIEASPM_POWERSAVE=y
|
CONFIG_PCIEASPM_POWERSAVE=y
|
||||||
## end choice
|
## end choice
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pci/pwrctrl/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_PCI_PWRCTL_SLOT=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/switch/Kconfig
|
## file: drivers/pci/switch/Kconfig
|
||||||
##
|
##
|
||||||
@@ -5136,6 +5195,7 @@ CONFIG_PINMUX=y
|
|||||||
CONFIG_PINCONF=y
|
CONFIG_PINCONF=y
|
||||||
# CONFIG_DEBUG_PINCTRL is not set
|
# CONFIG_DEBUG_PINCTRL is not set
|
||||||
CONFIG_PINCTRL_AMD=y
|
CONFIG_PINCTRL_AMD=y
|
||||||
|
CONFIG_PINCTRL_AMDISP=m
|
||||||
CONFIG_PINCTRL_AS3722=m
|
CONFIG_PINCTRL_AS3722=m
|
||||||
CONFIG_PINCTRL_AXP209=m
|
CONFIG_PINCTRL_AXP209=m
|
||||||
CONFIG_PINCTRL_AW9523=m
|
CONFIG_PINCTRL_AW9523=m
|
||||||
@@ -5222,6 +5282,7 @@ CONFIG_GPD_POCKET_FAN=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
|
||||||
|
CONFIG_LENOVO_WMI_HOTKEY_UTILITIES=m
|
||||||
CONFIG_LENOVO_YMC=m
|
CONFIG_LENOVO_YMC=m
|
||||||
CONFIG_SENSORS_HDAPS=m
|
CONFIG_SENSORS_HDAPS=m
|
||||||
CONFIG_THINKPAD_ACPI=m
|
CONFIG_THINKPAD_ACPI=m
|
||||||
@@ -5240,6 +5301,7 @@ CONFIG_MSI_WMI=m
|
|||||||
CONFIG_MSI_WMI_PLATFORM=m
|
CONFIG_MSI_WMI_PLATFORM=m
|
||||||
CONFIG_PCENGINES_APU2=m
|
CONFIG_PCENGINES_APU2=m
|
||||||
CONFIG_BARCO_P50_GPIO=m
|
CONFIG_BARCO_P50_GPIO=m
|
||||||
|
CONFIG_SAMSUNG_GALAXYBOOK=m
|
||||||
CONFIG_SAMSUNG_LAPTOP=m
|
CONFIG_SAMSUNG_LAPTOP=m
|
||||||
CONFIG_SAMSUNG_Q10=m
|
CONFIG_SAMSUNG_Q10=m
|
||||||
CONFIG_TOSHIBA_BT_RFKILL=m
|
CONFIG_TOSHIBA_BT_RFKILL=m
|
||||||
@@ -5254,7 +5316,6 @@ CONFIG_SONYPI_COMPAT=y
|
|||||||
CONFIG_SYSTEM76_ACPI=m
|
CONFIG_SYSTEM76_ACPI=m
|
||||||
CONFIG_TOPSTAR_LAPTOP=m
|
CONFIG_TOPSTAR_LAPTOP=m
|
||||||
CONFIG_SERIAL_MULTI_INSTANTIATE=m
|
CONFIG_SERIAL_MULTI_INSTANTIATE=m
|
||||||
CONFIG_MLX_PLATFORM=m
|
|
||||||
CONFIG_INSPUR_PLATFORM_PROFILE=m
|
CONFIG_INSPUR_PLATFORM_PROFILE=m
|
||||||
CONFIG_LENOVO_WMI_CAMERA=m
|
CONFIG_LENOVO_WMI_CAMERA=m
|
||||||
CONFIG_INTEL_IPS=m
|
CONFIG_INTEL_IPS=m
|
||||||
@@ -5294,6 +5355,8 @@ CONFIG_AMD_PMF=m
|
|||||||
##
|
##
|
||||||
CONFIG_X86_PLATFORM_DRIVERS_DELL=y
|
CONFIG_X86_PLATFORM_DRIVERS_DELL=y
|
||||||
CONFIG_ALIENWARE_WMI=m
|
CONFIG_ALIENWARE_WMI=m
|
||||||
|
CONFIG_ALIENWARE_WMI_LEGACY=y
|
||||||
|
CONFIG_ALIENWARE_WMI_WMAX=y
|
||||||
CONFIG_DCDBAS=m
|
CONFIG_DCDBAS=m
|
||||||
CONFIG_DELL_LAPTOP=m
|
CONFIG_DELL_LAPTOP=m
|
||||||
CONFIG_DELL_RBU=m
|
CONFIG_DELL_RBU=m
|
||||||
@@ -5471,7 +5534,6 @@ CONFIG_BATTERY_MAX17042=m
|
|||||||
CONFIG_BATTERY_MAX1720X=m
|
CONFIG_BATTERY_MAX1720X=m
|
||||||
CONFIG_BATTERY_MAX1721X=m
|
CONFIG_BATTERY_MAX1721X=m
|
||||||
CONFIG_CHARGER_88PM860X=m
|
CONFIG_CHARGER_88PM860X=m
|
||||||
CONFIG_CHARGER_PCF50633=m
|
|
||||||
CONFIG_CHARGER_ISP1704=m
|
CONFIG_CHARGER_ISP1704=m
|
||||||
CONFIG_CHARGER_MAX8903=m
|
CONFIG_CHARGER_MAX8903=m
|
||||||
CONFIG_CHARGER_LP8727=m
|
CONFIG_CHARGER_LP8727=m
|
||||||
@@ -5483,6 +5545,7 @@ CONFIG_CHARGER_MAX14577=m
|
|||||||
CONFIG_CHARGER_DETECTOR_MAX14656=m
|
CONFIG_CHARGER_DETECTOR_MAX14656=m
|
||||||
CONFIG_CHARGER_MAX77650=m
|
CONFIG_CHARGER_MAX77650=m
|
||||||
CONFIG_CHARGER_MAX77693=m
|
CONFIG_CHARGER_MAX77693=m
|
||||||
|
CONFIG_CHARGER_MAX77705=m
|
||||||
CONFIG_CHARGER_MAX77976=m
|
CONFIG_CHARGER_MAX77976=m
|
||||||
CONFIG_CHARGER_MAX8997=m
|
CONFIG_CHARGER_MAX8997=m
|
||||||
CONFIG_CHARGER_MAX8998=m
|
CONFIG_CHARGER_MAX8998=m
|
||||||
@@ -5529,6 +5592,11 @@ CONFIG_PPS=y
|
|||||||
##
|
##
|
||||||
CONFIG_PPS_CLIENT_PARPORT=m
|
CONFIG_PPS_CLIENT_PARPORT=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pps/generators/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_PPS_GENERATOR_TIO=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ptp/Kconfig
|
## file: drivers/ptp/Kconfig
|
||||||
##
|
##
|
||||||
@@ -5700,8 +5768,8 @@ CONFIG_REGULATOR_MT6370=m
|
|||||||
CONFIG_REGULATOR_MT6397=m
|
CONFIG_REGULATOR_MT6397=m
|
||||||
CONFIG_REGULATOR_PALMAS=m
|
CONFIG_REGULATOR_PALMAS=m
|
||||||
CONFIG_REGULATOR_PCA9450=m
|
CONFIG_REGULATOR_PCA9450=m
|
||||||
|
CONFIG_REGULATOR_PF9453=m
|
||||||
CONFIG_REGULATOR_PCAP=m
|
CONFIG_REGULATOR_PCAP=m
|
||||||
CONFIG_REGULATOR_PCF50633=m
|
|
||||||
CONFIG_REGULATOR_PF8X00=m
|
CONFIG_REGULATOR_PF8X00=m
|
||||||
CONFIG_REGULATOR_PFUZE100=m
|
CONFIG_REGULATOR_PFUZE100=m
|
||||||
CONFIG_REGULATOR_PV88060=m
|
CONFIG_REGULATOR_PV88060=m
|
||||||
@@ -5889,7 +5957,6 @@ CONFIG_RTC_DRV_MSM6242=m
|
|||||||
CONFIG_RTC_DRV_RP5C01=m
|
CONFIG_RTC_DRV_RP5C01=m
|
||||||
CONFIG_RTC_DRV_WM831X=m
|
CONFIG_RTC_DRV_WM831X=m
|
||||||
CONFIG_RTC_DRV_WM8350=m
|
CONFIG_RTC_DRV_WM8350=m
|
||||||
CONFIG_RTC_DRV_PCF50633=m
|
|
||||||
CONFIG_RTC_DRV_ZYNQMP=m
|
CONFIG_RTC_DRV_ZYNQMP=m
|
||||||
CONFIG_RTC_DRV_NTXEC=m
|
CONFIG_RTC_DRV_NTXEC=m
|
||||||
CONFIG_RTC_DRV_CADENCE=m
|
CONFIG_RTC_DRV_CADENCE=m
|
||||||
@@ -6014,6 +6081,7 @@ CONFIG_SPI_TLE62X0=m
|
|||||||
CONFIG_SPI_SLAVE=y
|
CONFIG_SPI_SLAVE=y
|
||||||
CONFIG_SPI_SLAVE_TIME=m
|
CONFIG_SPI_SLAVE_TIME=m
|
||||||
CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
|
CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
|
||||||
|
CONFIG_SPI_OFFLOAD_TRIGGER_PWM=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/spmi/Kconfig
|
## file: drivers/spmi/Kconfig
|
||||||
@@ -6231,6 +6299,7 @@ CONFIG_SERIAL_8250_PCI1XXXX=m
|
|||||||
CONFIG_SERIAL_8250_RSA=y
|
CONFIG_SERIAL_8250_RSA=y
|
||||||
CONFIG_SERIAL_8250_RT288X=y
|
CONFIG_SERIAL_8250_RT288X=y
|
||||||
CONFIG_SERIAL_8250_MID=y
|
CONFIG_SERIAL_8250_MID=y
|
||||||
|
CONFIG_SERIAL_8250_NI=m
|
||||||
CONFIG_SERIAL_OF_PLATFORM=m
|
CONFIG_SERIAL_OF_PLATFORM=m
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -6488,6 +6557,7 @@ CONFIG_USB_R8A66597_HCD=m
|
|||||||
CONFIG_USB_HCD_BCMA=m
|
CONFIG_USB_HCD_BCMA=m
|
||||||
CONFIG_USB_HCD_SSB=m
|
CONFIG_USB_HCD_SSB=m
|
||||||
# CONFIG_USB_HCD_TEST_MODE is not set
|
# CONFIG_USB_HCD_TEST_MODE is not set
|
||||||
|
CONFIG_USB_XEN_HCD=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/usb/image/Kconfig
|
## file: drivers/usb/image/Kconfig
|
||||||
@@ -6679,6 +6749,7 @@ CONFIG_TYPEC_MUX_PI3USB30532=m
|
|||||||
CONFIG_TYPEC_MUX_INTEL_PMC=m
|
CONFIG_TYPEC_MUX_INTEL_PMC=m
|
||||||
CONFIG_TYPEC_MUX_IT5205=m
|
CONFIG_TYPEC_MUX_IT5205=m
|
||||||
CONFIG_TYPEC_MUX_NB7VPQ904M=m
|
CONFIG_TYPEC_MUX_NB7VPQ904M=m
|
||||||
|
CONFIG_TYPEC_MUX_PS883X=m
|
||||||
CONFIG_TYPEC_MUX_PTN36502=m
|
CONFIG_TYPEC_MUX_PTN36502=m
|
||||||
CONFIG_TYPEC_MUX_TUSB1046=m
|
CONFIG_TYPEC_MUX_TUSB1046=m
|
||||||
CONFIG_TYPEC_MUX_WCD939X_USBSS=m
|
CONFIG_TYPEC_MUX_WCD939X_USBSS=m
|
||||||
@@ -6791,7 +6862,6 @@ CONFIG_BACKLIGHT_ADP5520=m
|
|||||||
CONFIG_BACKLIGHT_ADP8860=m
|
CONFIG_BACKLIGHT_ADP8860=m
|
||||||
CONFIG_BACKLIGHT_ADP8870=m
|
CONFIG_BACKLIGHT_ADP8870=m
|
||||||
CONFIG_BACKLIGHT_88PM860X=m
|
CONFIG_BACKLIGHT_88PM860X=m
|
||||||
CONFIG_BACKLIGHT_PCF50633=m
|
|
||||||
CONFIG_BACKLIGHT_AAT2870=m
|
CONFIG_BACKLIGHT_AAT2870=m
|
||||||
CONFIG_BACKLIGHT_LM3509=m
|
CONFIG_BACKLIGHT_LM3509=m
|
||||||
CONFIG_BACKLIGHT_LM3630A=m
|
CONFIG_BACKLIGHT_LM3630A=m
|
||||||
@@ -6830,11 +6900,6 @@ CONFIG_BACKLIGHT_LED=m
|
|||||||
##
|
##
|
||||||
CONFIG_VBOXGUEST=m
|
CONFIG_VBOXGUEST=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virtio/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/w1/Kconfig
|
## file: drivers/w1/Kconfig
|
||||||
##
|
##
|
||||||
@@ -6890,6 +6955,7 @@ CONFIG_DA9063_WATCHDOG=m
|
|||||||
CONFIG_DA9062_WATCHDOG=m
|
CONFIG_DA9062_WATCHDOG=m
|
||||||
CONFIG_GPIO_WATCHDOG=m
|
CONFIG_GPIO_WATCHDOG=m
|
||||||
CONFIG_LENOVO_SE10_WDT=m
|
CONFIG_LENOVO_SE10_WDT=m
|
||||||
|
CONFIG_LENOVO_SE30_WDT=m
|
||||||
CONFIG_MENF21BMC_WATCHDOG=m
|
CONFIG_MENF21BMC_WATCHDOG=m
|
||||||
CONFIG_WM831X_WATCHDOG=m
|
CONFIG_WM831X_WATCHDOG=m
|
||||||
CONFIG_WM8350_WATCHDOG=m
|
CONFIG_WM8350_WATCHDOG=m
|
||||||
@@ -6946,6 +7012,13 @@ CONFIG_MEN_A21_WDT=m
|
|||||||
CONFIG_PCIPCWATCHDOG=m
|
CONFIG_PCIPCWATCHDOG=m
|
||||||
CONFIG_USBPCWATCHDOG=m
|
CONFIG_USBPCWATCHDOG=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_XEN_ACPI_PROCESSOR=m
|
||||||
|
# CONFIG_XEN_MCE_LOG is not set
|
||||||
|
CONFIG_XEN_SYMS=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/Kconfig
|
## file: fs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -6981,17 +7054,6 @@ CONFIG_BEFS_FS=m
|
|||||||
##
|
##
|
||||||
CONFIG_BFS_FS=m
|
CONFIG_BFS_FS=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/btrfs/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_BTRFS_FS=m
|
|
||||||
CONFIG_BTRFS_FS_POSIX_ACL=y
|
|
||||||
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
|
|
||||||
# CONFIG_BTRFS_DEBUG is not set
|
|
||||||
# CONFIG_BTRFS_ASSERT is not set
|
|
||||||
# CONFIG_BTRFS_EXPERIMENTAL is not set
|
|
||||||
# CONFIG_BTRFS_FS_REF_VERIFY is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/coda/Kconfig
|
## file: fs/coda/Kconfig
|
||||||
##
|
##
|
||||||
@@ -7050,12 +7112,6 @@ CONFIG_F2FS_UNFAIR_RWSEM=y
|
|||||||
##
|
##
|
||||||
CONFIG_VXFS_FS=m
|
CONFIG_VXFS_FS=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/fuse/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_FUSE_FS=y
|
|
||||||
CONFIG_VIRTIO_FS=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/gfs2/Kconfig
|
## file: fs/gfs2/Kconfig
|
||||||
##
|
##
|
||||||
@@ -7229,11 +7285,6 @@ CONFIG_CIFS_SWN_UPCALL=y
|
|||||||
CONFIG_CIFS_FSCACHE=y
|
CONFIG_CIFS_FSCACHE=y
|
||||||
# CONFIG_CIFS_COMPRESSION is not set
|
# CONFIG_CIFS_COMPRESSION is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/sysv/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_SYSV_FS=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/ubifs/Kconfig
|
## file: fs/ubifs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -7304,7 +7355,6 @@ CONFIG_PM_ADVANCED_DEBUG=y
|
|||||||
# CONFIG_PM_TEST_SUSPEND is not set
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
# CONFIG_DPM_WATCHDOG is not set
|
# CONFIG_DPM_WATCHDOG is not set
|
||||||
# CONFIG_PM_TRACE_RTC is not set
|
# CONFIG_PM_TRACE_RTC is not set
|
||||||
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: kernel/rcu/Kconfig
|
## file: kernel/rcu/Kconfig
|
||||||
@@ -7377,8 +7427,6 @@ CONFIG_TEST_DHRY=m
|
|||||||
# CONFIG_ASYNC_RAID6_TEST is not set
|
# CONFIG_ASYNC_RAID6_TEST is not set
|
||||||
# CONFIG_TEST_HEXDUMP is not set
|
# CONFIG_TEST_HEXDUMP is not set
|
||||||
# CONFIG_TEST_KSTRTOX is not set
|
# CONFIG_TEST_KSTRTOX is not set
|
||||||
# CONFIG_TEST_PRINTF is not set
|
|
||||||
# CONFIG_TEST_SCANF is not set
|
|
||||||
# CONFIG_TEST_BITMAP is not set
|
# CONFIG_TEST_BITMAP is not set
|
||||||
# CONFIG_TEST_UUID is not set
|
# CONFIG_TEST_UUID is not set
|
||||||
# CONFIG_TEST_XARRAY is not set
|
# CONFIG_TEST_XARRAY is not set
|
||||||
@@ -7390,7 +7438,6 @@ CONFIG_TEST_DHRY=m
|
|||||||
# CONFIG_TEST_BITOPS is not set
|
# CONFIG_TEST_BITOPS is not set
|
||||||
# CONFIG_TEST_VMALLOC is not set
|
# CONFIG_TEST_VMALLOC is not set
|
||||||
CONFIG_TEST_BPF=m
|
CONFIG_TEST_BPF=m
|
||||||
CONFIG_TEST_BLACKHOLE_DEV=m
|
|
||||||
# CONFIG_FIND_BIT_BENCHMARK is not set
|
# CONFIG_FIND_BIT_BENCHMARK is not set
|
||||||
CONFIG_TEST_FIRMWARE=m
|
CONFIG_TEST_FIRMWARE=m
|
||||||
# CONFIG_TEST_SYSCTL is not set
|
# CONFIG_TEST_SYSCTL is not set
|
||||||
@@ -7434,12 +7481,9 @@ CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
|
|||||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
||||||
## end choice
|
## end choice
|
||||||
## choice: Default allocator
|
## choice: Default allocator
|
||||||
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
|
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
|
||||||
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED is not set
|
|
||||||
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
|
|
||||||
## end choice
|
## end choice
|
||||||
CONFIG_ZBUD=y
|
CONFIG_ZSMALLOC=y
|
||||||
CONFIG_Z3FOLD_DEPRECATED=m
|
|
||||||
CONFIG_HWPOISON_INJECT=m
|
CONFIG_HWPOISON_INJECT=m
|
||||||
CONFIG_NUMA_EMU=y
|
CONFIG_NUMA_EMU=y
|
||||||
|
|
||||||
@@ -7493,6 +7537,7 @@ CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
|
|||||||
CONFIG_NET_9P=m
|
CONFIG_NET_9P=m
|
||||||
CONFIG_NET_9P_FD=m
|
CONFIG_NET_9P_FD=m
|
||||||
CONFIG_NET_9P_VIRTIO=m
|
CONFIG_NET_9P_VIRTIO=m
|
||||||
|
CONFIG_NET_9P_XEN=m
|
||||||
CONFIG_NET_9P_USBG=m
|
CONFIG_NET_9P_USBG=m
|
||||||
# CONFIG_NET_9P_DEBUG is not set
|
# CONFIG_NET_9P_DEBUG is not set
|
||||||
|
|
||||||
@@ -7581,17 +7626,6 @@ CONFIG_CAN_ISOTP=m
|
|||||||
##
|
##
|
||||||
CONFIG_CAN_J1939=m
|
CONFIG_CAN_J1939=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_IP_DCCP_DEBUG=y
|
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/ccids/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_IP_DCCP_CCID2_DEBUG=y
|
|
||||||
CONFIG_IP_DCCP_CCID3_DEBUG=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/ieee802154/Kconfig
|
## file: net/ieee802154/Kconfig
|
||||||
##
|
##
|
||||||
@@ -7633,8 +7667,25 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
|
|||||||
## end choice
|
## end choice
|
||||||
CONFIG_MAC80211_MESH=y
|
CONFIG_MAC80211_MESH=y
|
||||||
CONFIG_MAC80211_LEDS=y
|
CONFIG_MAC80211_LEDS=y
|
||||||
|
CONFIG_MAC80211_DEBUGFS=y
|
||||||
# CONFIG_MAC80211_MESSAGE_TRACING is not set
|
# CONFIG_MAC80211_MESSAGE_TRACING is not set
|
||||||
# CONFIG_MAC80211_DEBUG_MENU is not set
|
CONFIG_MAC80211_DEBUG_MENU=y
|
||||||
|
# CONFIG_MAC80211_NOINLINE is not set
|
||||||
|
# CONFIG_MAC80211_VERBOSE_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_MLME_DEBUG is not set
|
||||||
|
CONFIG_MAC80211_STA_DEBUG=y
|
||||||
|
CONFIG_MAC80211_HT_DEBUG=y
|
||||||
|
# CONFIG_MAC80211_OCB_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_IBSS_DEBUG is not set
|
||||||
|
CONFIG_MAC80211_PS_DEBUG=y
|
||||||
|
# CONFIG_MAC80211_MPL_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_MPATH_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_MHWMP_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_MESH_SYNC_DEBUG is not set
|
||||||
|
# CONFIG_MAC80211_MESH_CSA_DEBUG is not set
|
||||||
|
CONFIG_MAC80211_MESH_PS_DEBUG=y
|
||||||
|
# CONFIG_MAC80211_TDLS_DEBUG is not set
|
||||||
|
CONFIG_MAC80211_DEBUG_COUNTERS=y
|
||||||
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -7810,8 +7861,8 @@ CONFIG_CFG80211_CERTIFICATION_ONUS=y
|
|||||||
# CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set
|
# CONFIG_CFG80211_REQUIRE_SIGNED_REGDB is not set
|
||||||
# CONFIG_CFG80211_REG_CELLULAR_HINTS is not set
|
# CONFIG_CFG80211_REG_CELLULAR_HINTS is not set
|
||||||
# CONFIG_CFG80211_REG_RELAX_NO_IR is not set
|
# CONFIG_CFG80211_REG_RELAX_NO_IR is not set
|
||||||
CONFIG_CFG80211_DEFAULT_PS=y
|
# CONFIG_CFG80211_DEFAULT_PS is not set
|
||||||
# CONFIG_CFG80211_DEBUGFS is not set
|
CONFIG_CFG80211_DEBUGFS=y
|
||||||
CONFIG_CFG80211_CRDA_SUPPORT=y
|
CONFIG_CFG80211_CRDA_SUPPORT=y
|
||||||
CONFIG_CFG80211_WEXT=y
|
CONFIG_CFG80211_WEXT=y
|
||||||
|
|
||||||
@@ -7843,6 +7894,7 @@ CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING=y
|
|||||||
## file: security/keys/Kconfig
|
## file: security/keys/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_KEYS_REQUEST_CACHE=y
|
CONFIG_KEYS_REQUEST_CACHE=y
|
||||||
|
CONFIG_BIG_KEYS=y
|
||||||
CONFIG_TRUSTED_KEYS=m
|
CONFIG_TRUSTED_KEYS=m
|
||||||
CONFIG_USER_DECRYPTED_DATA=y
|
CONFIG_USER_DECRYPTED_DATA=y
|
||||||
|
|
||||||
@@ -8116,6 +8168,7 @@ CONFIG_SND_SOC_AK5558=m
|
|||||||
CONFIG_SND_SOC_ALC5623=m
|
CONFIG_SND_SOC_ALC5623=m
|
||||||
CONFIG_SND_SOC_AW8738=m
|
CONFIG_SND_SOC_AW8738=m
|
||||||
CONFIG_SND_SOC_AW88395=m
|
CONFIG_SND_SOC_AW88395=m
|
||||||
|
CONFIG_SND_SOC_AW88166=m
|
||||||
CONFIG_SND_SOC_AW88261=m
|
CONFIG_SND_SOC_AW88261=m
|
||||||
CONFIG_SND_SOC_AW88081=m
|
CONFIG_SND_SOC_AW88081=m
|
||||||
CONFIG_SND_SOC_AW87390=m
|
CONFIG_SND_SOC_AW87390=m
|
||||||
@@ -8400,6 +8453,7 @@ CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98927=m
|
|||||||
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_PCM3168A=m
|
||||||
CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
|
CONFIG_SND_SOC_INTEL_AVS_MACH_PROBE=m
|
||||||
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
|
||||||
@@ -8547,6 +8601,11 @@ CONFIG_SND_VIRTIO=m
|
|||||||
CONFIG_SND_X86=y
|
CONFIG_SND_X86=y
|
||||||
CONFIG_HDMI_LPE_AUDIO=m
|
CONFIG_HDMI_LPE_AUDIO=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: sound/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_SND_XEN_FRONTEND=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: unknown
|
## file: unknown
|
||||||
##
|
##
|
||||||
@@ -8565,6 +8624,7 @@ CONFIG_ASYNC_RAID6_RECOV=m
|
|||||||
CONFIG_ATH10K_CE=y
|
CONFIG_ATH10K_CE=y
|
||||||
CONFIG_ATH10K_LEDS=y
|
CONFIG_ATH10K_LEDS=y
|
||||||
CONFIG_ATH9K_COMMON=m
|
CONFIG_ATH9K_COMMON=m
|
||||||
|
CONFIG_ATH9K_COMMON_DEBUG=y
|
||||||
CONFIG_ATH9K_HW=m
|
CONFIG_ATH9K_HW=m
|
||||||
CONFIG_ATH_COMMON=m
|
CONFIG_ATH_COMMON=m
|
||||||
CONFIG_B43LEGACY_DMA=y
|
CONFIG_B43LEGACY_DMA=y
|
||||||
@@ -8591,7 +8651,6 @@ CONFIG_BCMA_BLOCKIO=y
|
|||||||
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
|
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
|
||||||
CONFIG_BCM_NET_PHYLIB=m
|
CONFIG_BCM_NET_PHYLIB=m
|
||||||
CONFIG_BCM_NET_PHYPTP=m
|
CONFIG_BCM_NET_PHYPTP=m
|
||||||
CONFIG_BLK_CGROUP_PUNT_BIO=y
|
|
||||||
CONFIG_BRCMFMAC_PROTO_BCDC=y
|
CONFIG_BRCMFMAC_PROTO_BCDC=y
|
||||||
CONFIG_BRCMFMAC_PROTO_MSGBUF=y
|
CONFIG_BRCMFMAC_PROTO_MSGBUF=y
|
||||||
CONFIG_BRCMSMAC_LEDS=y
|
CONFIG_BRCMSMAC_LEDS=y
|
||||||
@@ -8613,14 +8672,28 @@ CONFIG_CHECK_SIGNATURE=y
|
|||||||
CONFIG_CHELSIO_LIB=m
|
CONFIG_CHELSIO_LIB=m
|
||||||
CONFIG_CLOSURES=y
|
CONFIG_CLOSURES=y
|
||||||
CONFIG_COMPAT_NETLINK_MESSAGES=y
|
CONFIG_COMPAT_NETLINK_MESSAGES=y
|
||||||
|
CONFIG_CRC4=m
|
||||||
|
CONFIG_CRC7=m
|
||||||
|
CONFIG_CRC8=m
|
||||||
|
CONFIG_CRC_CCITT=m
|
||||||
|
CONFIG_CRYPTO_CHACHA20_X86_64=y
|
||||||
CONFIG_CRYPTO_DEV_ATMEL_I2C=m
|
CONFIG_CRYPTO_DEV_ATMEL_I2C=m
|
||||||
CONFIG_CRYPTO_DEV_NITROX=m
|
CONFIG_CRYPTO_DEV_NITROX=m
|
||||||
CONFIG_CRYPTO_DEV_QAT=m
|
CONFIG_CRYPTO_DEV_QAT=m
|
||||||
CONFIG_CRYPTO_LIB_AESCFB=y
|
CONFIG_CRYPTO_LIB_AESCFB=y
|
||||||
CONFIG_CRYPTO_LIB_ARC4=m
|
CONFIG_CRYPTO_LIB_ARC4=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA=y
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=y
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_INTERNAL=y
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305=y
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=y
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_INTERNAL=y
|
||||||
|
CONFIG_CRYPTO_POLY1305_X86_64=y
|
||||||
CONFIG_CXL_PORT=m
|
CONFIG_CXL_PORT=m
|
||||||
CONFIG_DCA=m
|
CONFIG_DCA=m
|
||||||
CONFIG_DELL_WMI_DESCRIPTOR=m
|
CONFIG_DELL_WMI_DESCRIPTOR=m
|
||||||
|
CONFIG_DEV_SYNC_PROBE=m
|
||||||
CONFIG_DMA_DECLARE_COHERENT=y
|
CONFIG_DMA_DECLARE_COHERENT=y
|
||||||
CONFIG_DMA_ENGINE_RAID=y
|
CONFIG_DMA_ENGINE_RAID=y
|
||||||
CONFIG_DMA_OF=y
|
CONFIG_DMA_OF=y
|
||||||
@@ -8650,6 +8723,7 @@ CONFIG_DRM_DISPLAY_HELPER=m
|
|||||||
CONFIG_DRM_EXEC=m
|
CONFIG_DRM_EXEC=m
|
||||||
CONFIG_DRM_GEM_DMA_HELPER=m
|
CONFIG_DRM_GEM_DMA_HELPER=m
|
||||||
CONFIG_DRM_GEM_SHMEM_HELPER=m
|
CONFIG_DRM_GEM_SHMEM_HELPER=m
|
||||||
|
CONFIG_DRM_GPUSVM=m
|
||||||
CONFIG_DRM_GPUVM=m
|
CONFIG_DRM_GPUVM=m
|
||||||
CONFIG_DRM_I915_GVT=y
|
CONFIG_DRM_I915_GVT=y
|
||||||
CONFIG_DRM_KMS_HELPER=m
|
CONFIG_DRM_KMS_HELPER=m
|
||||||
@@ -8664,6 +8738,7 @@ CONFIG_DRM_SUBALLOC_HELPER=m
|
|||||||
CONFIG_DRM_TTM=m
|
CONFIG_DRM_TTM=m
|
||||||
CONFIG_DRM_TTM_HELPER=m
|
CONFIG_DRM_TTM_HELPER=m
|
||||||
CONFIG_DRM_VRAM_HELPER=m
|
CONFIG_DRM_VRAM_HELPER=m
|
||||||
|
CONFIG_DRM_XEN=y
|
||||||
CONFIG_DTC=y
|
CONFIG_DTC=y
|
||||||
CONFIG_FB_BACKLIGHT=y
|
CONFIG_FB_BACKLIGHT=y
|
||||||
CONFIG_FB_DMAMEM_HELPERS=y
|
CONFIG_FB_DMAMEM_HELPERS=y
|
||||||
@@ -8717,7 +8792,6 @@ CONFIG_IOMMUFD_DRIVER_CORE=y
|
|||||||
CONFIG_IOMMU_HELPER=y
|
CONFIG_IOMMU_HELPER=y
|
||||||
CONFIG_IPMI_DMI_DECODE=y
|
CONFIG_IPMI_DMI_DECODE=y
|
||||||
CONFIG_IPMI_PLAT_DATA=y
|
CONFIG_IPMI_PLAT_DATA=y
|
||||||
CONFIG_IP_DCCP_TFRC_DEBUG=y
|
|
||||||
CONFIG_IRQCHIP=y
|
CONFIG_IRQCHIP=y
|
||||||
CONFIG_IRQ_SIM=y
|
CONFIG_IRQ_SIM=y
|
||||||
CONFIG_ISA_BUS_API=y
|
CONFIG_ISA_BUS_API=y
|
||||||
@@ -8740,6 +8814,7 @@ CONFIG_LZ4_COMPRESS=y
|
|||||||
CONFIG_MAC80211_HAS_RC=y
|
CONFIG_MAC80211_HAS_RC=y
|
||||||
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
|
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
|
||||||
CONFIG_MADERA_IRQ=m
|
CONFIG_MADERA_IRQ=m
|
||||||
|
CONFIG_MAPPING_DIRTY_HELPERS=y
|
||||||
CONFIG_MCTP_FLOWS=y
|
CONFIG_MCTP_FLOWS=y
|
||||||
CONFIG_MDIO=m
|
CONFIG_MDIO=m
|
||||||
CONFIG_MDIO_BUS_MUX=m
|
CONFIG_MDIO_BUS_MUX=m
|
||||||
@@ -8834,6 +8909,7 @@ CONFIG_PCIE_DW_PLAT=y
|
|||||||
CONFIG_PCIE_PLDA_HOST=y
|
CONFIG_PCIE_PLDA_HOST=y
|
||||||
CONFIG_PCI_ECAM=y
|
CONFIG_PCI_ECAM=y
|
||||||
CONFIG_PCI_HOST_COMMON=y
|
CONFIG_PCI_HOST_COMMON=y
|
||||||
|
CONFIG_PCI_PWRCTL=m
|
||||||
CONFIG_PCS_LYNX=m
|
CONFIG_PCS_LYNX=m
|
||||||
CONFIG_PHYLIB_LEDS=y
|
CONFIG_PHYLIB_LEDS=y
|
||||||
CONFIG_PINCTRL_CS47L15=y
|
CONFIG_PINCTRL_CS47L15=y
|
||||||
@@ -8857,7 +8933,6 @@ CONFIG_PPPOE_HASH_BITS=4
|
|||||||
CONFIG_PREEMPTION=y
|
CONFIG_PREEMPTION=y
|
||||||
CONFIG_PREEMPT_BUILD=y
|
CONFIG_PREEMPT_BUILD=y
|
||||||
CONFIG_PREEMPT_COUNT=y
|
CONFIG_PREEMPT_COUNT=y
|
||||||
CONFIG_PREEMPT_RCU=y
|
|
||||||
CONFIG_PWM_DWC_CORE=m
|
CONFIG_PWM_DWC_CORE=m
|
||||||
CONFIG_PWM_LPSS=m
|
CONFIG_PWM_LPSS=m
|
||||||
CONFIG_QCA7000=m
|
CONFIG_QCA7000=m
|
||||||
@@ -8866,10 +8941,8 @@ CONFIG_QCOM_PDR_HELPERS=m
|
|||||||
CONFIG_QCOM_PDR_MSG=m
|
CONFIG_QCOM_PDR_MSG=m
|
||||||
CONFIG_QCOM_QMI_HELPERS=m
|
CONFIG_QCOM_QMI_HELPERS=m
|
||||||
CONFIG_QTNFMAC=m
|
CONFIG_QTNFMAC=m
|
||||||
CONFIG_R8169_LEDS=y
|
|
||||||
CONFIG_RAID6_PQ=m
|
CONFIG_RAID6_PQ=m
|
||||||
CONFIG_RATIONAL=y
|
CONFIG_RATIONAL=y
|
||||||
CONFIG_REALTEK_PHY_HWMON=y
|
|
||||||
CONFIG_REBOOT_MODE=m
|
CONFIG_REBOOT_MODE=m
|
||||||
CONFIG_REED_SOLOMON_DEC16=y
|
CONFIG_REED_SOLOMON_DEC16=y
|
||||||
CONFIG_REGMAP=y
|
CONFIG_REGMAP=y
|
||||||
@@ -8914,6 +8987,7 @@ CONFIG_RTW88_8703B=m
|
|||||||
CONFIG_RTW88_8723D=m
|
CONFIG_RTW88_8723D=m
|
||||||
CONFIG_RTW88_8723X=m
|
CONFIG_RTW88_8723X=m
|
||||||
CONFIG_RTW88_8812A=m
|
CONFIG_RTW88_8812A=m
|
||||||
|
CONFIG_RTW88_8814A=m
|
||||||
CONFIG_RTW88_8821A=m
|
CONFIG_RTW88_8821A=m
|
||||||
CONFIG_RTW88_8821C=m
|
CONFIG_RTW88_8821C=m
|
||||||
CONFIG_RTW88_8822B=m
|
CONFIG_RTW88_8822B=m
|
||||||
@@ -9001,6 +9075,7 @@ CONFIG_SND_SOC_ADAU1761=m
|
|||||||
CONFIG_SND_SOC_ADAU17X1=m
|
CONFIG_SND_SOC_ADAU17X1=m
|
||||||
CONFIG_SND_SOC_ADAU7118=m
|
CONFIG_SND_SOC_ADAU7118=m
|
||||||
CONFIG_SND_SOC_ADAU_UTILS=m
|
CONFIG_SND_SOC_ADAU_UTILS=m
|
||||||
|
CONFIG_SND_SOC_AMD_ACPI_MACH=m
|
||||||
CONFIG_SND_SOC_AMD_ACP_I2S=m
|
CONFIG_SND_SOC_AMD_ACP_I2S=m
|
||||||
CONFIG_SND_SOC_AMD_ACP_LEGACY_COMMON=m
|
CONFIG_SND_SOC_AMD_ACP_LEGACY_COMMON=m
|
||||||
CONFIG_SND_SOC_AMD_ACP_PCM=m
|
CONFIG_SND_SOC_AMD_ACP_PCM=m
|
||||||
@@ -9124,6 +9199,7 @@ CONFIG_SND_SOC_WM5102=m
|
|||||||
CONFIG_SND_SOC_WM8731=m
|
CONFIG_SND_SOC_WM8731=m
|
||||||
CONFIG_SND_SOC_WM8804=m
|
CONFIG_SND_SOC_WM8804=m
|
||||||
CONFIG_SND_SOC_WM_ADSP=m
|
CONFIG_SND_SOC_WM_ADSP=m
|
||||||
|
CONFIG_SND_SOF_SOF_HDA_SDW_BPT=m
|
||||||
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
|
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
|
||||||
CONFIG_SND_SYNTH_EMUX=m
|
CONFIG_SND_SYNTH_EMUX=m
|
||||||
CONFIG_SND_TIMER=m
|
CONFIG_SND_TIMER=m
|
||||||
@@ -9139,6 +9215,7 @@ CONFIG_SOUND_OSS_CORE=y
|
|||||||
CONFIG_SPI_DYNAMIC=y
|
CONFIG_SPI_DYNAMIC=y
|
||||||
CONFIG_SPI_FSL_LIB=m
|
CONFIG_SPI_FSL_LIB=m
|
||||||
CONFIG_SPI_MASTER=y
|
CONFIG_SPI_MASTER=y
|
||||||
|
CONFIG_SPI_OFFLOAD=y
|
||||||
CONFIG_SPI_PXA2XX_PCI=m
|
CONFIG_SPI_PXA2XX_PCI=m
|
||||||
CONFIG_SSB_B43_PCI_BRIDGE=y
|
CONFIG_SSB_B43_PCI_BRIDGE=y
|
||||||
CONFIG_SSB_BLOCKIO=y
|
CONFIG_SSB_BLOCKIO=y
|
||||||
@@ -9217,9 +9294,11 @@ CONFIG_WILC1000=m
|
|||||||
CONFIG_WIRELESS_EXT=y
|
CONFIG_WIRELESS_EXT=y
|
||||||
CONFIG_X86_ESPFIX64=y
|
CONFIG_X86_ESPFIX64=y
|
||||||
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
CONFIG_X86_PMEM_LEGACY_DEVICE=y
|
||||||
|
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
|
||||||
|
CONFIG_XEN_GRANT_DMA_IOMMU=y
|
||||||
|
CONFIG_XEN_PV_DOM0=y
|
||||||
CONFIG_XILLYBUS_CLASS=m
|
CONFIG_XILLYBUS_CLASS=m
|
||||||
CONFIG_Z3FOLD=m
|
|
||||||
CONFIG_ZPOOL=y
|
CONFIG_ZPOOL=y
|
||||||
CONFIG_ZSTD_COMPRESS=y
|
CONFIG_ZSTD_COMPRESS=y
|
||||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
|
||||||
CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
|
CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
|
||||||
|
252
debian/config/amd64/config.vm
vendored
252
debian/config/amd64/config.vm
vendored
@@ -11,22 +11,11 @@
|
|||||||
CONFIG_X86_EXTENDED_PLATFORM=y
|
CONFIG_X86_EXTENDED_PLATFORM=y
|
||||||
# CONFIG_X86_NUMACHIP is not set
|
# CONFIG_X86_NUMACHIP is not set
|
||||||
# CONFIG_X86_VSMP is not set
|
# CONFIG_X86_VSMP is not set
|
||||||
CONFIG_X86_GOLDFISH=y
|
|
||||||
# CONFIG_X86_INTEL_MID is not set
|
# CONFIG_X86_INTEL_MID is not set
|
||||||
|
CONFIG_X86_GOLDFISH=y
|
||||||
# CONFIG_X86_INTEL_LPSS is not set
|
# CONFIG_X86_INTEL_LPSS is not set
|
||||||
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
||||||
CONFIG_IOSF_MBI=m
|
CONFIG_IOSF_MBI=m
|
||||||
CONFIG_HYPERVISOR_GUEST=y
|
|
||||||
CONFIG_PARAVIRT=y
|
|
||||||
# CONFIG_PARAVIRT_DEBUG is not set
|
|
||||||
CONFIG_PARAVIRT_SPINLOCKS=y
|
|
||||||
CONFIG_KVM_GUEST=y
|
|
||||||
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
|
|
||||||
CONFIG_PVH=y
|
|
||||||
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
|
||||||
CONFIG_JAILHOUSE_GUEST=y
|
|
||||||
CONFIG_ACRN_GUEST=y
|
|
||||||
CONFIG_INTEL_TDX_GUEST=y
|
|
||||||
# CONFIG_GART_IOMMU is not set
|
# CONFIG_GART_IOMMU is not set
|
||||||
CONFIG_NR_CPUS=256
|
CONFIG_NR_CPUS=256
|
||||||
# CONFIG_X86_MCE_INJECT is not set
|
# CONFIG_X86_MCE_INJECT is not set
|
||||||
@@ -68,14 +57,7 @@ CONFIG_IO_DELAY_NONE=y
|
|||||||
##
|
##
|
||||||
## file: arch/x86/xen/Kconfig
|
## file: arch/x86/xen/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN=y
|
|
||||||
CONFIG_XEN_PV=y
|
|
||||||
CONFIG_XEN_512GB=y
|
|
||||||
CONFIG_XEN_PVHVM_GUEST=y
|
|
||||||
# CONFIG_XEN_DEBUG_FS is not set
|
|
||||||
CONFIG_XEN_PVH=y
|
|
||||||
# CONFIG_XEN_DOM0 is not set
|
# CONFIG_XEN_DOM0 is not set
|
||||||
CONFIG_XEN_PV_MSR_SAFE=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: block/Kconfig
|
## file: block/Kconfig
|
||||||
@@ -115,8 +97,6 @@ CONFIG_XEN_PV_MSR_SAFE=y
|
|||||||
## file: crypto/Kconfig
|
## file: crypto/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CRYPTO_ECDH=m
|
CONFIG_CRYPTO_ECDH=m
|
||||||
CONFIG_CRYPTO_CTS=m
|
|
||||||
CONFIG_CRYPTO_XTS=m
|
|
||||||
CONFIG_CRYPTO_DEFLATE=m
|
CONFIG_CRYPTO_DEFLATE=m
|
||||||
CONFIG_CRYPTO_842=m
|
CONFIG_CRYPTO_842=m
|
||||||
CONFIG_CRYPTO_LZ4=m
|
CONFIG_CRYPTO_LZ4=m
|
||||||
@@ -166,7 +146,8 @@ CONFIG_ANDROID_BINDER_DEVICES="binder"
|
|||||||
CONFIG_ATA=m
|
CONFIG_ATA=m
|
||||||
# CONFIG_ATA_ACPI is not set
|
# CONFIG_ATA_ACPI is not set
|
||||||
# CONFIG_SATA_PMP is not set
|
# CONFIG_SATA_PMP is not set
|
||||||
# CONFIG_SATA_AHCI is not set
|
CONFIG_SATA_AHCI=m
|
||||||
|
CONFIG_SATA_MOBILE_LPM_POLICY=0
|
||||||
# CONFIG_SATA_AHCI_PLATFORM is not set
|
# CONFIG_SATA_AHCI_PLATFORM is not set
|
||||||
# CONFIG_AHCI_DWC is not set
|
# CONFIG_AHCI_DWC is not set
|
||||||
# CONFIG_SATA_ACARD_AHCI is not set
|
# CONFIG_SATA_ACARD_AHCI is not set
|
||||||
@@ -235,8 +216,6 @@ CONFIG_ATA=m
|
|||||||
## file: drivers/block/Kconfig
|
## file: drivers/block/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_ATA_OVER_ETH is not set
|
# CONFIG_ATA_OVER_ETH is not set
|
||||||
CONFIG_XEN_BLKDEV_FRONTEND=m
|
|
||||||
CONFIG_XEN_BLKDEV_BACKEND=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/block/mtip32xx/Kconfig
|
## file: drivers/block/mtip32xx/Kconfig
|
||||||
@@ -293,7 +272,6 @@ CONFIG_TCG_TIS_I2C=m
|
|||||||
# CONFIG_TCG_NSC is not set
|
# CONFIG_TCG_NSC is not set
|
||||||
# CONFIG_TCG_ATMEL is not set
|
# CONFIG_TCG_ATMEL is not set
|
||||||
# CONFIG_TCG_INFINEON is not set
|
# CONFIG_TCG_INFINEON is not set
|
||||||
CONFIG_TCG_XEN=m
|
|
||||||
CONFIG_TCG_CRB=m
|
CONFIG_TCG_CRB=m
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -338,12 +316,6 @@ CONFIG_INTERRUPT_CNT=m
|
|||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
|
||||||
## end choice
|
## end choice
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/cpuidle/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
|
|
||||||
CONFIG_HALTPOLL_CPUIDLE=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/crypto/Kconfig
|
## file: drivers/crypto/Kconfig
|
||||||
##
|
##
|
||||||
@@ -379,6 +351,7 @@ CONFIG_HALTPOLL_CPUIDLE=y
|
|||||||
##
|
##
|
||||||
CONFIG_CXL_BUS=y
|
CONFIG_CXL_BUS=y
|
||||||
# CONFIG_CXL_MEM_RAW_COMMANDS is not set
|
# CONFIG_CXL_MEM_RAW_COMMANDS is not set
|
||||||
|
# CONFIG_CXL_FEATURES is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/devfreq/Kconfig
|
## file: drivers/devfreq/Kconfig
|
||||||
@@ -454,6 +427,9 @@ CONFIG_EDAC_LEGACY_SYSFS=y
|
|||||||
# CONFIG_EDAC_DEBUG is not set
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
CONFIG_EDAC_DECODE_MCE=y
|
CONFIG_EDAC_DECODE_MCE=y
|
||||||
CONFIG_EDAC_GHES=y
|
CONFIG_EDAC_GHES=y
|
||||||
|
# CONFIG_EDAC_SCRUB is not set
|
||||||
|
# CONFIG_EDAC_ECS is not set
|
||||||
|
# CONFIG_EDAC_MEM_REPAIR is not set
|
||||||
# CONFIG_EDAC_AMD64 is not set
|
# CONFIG_EDAC_AMD64 is not set
|
||||||
# CONFIG_EDAC_E752X is not set
|
# CONFIG_EDAC_E752X is not set
|
||||||
# CONFIG_EDAC_I82975X is not set
|
# CONFIG_EDAC_I82975X is not set
|
||||||
@@ -511,6 +487,11 @@ CONFIG_GOOGLE_COREBOOT_TABLE=m
|
|||||||
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
|
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
|
||||||
CONFIG_GOOGLE_VPD=m
|
CONFIG_GOOGLE_VPD=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/fwctl/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_FWCTL is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gnss/Kconfig
|
## file: drivers/gnss/Kconfig
|
||||||
##
|
##
|
||||||
@@ -589,6 +570,11 @@ CONFIG_DRM_HYPERV=m
|
|||||||
##
|
##
|
||||||
# CONFIG_DRM_AST is not set
|
# CONFIG_DRM_AST is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/gpu/drm/bridge/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_DRM_I2C_NXP_TDA998X is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/bridge/analogix/Kconfig
|
## file: drivers/gpu/drm/bridge/analogix/Kconfig
|
||||||
##
|
##
|
||||||
@@ -625,14 +611,6 @@ CONFIG_DRM_CLIENT_DEFAULT_FBDEV=y
|
|||||||
##
|
##
|
||||||
# CONFIG_DRM_HISI_HIBMC is not set
|
# CONFIG_DRM_HISI_HIBMC is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/gpu/drm/i2c/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_DRM_I2C_CH7006 is not set
|
|
||||||
# CONFIG_DRM_I2C_SIL164 is not set
|
|
||||||
# CONFIG_DRM_I2C_NXP_TDA998X is not set
|
|
||||||
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/i915/Kconfig
|
## file: drivers/gpu/drm/i915/Kconfig
|
||||||
##
|
##
|
||||||
@@ -666,6 +644,7 @@ CONFIG_DRM_QXL=m
|
|||||||
##
|
##
|
||||||
## file: drivers/gpu/drm/tiny/Kconfig
|
## file: drivers/gpu/drm/tiny/Kconfig
|
||||||
##
|
##
|
||||||
|
# CONFIG_DRM_APPLETBDRM is not set
|
||||||
CONFIG_DRM_BOCHS=m
|
CONFIG_DRM_BOCHS=m
|
||||||
CONFIG_DRM_CIRRUS_QEMU=m
|
CONFIG_DRM_CIRRUS_QEMU=m
|
||||||
# CONFIG_DRM_GM12U320 is not set
|
# CONFIG_DRM_GM12U320 is not set
|
||||||
@@ -808,6 +787,7 @@ CONFIG_HID_HYPERV_MOUSE=m
|
|||||||
# CONFIG_HID_TOPRE is not set
|
# CONFIG_HID_TOPRE is not set
|
||||||
# CONFIG_HID_THRUSTMASTER is not set
|
# CONFIG_HID_THRUSTMASTER is not set
|
||||||
# CONFIG_HID_UDRAW_PS3 is not set
|
# CONFIG_HID_UDRAW_PS3 is not set
|
||||||
|
# CONFIG_HID_UNIVERSAL_PIDFF is not set
|
||||||
# CONFIG_HID_WACOM is not set
|
# CONFIG_HID_WACOM is not set
|
||||||
# CONFIG_HID_XINMO is not set
|
# CONFIG_HID_XINMO is not set
|
||||||
# CONFIG_HID_ZEROPLUS is not set
|
# CONFIG_HID_ZEROPLUS is not set
|
||||||
@@ -872,10 +852,7 @@ CONFIG_HSI_CHAR=m
|
|||||||
##
|
##
|
||||||
## file: drivers/hv/Kconfig
|
## file: drivers/hv/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_HYPERV=m
|
CONFIG_MSHV_ROOT=m
|
||||||
# CONFIG_HYPERV_VTL_MODE is not set
|
|
||||||
CONFIG_HYPERV_UTILS=m
|
|
||||||
CONFIG_HYPERV_BALLOON=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/hwmon/Kconfig
|
## file: drivers/hwmon/Kconfig
|
||||||
@@ -928,6 +905,7 @@ CONFIG_HWMON=y
|
|||||||
# CONFIG_SENSORS_G762 is not set
|
# CONFIG_SENSORS_G762 is not set
|
||||||
# CONFIG_SENSORS_HIH6130 is not set
|
# CONFIG_SENSORS_HIH6130 is not set
|
||||||
# CONFIG_SENSORS_HS3001 is not set
|
# CONFIG_SENSORS_HS3001 is not set
|
||||||
|
# CONFIG_SENSORS_HTU31 is not set
|
||||||
# CONFIG_SENSORS_I5500 is not set
|
# CONFIG_SENSORS_I5500 is not set
|
||||||
# CONFIG_SENSORS_CORETEMP is not set
|
# CONFIG_SENSORS_CORETEMP is not set
|
||||||
# CONFIG_SENSORS_ISL28022 is not set
|
# CONFIG_SENSORS_ISL28022 is not set
|
||||||
@@ -1073,6 +1051,7 @@ CONFIG_SENSORS_PMBUS=m
|
|||||||
# CONFIG_SENSORS_DELTA_AHE50DC_FAN is not set
|
# CONFIG_SENSORS_DELTA_AHE50DC_FAN is not set
|
||||||
# CONFIG_SENSORS_FSP_3Y is not set
|
# CONFIG_SENSORS_FSP_3Y is not set
|
||||||
# CONFIG_SENSORS_DPS920AB is not set
|
# CONFIG_SENSORS_DPS920AB is not set
|
||||||
|
# CONFIG_SENSORS_INA233 is not set
|
||||||
# CONFIG_SENSORS_INSPUR_IPSPS is not set
|
# CONFIG_SENSORS_INSPUR_IPSPS is not set
|
||||||
# CONFIG_SENSORS_IR35221 is not set
|
# CONFIG_SENSORS_IR35221 is not set
|
||||||
# CONFIG_SENSORS_IR36021 is not set
|
# CONFIG_SENSORS_IR36021 is not set
|
||||||
@@ -1455,7 +1434,6 @@ CONFIG_SERIO_PCIPS2=m
|
|||||||
# CONFIG_SERIO_ALTERA_PS2 is not set
|
# CONFIG_SERIO_ALTERA_PS2 is not set
|
||||||
# CONFIG_SERIO_PS2MULT is not set
|
# CONFIG_SERIO_PS2MULT is not set
|
||||||
# CONFIG_SERIO_ARC_PS2 is not set
|
# CONFIG_SERIO_ARC_PS2 is not set
|
||||||
CONFIG_HYPERV_KEYBOARD=m
|
|
||||||
CONFIG_SERIO_GPIO_PS2=m
|
CONFIG_SERIO_GPIO_PS2=m
|
||||||
CONFIG_USERIO=m
|
CONFIG_USERIO=m
|
||||||
|
|
||||||
@@ -1560,12 +1538,6 @@ CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
|
|||||||
##
|
##
|
||||||
# CONFIG_INTERCONNECT is not set
|
# CONFIG_INTERCONNECT is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/iommu/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_IOMMU=y
|
|
||||||
CONFIG_VIRTIO_IOMMU=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/iommu/iommufd/Kconfig
|
## file: drivers/iommu/iommufd/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1672,6 +1644,7 @@ CONFIG_MFD_INTEL_PMC_BXT=m
|
|||||||
# CONFIG_MFD_MAX14577 is not set
|
# CONFIG_MFD_MAX14577 is not set
|
||||||
# CONFIG_MFD_MAX77541 is not set
|
# CONFIG_MFD_MAX77541 is not set
|
||||||
# CONFIG_MFD_MAX77693 is not set
|
# CONFIG_MFD_MAX77693 is not set
|
||||||
|
# CONFIG_MFD_MAX77705 is not set
|
||||||
# CONFIG_MFD_MAX77843 is not set
|
# CONFIG_MFD_MAX77843 is not set
|
||||||
# CONFIG_MFD_MAX8907 is not set
|
# CONFIG_MFD_MAX8907 is not set
|
||||||
# CONFIG_MFD_MAX8925 is not set
|
# CONFIG_MFD_MAX8925 is not set
|
||||||
@@ -1683,7 +1656,6 @@ CONFIG_MFD_INTEL_PMC_BXT=m
|
|||||||
# CONFIG_MFD_MENF21BMC is not set
|
# CONFIG_MFD_MENF21BMC is not set
|
||||||
# CONFIG_MFD_VIPERBOARD is not set
|
# CONFIG_MFD_VIPERBOARD is not set
|
||||||
# CONFIG_MFD_RETU is not set
|
# CONFIG_MFD_RETU is not set
|
||||||
# CONFIG_MFD_PCF50633 is not set
|
|
||||||
# CONFIG_MFD_SY7636A is not set
|
# CONFIG_MFD_SY7636A is not set
|
||||||
# CONFIG_MFD_RDC321X is not set
|
# CONFIG_MFD_RDC321X is not set
|
||||||
# CONFIG_MFD_RT4831 is not set
|
# CONFIG_MFD_RT4831 is not set
|
||||||
@@ -1744,7 +1716,6 @@ CONFIG_MFD_INTEL_PMC_BXT=m
|
|||||||
# CONFIG_SENSORS_APDS990X is not set
|
# CONFIG_SENSORS_APDS990X is not set
|
||||||
# CONFIG_HMC6352 is not set
|
# CONFIG_HMC6352 is not set
|
||||||
# CONFIG_DS1682 is not set
|
# CONFIG_DS1682 is not set
|
||||||
CONFIG_VMWARE_BALLOON=m
|
|
||||||
# CONFIG_SRAM is not set
|
# CONFIG_SRAM is not set
|
||||||
# CONFIG_DW_XDATA_PCIE is not set
|
# CONFIG_DW_XDATA_PCIE is not set
|
||||||
# CONFIG_XILINX_SDFEC is not set
|
# CONFIG_XILINX_SDFEC is not set
|
||||||
@@ -1824,8 +1795,6 @@ CONFIG_EEPROM_AT24=m
|
|||||||
##
|
##
|
||||||
## file: drivers/net/Kconfig
|
## file: drivers/net/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN_NETDEV_FRONTEND=m
|
|
||||||
CONFIG_XEN_NETDEV_BACKEND=m
|
|
||||||
# CONFIG_FUJITSU_ES is not set
|
# CONFIG_FUJITSU_ES is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -2043,11 +2012,6 @@ CONFIG_FBNIC=m
|
|||||||
##
|
##
|
||||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/net/ethernet/microsoft/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_MICROSOFT_MANA=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/ethernet/mscc/Kconfig
|
## file: drivers/net/ethernet/mscc/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2213,16 +2177,12 @@ CONFIG_MICROSOFT_MANA=m
|
|||||||
##
|
##
|
||||||
# CONFIG_NET_VENDOR_XILINX is not set
|
# CONFIG_NET_VENDOR_XILINX is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/net/hyperv/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_NET=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/mctp/Kconfig
|
## file: drivers/net/mctp/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_MCTP_SERIAL=m
|
CONFIG_MCTP_SERIAL=m
|
||||||
CONFIG_MCTP_TRANSPORT_I2C=m
|
CONFIG_MCTP_TRANSPORT_I2C=m
|
||||||
|
CONFIG_MCTP_TRANSPORT_USB=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/mdio/Kconfig
|
## file: drivers/net/mdio/Kconfig
|
||||||
@@ -2400,15 +2360,12 @@ CONFIG_NVME_TARGET_FC=m
|
|||||||
##
|
##
|
||||||
## file: drivers/pci/Kconfig
|
## file: drivers/pci/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_XEN_PCIDEV_FRONTEND=m
|
|
||||||
CONFIG_PCIE_TPH=y
|
CONFIG_PCIE_TPH=y
|
||||||
CONFIG_PCI_HYPERV=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/controller/Kconfig
|
## file: drivers/pci/controller/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_VMD is not set
|
# CONFIG_VMD is not set
|
||||||
CONFIG_PCI_HYPERV_INTERFACE=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/controller/dwc/Kconfig
|
## file: drivers/pci/controller/dwc/Kconfig
|
||||||
@@ -2433,6 +2390,11 @@ CONFIG_PCIEASPM_DEFAULT=y
|
|||||||
# CONFIG_PCIEASPM_POWERSAVE is not set
|
# CONFIG_PCIEASPM_POWERSAVE is not set
|
||||||
## end choice
|
## end choice
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pci/pwrctrl/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_PCI_PWRCTL_SLOT is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/switch/Kconfig
|
## file: drivers/pci/switch/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2503,6 +2465,7 @@ CONFIG_WMI_BMOF=m
|
|||||||
# CONFIG_GPD_POCKET_FAN is not set
|
# CONFIG_GPD_POCKET_FAN is not set
|
||||||
# CONFIG_WIRELESS_HOTKEY is not set
|
# CONFIG_WIRELESS_HOTKEY is not set
|
||||||
# CONFIG_IBM_RTL is not set
|
# CONFIG_IBM_RTL is not set
|
||||||
|
# CONFIG_LENOVO_WMI_HOTKEY_UTILITIES is not set
|
||||||
# CONFIG_SENSORS_HDAPS is not set
|
# CONFIG_SENSORS_HDAPS is not set
|
||||||
# CONFIG_THINKPAD_LMI is not set
|
# CONFIG_THINKPAD_LMI is not set
|
||||||
CONFIG_ACPI_QUICKSTART=m
|
CONFIG_ACPI_QUICKSTART=m
|
||||||
@@ -2516,7 +2479,6 @@ CONFIG_MSI_WMI_PLATFORM=m
|
|||||||
# CONFIG_ACPI_CMPC is not set
|
# CONFIG_ACPI_CMPC is not set
|
||||||
# CONFIG_TOPSTAR_LAPTOP is not set
|
# CONFIG_TOPSTAR_LAPTOP is not set
|
||||||
CONFIG_SERIAL_MULTI_INSTANTIATE=m
|
CONFIG_SERIAL_MULTI_INSTANTIATE=m
|
||||||
# CONFIG_MLX_PLATFORM is not set
|
|
||||||
# CONFIG_INSPUR_PLATFORM_PROFILE is not set
|
# CONFIG_INSPUR_PLATFORM_PROFILE is not set
|
||||||
# CONFIG_LENOVO_WMI_CAMERA is not set
|
# CONFIG_LENOVO_WMI_CAMERA is not set
|
||||||
# CONFIG_INTEL_IPS is not set
|
# CONFIG_INTEL_IPS is not set
|
||||||
@@ -2651,7 +2613,6 @@ CONFIG_CHARGER_GPIO=m
|
|||||||
CONFIG_BATTERY_GOLDFISH=m
|
CONFIG_BATTERY_GOLDFISH=m
|
||||||
# CONFIG_BATTERY_RT5033 is not set
|
# CONFIG_BATTERY_RT5033 is not set
|
||||||
# CONFIG_CHARGER_RT9455 is not set
|
# CONFIG_CHARGER_RT9455 is not set
|
||||||
# CONFIG_FUEL_GAUGE_STC3117 is not set
|
|
||||||
# CONFIG_CHARGER_BD99954 is not set
|
# CONFIG_CHARGER_BD99954 is not set
|
||||||
# CONFIG_BATTERY_UG3105 is not set
|
# CONFIG_BATTERY_UG3105 is not set
|
||||||
# CONFIG_FUEL_GAUGE_MM8013 is not set
|
# CONFIG_FUEL_GAUGE_MM8013 is not set
|
||||||
@@ -2666,16 +2627,19 @@ CONFIG_BATTERY_GOLDFISH=m
|
|||||||
##
|
##
|
||||||
CONFIG_PPS=m
|
CONFIG_PPS=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pps/generators/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_PPS_GENERATOR_TIO=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ptp/Kconfig
|
## file: drivers/ptp/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_DP83640_PHY is not set
|
# CONFIG_DP83640_PHY is not set
|
||||||
# CONFIG_PTP_1588_CLOCK_INES is not set
|
# CONFIG_PTP_1588_CLOCK_INES is not set
|
||||||
CONFIG_PTP_1588_CLOCK_KVM=m
|
|
||||||
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
|
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
|
||||||
# CONFIG_PTP_1588_CLOCK_IDTCM is not set
|
# CONFIG_PTP_1588_CLOCK_IDTCM is not set
|
||||||
# CONFIG_PTP_1588_CLOCK_FC3W is not set
|
# CONFIG_PTP_1588_CLOCK_FC3W is not set
|
||||||
CONFIG_PTP_1588_CLOCK_VMW=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pwm/Kconfig
|
## file: drivers/pwm/Kconfig
|
||||||
@@ -2770,8 +2734,6 @@ CONFIG_SCSI_FC_ATTRS=m
|
|||||||
CONFIG_SCSI_SRP_ATTRS=m
|
CONFIG_SCSI_SRP_ATTRS=m
|
||||||
CONFIG_SCSI_BUSLOGIC=m
|
CONFIG_SCSI_BUSLOGIC=m
|
||||||
# CONFIG_SCSI_FLASHPOINT is not set
|
# CONFIG_SCSI_FLASHPOINT is not set
|
||||||
CONFIG_XEN_SCSI_FRONTEND=m
|
|
||||||
CONFIG_HYPERV_STORAGE=m
|
|
||||||
# CONFIG_LIBFC is not set
|
# CONFIG_LIBFC is not set
|
||||||
CONFIG_SCSI_IPR=m
|
CONFIG_SCSI_IPR=m
|
||||||
# CONFIG_SCSI_IPR_TRACE is not set
|
# CONFIG_SCSI_IPR_TRACE is not set
|
||||||
@@ -2900,12 +2862,6 @@ CONFIG_GOLDFISH_TTY=m
|
|||||||
# CONFIG_N_GSM is not set
|
# CONFIG_N_GSM is not set
|
||||||
# CONFIG_NOZOMI is not set
|
# CONFIG_NOZOMI is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/tty/hvc/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HVC_XEN=y
|
|
||||||
CONFIG_HVC_XEN_FRONTEND=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/tty/serial/Kconfig
|
## file: drivers/tty/serial/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2931,6 +2887,7 @@ CONFIG_HVC_XEN_FRONTEND=y
|
|||||||
# CONFIG_SERIAL_8250_RSA is not set
|
# CONFIG_SERIAL_8250_RSA is not set
|
||||||
# CONFIG_SERIAL_8250_RT288X is not set
|
# CONFIG_SERIAL_8250_RT288X is not set
|
||||||
# CONFIG_SERIAL_8250_MID is not set
|
# CONFIG_SERIAL_8250_MID is not set
|
||||||
|
# CONFIG_SERIAL_8250_NI is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ufs/Kconfig
|
## file: drivers/ufs/Kconfig
|
||||||
@@ -2945,7 +2902,6 @@ CONFIG_HVC_XEN_FRONTEND=y
|
|||||||
# CONFIG_UIO_SERCOS3 is not set
|
# CONFIG_UIO_SERCOS3 is not set
|
||||||
# CONFIG_UIO_NETX is not set
|
# CONFIG_UIO_NETX is not set
|
||||||
# CONFIG_UIO_MF624 is not set
|
# CONFIG_UIO_MF624 is not set
|
||||||
CONFIG_UIO_HV_GENERIC=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/usb/Kconfig
|
## file: drivers/usb/Kconfig
|
||||||
@@ -3202,34 +3158,17 @@ CONFIG_FB_UVESA=m
|
|||||||
# CONFIG_FB_SMSCUFX is not set
|
# CONFIG_FB_SMSCUFX is not set
|
||||||
# CONFIG_FB_UDL is not set
|
# CONFIG_FB_UDL is not set
|
||||||
CONFIG_FB_GOLDFISH=m
|
CONFIG_FB_GOLDFISH=m
|
||||||
CONFIG_XEN_FBDEV_FRONTEND=y
|
|
||||||
CONFIG_FB_HYPERV=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/video/fbdev/core/Kconfig
|
## file: drivers/video/fbdev/core/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_FB_DEVICE=y
|
CONFIG_FB_DEVICE=y
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virt/acrn/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_ACRN_HSM=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virt/coco/tdx-guest/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_TDX_GUEST_DRIVER=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/virt/vboxguest/Kconfig
|
## file: drivers/virt/vboxguest/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_VBOXGUEST=m
|
CONFIG_VBOXGUEST=m
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/virtio/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/w1/Kconfig
|
## file: drivers/w1/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3243,6 +3182,7 @@ CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m
|
|||||||
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
|
CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=m
|
||||||
CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
||||||
# CONFIG_LENOVO_SE10_WDT is not set
|
# CONFIG_LENOVO_SE10_WDT is not set
|
||||||
|
# CONFIG_LENOVO_SE30_WDT is not set
|
||||||
# CONFIG_XILINX_WATCHDOG is not set
|
# CONFIG_XILINX_WATCHDOG is not set
|
||||||
# CONFIG_ZIIRAVE_WATCHDOG is not set
|
# CONFIG_ZIIRAVE_WATCHDOG is not set
|
||||||
# CONFIG_CADENCE_WATCHDOG is not set
|
# CONFIG_CADENCE_WATCHDOG is not set
|
||||||
@@ -3282,36 +3222,9 @@ CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y
|
|||||||
# CONFIG_NI903X_WDT is not set
|
# CONFIG_NI903X_WDT is not set
|
||||||
# CONFIG_NIC7018_WDT is not set
|
# CONFIG_NIC7018_WDT is not set
|
||||||
# CONFIG_MEN_A21_WDT is not set
|
# CONFIG_MEN_A21_WDT is not set
|
||||||
CONFIG_XEN_WDT=m
|
|
||||||
# CONFIG_PCIPCWATCHDOG is not set
|
# CONFIG_PCIPCWATCHDOG is not set
|
||||||
# CONFIG_USBPCWATCHDOG is not set
|
# CONFIG_USBPCWATCHDOG is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/xen/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_XEN_BALLOON=y
|
|
||||||
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
|
|
||||||
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
|
|
||||||
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
|
|
||||||
CONFIG_XEN_DEV_EVTCHN=m
|
|
||||||
CONFIG_XEN_BACKEND=y
|
|
||||||
CONFIG_XENFS=m
|
|
||||||
CONFIG_XEN_COMPAT_XENFS=y
|
|
||||||
CONFIG_XEN_SYS_HYPERVISOR=y
|
|
||||||
CONFIG_XEN_GNTDEV=m
|
|
||||||
CONFIG_XEN_GNTDEV_DMABUF=y
|
|
||||||
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
|
||||||
CONFIG_XEN_GRANT_DMA_ALLOC=y
|
|
||||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
|
||||||
# CONFIG_XEN_PVCALLS_FRONTEND is not set
|
|
||||||
# CONFIG_XEN_PVCALLS_BACKEND is not set
|
|
||||||
CONFIG_XEN_SCSI_BACKEND=m
|
|
||||||
CONFIG_XEN_PRIVCMD=m
|
|
||||||
CONFIG_XEN_PRIVCMD_EVENTFD=y
|
|
||||||
CONFIG_XEN_UNPOPULATED_ALLOC=y
|
|
||||||
CONFIG_XEN_VIRTIO=y
|
|
||||||
# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/Kconfig
|
## file: fs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3345,17 +3258,6 @@ CONFIG_9P_FS_SECURITY=y
|
|||||||
##
|
##
|
||||||
# CONFIG_BFS_FS is not set
|
# CONFIG_BFS_FS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/btrfs/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_BTRFS_FS=m
|
|
||||||
CONFIG_BTRFS_FS_POSIX_ACL=y
|
|
||||||
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
|
|
||||||
# CONFIG_BTRFS_DEBUG is not set
|
|
||||||
# CONFIG_BTRFS_ASSERT is not set
|
|
||||||
# CONFIG_BTRFS_EXPERIMENTAL is not set
|
|
||||||
# CONFIG_BTRFS_FS_REF_VERIFY is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/coda/Kconfig
|
## file: fs/coda/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3407,12 +3309,6 @@ CONFIG_F2FS_UNFAIR_RWSEM=y
|
|||||||
##
|
##
|
||||||
# CONFIG_VXFS_FS is not set
|
# CONFIG_VXFS_FS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/fuse/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_FUSE_FS=m
|
|
||||||
CONFIG_VIRTIO_FS=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/gfs2/Kconfig
|
## file: fs/gfs2/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3551,11 +3447,6 @@ CONFIG_CIFS_SWN_UPCALL=y
|
|||||||
CONFIG_CIFS_FSCACHE=y
|
CONFIG_CIFS_FSCACHE=y
|
||||||
# CONFIG_CIFS_COMPRESSION is not set
|
# CONFIG_CIFS_COMPRESSION is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: fs/sysv/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_SYSV_FS is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/ufs/Kconfig
|
## file: fs/ufs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3577,8 +3468,10 @@ CONFIG_VBOXSF_FS=m
|
|||||||
CONFIG_DEFAULT_HOSTNAME="debian-vm"
|
CONFIG_DEFAULT_HOSTNAME="debian-vm"
|
||||||
CONFIG_LOG_BUF_SHIFT=17
|
CONFIG_LOG_BUF_SHIFT=17
|
||||||
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
|
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
|
||||||
# CONFIG_UCLAMP_TASK is not set
|
CONFIG_UCLAMP_TASK=y
|
||||||
# CONFIG_RT_GROUP_SCHED is not set
|
CONFIG_UCLAMP_BUCKETS_COUNT=10
|
||||||
|
CONFIG_RT_GROUP_SCHED=y
|
||||||
|
CONFIG_UCLAMP_TASK_GROUP=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: kernel/Kconfig.kexec
|
## file: kernel/Kconfig.kexec
|
||||||
@@ -3608,7 +3501,6 @@ CONFIG_PM_ADVANCED_DEBUG=y
|
|||||||
# CONFIG_PM_TEST_SUSPEND is not set
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
# CONFIG_DPM_WATCHDOG is not set
|
# CONFIG_DPM_WATCHDOG is not set
|
||||||
# CONFIG_PM_TRACE_RTC is not set
|
# CONFIG_PM_TRACE_RTC is not set
|
||||||
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: kernel/rcu/Kconfig
|
## file: kernel/rcu/Kconfig
|
||||||
@@ -3662,7 +3554,6 @@ CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
|
|||||||
CONFIG_FUNCTION_ERROR_INJECTION=y
|
CONFIG_FUNCTION_ERROR_INJECTION=y
|
||||||
# CONFIG_RUNTIME_TESTING_MENU is not set
|
# CONFIG_RUNTIME_TESTING_MENU is not set
|
||||||
# CONFIG_MEMTEST is not set
|
# CONFIG_MEMTEST is not set
|
||||||
# CONFIG_HYPERV_TESTING is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: lib/Kconfig.kfence
|
## file: lib/Kconfig.kfence
|
||||||
@@ -3689,12 +3580,9 @@ CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
|
|||||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
|
||||||
## end choice
|
## end choice
|
||||||
## choice: Default allocator
|
## choice: Default allocator
|
||||||
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
|
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
|
||||||
# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED is not set
|
|
||||||
# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
|
|
||||||
## end choice
|
## end choice
|
||||||
CONFIG_ZBUD=y
|
CONFIG_ZSMALLOC=y
|
||||||
CONFIG_Z3FOLD_DEPRECATED=m
|
|
||||||
# CONFIG_HWPOISON_INJECT is not set
|
# CONFIG_HWPOISON_INJECT is not set
|
||||||
CONFIG_NUMA_EMU=y
|
CONFIG_NUMA_EMU=y
|
||||||
|
|
||||||
@@ -3768,17 +3656,6 @@ CONFIG_NET_9P_RDMA=m
|
|||||||
##
|
##
|
||||||
# CONFIG_CAN is not set
|
# CONFIG_CAN is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_IP_DCCP_DEBUG is not set
|
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/ccids/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
|
|
||||||
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/ieee802154/Kconfig
|
## file: net/ieee802154/Kconfig
|
||||||
##
|
##
|
||||||
@@ -3984,11 +3861,6 @@ CONFIG_SUNRPC_XPRT_RDMA=m
|
|||||||
##
|
##
|
||||||
CONFIG_TIPC_MEDIA_IB=y
|
CONFIG_TIPC_MEDIA_IB=y
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/vmw_vsock/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_HYPERV_VSOCKETS=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/x25/Kconfig
|
## file: net/x25/Kconfig
|
||||||
##
|
##
|
||||||
@@ -4014,6 +3886,7 @@ CONFIG_IPE_PROP_DM_VERITY_SIGNATURE=y
|
|||||||
## file: security/keys/Kconfig
|
## file: security/keys/Kconfig
|
||||||
##
|
##
|
||||||
# CONFIG_KEYS_REQUEST_CACHE is not set
|
# CONFIG_KEYS_REQUEST_CACHE is not set
|
||||||
|
# CONFIG_BIG_KEYS is not set
|
||||||
# CONFIG_TRUSTED_KEYS is not set
|
# CONFIG_TRUSTED_KEYS is not set
|
||||||
# CONFIG_USER_DECRYPTED_DATA is not set
|
# CONFIG_USER_DECRYPTED_DATA is not set
|
||||||
|
|
||||||
@@ -4030,12 +3903,22 @@ CONFIG_842_DECOMPRESS=m
|
|||||||
CONFIG_ASYNC_MEMCPY=m
|
CONFIG_ASYNC_MEMCPY=m
|
||||||
CONFIG_ASYNC_PQ=m
|
CONFIG_ASYNC_PQ=m
|
||||||
CONFIG_ASYNC_RAID6_RECOV=m
|
CONFIG_ASYNC_RAID6_RECOV=m
|
||||||
CONFIG_BLK_CGROUP_PUNT_BIO=y
|
|
||||||
CONFIG_BLK_DEV_RNBD=y
|
CONFIG_BLK_DEV_RNBD=y
|
||||||
CONFIG_CHECK_SIGNATURE=y
|
CONFIG_CHECK_SIGNATURE=y
|
||||||
|
CONFIG_CRC_CCITT=m
|
||||||
|
CONFIG_CRYPTO_CHACHA20_X86_64=m
|
||||||
CONFIG_CRYPTO_LIB_AESCFB=m
|
CONFIG_CRYPTO_LIB_AESCFB=m
|
||||||
CONFIG_CRYPTO_LIB_ARC4=m
|
CONFIG_CRYPTO_LIB_ARC4=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
|
||||||
|
CONFIG_CRYPTO_LIB_CHACHA_INTERNAL=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
|
||||||
|
CONFIG_CRYPTO_LIB_POLY1305_INTERNAL=m
|
||||||
|
CONFIG_CRYPTO_POLY1305_X86_64=m
|
||||||
CONFIG_CXL_PORT=y
|
CONFIG_CXL_PORT=y
|
||||||
|
CONFIG_DEV_SYNC_PROBE=m
|
||||||
CONFIG_DRM_BRIDGE=y
|
CONFIG_DRM_BRIDGE=y
|
||||||
CONFIG_DRM_CLIENT=y
|
CONFIG_DRM_CLIENT=y
|
||||||
CONFIG_DRM_CLIENT_DEFAULT="fbdev"
|
CONFIG_DRM_CLIENT_DEFAULT="fbdev"
|
||||||
@@ -4051,7 +3934,6 @@ CONFIG_DRM_TTM=m
|
|||||||
CONFIG_DRM_TTM_HELPER=m
|
CONFIG_DRM_TTM_HELPER=m
|
||||||
CONFIG_DRM_VRAM_HELPER=m
|
CONFIG_DRM_VRAM_HELPER=m
|
||||||
CONFIG_DRM_XEN=y
|
CONFIG_DRM_XEN=y
|
||||||
CONFIG_FB_IOMEM_HELPERS_DEFERRED=y
|
|
||||||
CONFIG_GPIOLIB_IRQCHIP=y
|
CONFIG_GPIOLIB_IRQCHIP=y
|
||||||
CONFIG_GPIO_ACPI=y
|
CONFIG_GPIO_ACPI=y
|
||||||
CONFIG_GPIO_GENERIC=m
|
CONFIG_GPIO_GENERIC=m
|
||||||
@@ -4059,8 +3941,6 @@ CONFIG_HAVE_CLK=y
|
|||||||
CONFIG_HAVE_CLK_PREPARE=y
|
CONFIG_HAVE_CLK_PREPARE=y
|
||||||
CONFIG_HDMI=y
|
CONFIG_HDMI=y
|
||||||
CONFIG_HSI_BOARDINFO=y
|
CONFIG_HSI_BOARDINFO=y
|
||||||
CONFIG_HVC_IRQ=y
|
|
||||||
CONFIG_HYPERV_TIMER=y
|
|
||||||
CONFIG_I2C_BOARDINFO=y
|
CONFIG_I2C_BOARDINFO=y
|
||||||
CONFIG_I2C_HID_CORE=m
|
CONFIG_I2C_HID_CORE=m
|
||||||
CONFIG_I2C_I801_MUX=y
|
CONFIG_I2C_I801_MUX=y
|
||||||
@@ -4084,9 +3964,6 @@ CONFIG_NETFS_SUPPORT=y
|
|||||||
CONFIG_NET_CLS=y
|
CONFIG_NET_CLS=y
|
||||||
CONFIG_NLS_UCS2_UTILS=m
|
CONFIG_NLS_UCS2_UTILS=m
|
||||||
# CONFIG_NVMEM_LAYOUTS is not set
|
# CONFIG_NVMEM_LAYOUTS is not set
|
||||||
CONFIG_PARAVIRT_CLOCK=y
|
|
||||||
CONFIG_PARAVIRT_XXL=y
|
|
||||||
CONFIG_PCI_XEN=y
|
|
||||||
CONFIG_PM_CLK=y
|
CONFIG_PM_CLK=y
|
||||||
CONFIG_PM_OPP=y
|
CONFIG_PM_OPP=y
|
||||||
CONFIG_PM_SLEEP_DEBUG=y
|
CONFIG_PM_SLEEP_DEBUG=y
|
||||||
@@ -4094,7 +3971,6 @@ CONFIG_PPPOE_HASH_BITS=4
|
|||||||
CONFIG_PREEMPTION=y
|
CONFIG_PREEMPTION=y
|
||||||
CONFIG_PREEMPT_BUILD=y
|
CONFIG_PREEMPT_BUILD=y
|
||||||
CONFIG_PREEMPT_COUNT=y
|
CONFIG_PREEMPT_COUNT=y
|
||||||
CONFIG_PREEMPT_RCU=y
|
|
||||||
CONFIG_RAID6_PQ=m
|
CONFIG_RAID6_PQ=m
|
||||||
CONFIG_RATIONAL=y
|
CONFIG_RATIONAL=y
|
||||||
CONFIG_REGMAP=y
|
CONFIG_REGMAP=y
|
||||||
@@ -4108,8 +3984,6 @@ CONFIG_SCSI_NETLINK=y
|
|||||||
CONFIG_SERIAL_MCTRL_GPIO=y
|
CONFIG_SERIAL_MCTRL_GPIO=y
|
||||||
CONFIG_SLHC=m
|
CONFIG_SLHC=m
|
||||||
CONFIG_SMBFS=m
|
CONFIG_SMBFS=m
|
||||||
CONFIG_SWIOTLB_XEN=y
|
|
||||||
CONFIG_SYS_HYPERVISOR=y
|
|
||||||
CONFIG_TASKS_RCU=y
|
CONFIG_TASKS_RCU=y
|
||||||
CONFIG_TCG_TIS_CORE=m
|
CONFIG_TCG_TIS_CORE=m
|
||||||
CONFIG_TRACER_MAX_TRACE=y
|
CONFIG_TRACER_MAX_TRACE=y
|
||||||
@@ -4122,22 +3996,8 @@ CONFIG_USB_PHY=y
|
|||||||
CONFIG_USB_XHCI_PCI=m
|
CONFIG_USB_XHCI_PCI=m
|
||||||
CONFIG_VIDEOMODE_HELPERS=y
|
CONFIG_VIDEOMODE_HELPERS=y
|
||||||
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
|
CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
|
||||||
CONFIG_X86_HV_CALLBACK_VECTOR=y
|
|
||||||
CONFIG_XEN_ACPI=y
|
|
||||||
CONFIG_XEN_AUTO_XLATE=y
|
|
||||||
CONFIG_XEN_EFI=y
|
|
||||||
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
|
CONFIG_XEN_FRONT_PGDIR_SHBUF=m
|
||||||
CONFIG_XEN_GRANT_DMA_OPS=y
|
|
||||||
CONFIG_XEN_HAVE_PVMMU=y
|
|
||||||
CONFIG_XEN_HAVE_VPMU=y
|
|
||||||
CONFIG_XEN_PCI_STUB=y
|
|
||||||
CONFIG_XEN_PVHVM=y
|
|
||||||
CONFIG_XEN_PVHVM_SMP=y
|
|
||||||
CONFIG_XEN_PV_SMP=y
|
|
||||||
CONFIG_XEN_SAVE_RESTORE=y
|
|
||||||
CONFIG_XEN_XENBUS_FRONTEND=y
|
|
||||||
CONFIG_Z3FOLD=m
|
|
||||||
CONFIG_ZPOOL=y
|
CONFIG_ZPOOL=y
|
||||||
CONFIG_ZSTD_COMPRESS=y
|
CONFIG_ZSTD_COMPRESS=y
|
||||||
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
|
||||||
CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
|
CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
|
||||||
|
300
debian/config/config
vendored
300
debian/config/config
vendored
@@ -34,6 +34,17 @@ CONFIG_X86_CPU_RESCTRL=y
|
|||||||
CONFIG_X86_FRED=y
|
CONFIG_X86_FRED=y
|
||||||
# CONFIG_IOSF_MBI_DEBUG is not set
|
# CONFIG_IOSF_MBI_DEBUG is not set
|
||||||
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
CONFIG_SCHED_OMIT_FRAME_POINTER=y
|
||||||
|
CONFIG_HYPERVISOR_GUEST=y
|
||||||
|
CONFIG_PARAVIRT=y
|
||||||
|
# CONFIG_PARAVIRT_DEBUG is not set
|
||||||
|
CONFIG_PARAVIRT_SPINLOCKS=y
|
||||||
|
CONFIG_KVM_GUEST=y
|
||||||
|
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
|
||||||
|
CONFIG_PVH=y
|
||||||
|
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
|
||||||
|
CONFIG_JAILHOUSE_GUEST=y
|
||||||
|
CONFIG_ACRN_GUEST=y
|
||||||
|
CONFIG_INTEL_TDX_GUEST=y
|
||||||
CONFIG_HPET_TIMER=y
|
CONFIG_HPET_TIMER=y
|
||||||
CONFIG_DMI=y
|
CONFIG_DMI=y
|
||||||
# CONFIG_MAXSMP is not set
|
# CONFIG_MAXSMP is not set
|
||||||
@@ -105,8 +116,8 @@ CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y
|
|||||||
# CONFIG_MITIGATION_SPECTRE_V2 is not set
|
# CONFIG_MITIGATION_SPECTRE_V2 is not set
|
||||||
# CONFIG_MITIGATION_SRBDS is not set
|
# CONFIG_MITIGATION_SRBDS is not set
|
||||||
# CONFIG_MITIGATION_SSB is not set
|
# CONFIG_MITIGATION_SSB is not set
|
||||||
|
# CONFIG_MITIGATION_TSA is not set
|
||||||
CONFIG_PCI_MMCONFIG=y
|
CONFIG_PCI_MMCONFIG=y
|
||||||
# CONFIG_PCI_CNB20LE_QUIRK is not set
|
|
||||||
# CONFIG_ISA_BUS is not set
|
# CONFIG_ISA_BUS is not set
|
||||||
CONFIG_ISA_DMA_API=y
|
CONFIG_ISA_DMA_API=y
|
||||||
CONFIG_IA32_EMULATION=y
|
CONFIG_IA32_EMULATION=y
|
||||||
@@ -116,7 +127,11 @@ CONFIG_IA32_EMULATION=y
|
|||||||
##
|
##
|
||||||
## file: arch/x86/Kconfig.cpu
|
## file: arch/x86/Kconfig.cpu
|
||||||
##
|
##
|
||||||
## choice: Processor family
|
## choice: x86_64 Compiler Build Optimization
|
||||||
|
# CONFIG_X86_NATIVE_CPU is not set
|
||||||
|
CONFIG_GENERIC_CPU=y
|
||||||
|
# CONFIG_MNATIVE_INTEL is not set
|
||||||
|
# CONFIG_MNATIVE_AMD is not set
|
||||||
# CONFIG_MK8 is not set
|
# CONFIG_MK8 is not set
|
||||||
# CONFIG_MK8SSE3 is not set
|
# CONFIG_MK8SSE3 is not set
|
||||||
# CONFIG_MK10 is not set
|
# CONFIG_MK10 is not set
|
||||||
@@ -133,7 +148,6 @@ CONFIG_IA32_EMULATION=y
|
|||||||
# CONFIG_MZEN4 is not set
|
# CONFIG_MZEN4 is not set
|
||||||
# CONFIG_MZEN5 is not set
|
# CONFIG_MZEN5 is not set
|
||||||
# CONFIG_MPSC is not set
|
# CONFIG_MPSC is not set
|
||||||
# CONFIG_MATOM is not set
|
|
||||||
# CONFIG_MCORE2 is not set
|
# CONFIG_MCORE2 is not set
|
||||||
# CONFIG_MNEHALEM is not set
|
# CONFIG_MNEHALEM is not set
|
||||||
# CONFIG_MWESTMERE is not set
|
# CONFIG_MWESTMERE is not set
|
||||||
@@ -149,8 +163,8 @@ CONFIG_IA32_EMULATION=y
|
|||||||
# CONFIG_MCANNONLAKE is not set
|
# CONFIG_MCANNONLAKE is not set
|
||||||
# CONFIG_MICELAKE_CLIENT is not set
|
# CONFIG_MICELAKE_CLIENT is not set
|
||||||
# CONFIG_MICELAKE_SERVER is not set
|
# CONFIG_MICELAKE_SERVER is not set
|
||||||
# CONFIG_MCASCADELAKE is not set
|
|
||||||
# CONFIG_MCOOPERLAKE is not set
|
# CONFIG_MCOOPERLAKE is not set
|
||||||
|
# CONFIG_MCASCADELAKE is not set
|
||||||
# CONFIG_MTIGERLAKE is not set
|
# CONFIG_MTIGERLAKE is not set
|
||||||
# CONFIG_MSAPPHIRERAPIDS is not set
|
# CONFIG_MSAPPHIRERAPIDS is not set
|
||||||
# CONFIG_MROCKETLAKE is not set
|
# CONFIG_MROCKETLAKE is not set
|
||||||
@@ -158,9 +172,6 @@ CONFIG_IA32_EMULATION=y
|
|||||||
# CONFIG_MRAPTORLAKE is not set
|
# CONFIG_MRAPTORLAKE is not set
|
||||||
# CONFIG_MMETEORLAKE is not set
|
# CONFIG_MMETEORLAKE is not set
|
||||||
# CONFIG_MEMERALDRAPIDS is not set
|
# CONFIG_MEMERALDRAPIDS is not set
|
||||||
CONFIG_GENERIC_CPU=y
|
|
||||||
# CONFIG_MNATIVE_INTEL is not set
|
|
||||||
# CONFIG_MNATIVE_AMD is not set
|
|
||||||
## end choice
|
## end choice
|
||||||
# CONFIG_PROCESSOR_SELECT is not set
|
# CONFIG_PROCESSOR_SELECT is not set
|
||||||
CONFIG_CPU_SUP_INTEL=y
|
CONFIG_CPU_SUP_INTEL=y
|
||||||
@@ -197,7 +208,6 @@ CONFIG_UNWINDER_ORC=y
|
|||||||
##
|
##
|
||||||
## file: arch/x86/crypto/Kconfig
|
## file: arch/x86/crypto/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_CRYPTO_CURVE25519_X86=m
|
|
||||||
CONFIG_CRYPTO_AES_NI_INTEL=m
|
CONFIG_CRYPTO_AES_NI_INTEL=m
|
||||||
CONFIG_CRYPTO_BLOWFISH_X86_64=m
|
CONFIG_CRYPTO_BLOWFISH_X86_64=m
|
||||||
CONFIG_CRYPTO_CAMELLIA_X86_64=m
|
CONFIG_CRYPTO_CAMELLIA_X86_64=m
|
||||||
@@ -217,13 +227,11 @@ CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
|
|||||||
CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=m
|
CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64=m
|
||||||
CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64=m
|
CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64=m
|
||||||
CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64=m
|
CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64=m
|
||||||
CONFIG_CRYPTO_CHACHA20_X86_64=m
|
|
||||||
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
|
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
|
||||||
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
|
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
|
||||||
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
|
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
|
||||||
CONFIG_CRYPTO_BLAKE2S_X86=y
|
CONFIG_CRYPTO_BLAKE2S_X86=y
|
||||||
CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m
|
CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m
|
||||||
CONFIG_CRYPTO_POLY1305_X86_64=m
|
|
||||||
CONFIG_CRYPTO_SHA1_SSSE3=m
|
CONFIG_CRYPTO_SHA1_SSSE3=m
|
||||||
CONFIG_CRYPTO_SHA256_SSSE3=m
|
CONFIG_CRYPTO_SHA256_SSSE3=m
|
||||||
CONFIG_CRYPTO_SHA512_SSSE3=m
|
CONFIG_CRYPTO_SHA512_SSSE3=m
|
||||||
@@ -257,6 +265,17 @@ CONFIG_KVM_HYPERV=y
|
|||||||
# CONFIG_KVM_PROVE_MMU is not set
|
# CONFIG_KVM_PROVE_MMU is not set
|
||||||
CONFIG_KVM_MAX_NR_VCPUS=1024
|
CONFIG_KVM_MAX_NR_VCPUS=1024
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: arch/x86/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_XEN=y
|
||||||
|
CONFIG_XEN_PV=y
|
||||||
|
CONFIG_XEN_512GB=y
|
||||||
|
CONFIG_XEN_PVHVM_GUEST=y
|
||||||
|
# CONFIG_XEN_DEBUG_FS is not set
|
||||||
|
CONFIG_XEN_PVH=y
|
||||||
|
CONFIG_XEN_PV_MSR_SAFE=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: block/Kconfig
|
## file: block/Kconfig
|
||||||
##
|
##
|
||||||
@@ -313,6 +332,7 @@ CONFIG_CRYPTO_NULL=y
|
|||||||
CONFIG_CRYPTO_PCRYPT=m
|
CONFIG_CRYPTO_PCRYPT=m
|
||||||
CONFIG_CRYPTO_CRYPTD=m
|
CONFIG_CRYPTO_CRYPTD=m
|
||||||
CONFIG_CRYPTO_AUTHENC=m
|
CONFIG_CRYPTO_AUTHENC=m
|
||||||
|
CONFIG_CRYPTO_KRB5ENC=m
|
||||||
CONFIG_CRYPTO_TEST=m
|
CONFIG_CRYPTO_TEST=m
|
||||||
CONFIG_CRYPTO_RSA=y
|
CONFIG_CRYPTO_RSA=y
|
||||||
CONFIG_CRYPTO_DH=y
|
CONFIG_CRYPTO_DH=y
|
||||||
@@ -336,10 +356,12 @@ CONFIG_CRYPTO_ADIANTUM=m
|
|||||||
CONFIG_CRYPTO_CHACHA20=m
|
CONFIG_CRYPTO_CHACHA20=m
|
||||||
CONFIG_CRYPTO_CBC=y
|
CONFIG_CRYPTO_CBC=y
|
||||||
CONFIG_CRYPTO_CTR=y
|
CONFIG_CRYPTO_CTR=y
|
||||||
|
CONFIG_CRYPTO_CTS=y
|
||||||
CONFIG_CRYPTO_ECB=y
|
CONFIG_CRYPTO_ECB=y
|
||||||
CONFIG_CRYPTO_HCTR2=m
|
CONFIG_CRYPTO_HCTR2=m
|
||||||
CONFIG_CRYPTO_LRW=m
|
CONFIG_CRYPTO_LRW=m
|
||||||
CONFIG_CRYPTO_PCBC=m
|
CONFIG_CRYPTO_PCBC=m
|
||||||
|
CONFIG_CRYPTO_XTS=y
|
||||||
CONFIG_CRYPTO_AEGIS128=m
|
CONFIG_CRYPTO_AEGIS128=m
|
||||||
CONFIG_CRYPTO_CHACHA20POLY1305=m
|
CONFIG_CRYPTO_CHACHA20POLY1305=m
|
||||||
CONFIG_CRYPTO_CCM=m
|
CONFIG_CRYPTO_CCM=m
|
||||||
@@ -367,8 +389,6 @@ CONFIG_CRYPTO_XCBC=m
|
|||||||
CONFIG_CRYPTO_XXHASH=m
|
CONFIG_CRYPTO_XXHASH=m
|
||||||
CONFIG_CRYPTO_CRC32C=y
|
CONFIG_CRYPTO_CRC32C=y
|
||||||
CONFIG_CRYPTO_CRC32=m
|
CONFIG_CRYPTO_CRC32=m
|
||||||
CONFIG_CRYPTO_CRCT10DIF=y
|
|
||||||
CONFIG_CRYPTO_CRC64_ROCKSOFT=y
|
|
||||||
CONFIG_CRYPTO_LZO=y
|
CONFIG_CRYPTO_LZO=y
|
||||||
CONFIG_CRYPTO_ANSI_CPRNG=m
|
CONFIG_CRYPTO_ANSI_CPRNG=m
|
||||||
CONFIG_CRYPTO_DRBG_MENU=y
|
CONFIG_CRYPTO_DRBG_MENU=y
|
||||||
@@ -395,6 +415,12 @@ CONFIG_PKCS7_MESSAGE_PARSER=y
|
|||||||
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
|
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
|
||||||
# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
|
# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: crypto/krb5/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_CRYPTO_KRB5=m
|
||||||
|
# CONFIG_CRYPTO_KRB5_SELFTESTS is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/acpi/Kconfig
|
## file: drivers/acpi/Kconfig
|
||||||
##
|
##
|
||||||
@@ -519,6 +545,8 @@ 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 is not set
|
# CONFIG_CDROM_PKTCDVD is not set
|
||||||
|
CONFIG_XEN_BLKDEV_FRONTEND=m
|
||||||
|
CONFIG_XEN_BLKDEV_BACKEND=m
|
||||||
CONFIG_VIRTIO_BLK=m
|
CONFIG_VIRTIO_BLK=m
|
||||||
CONFIG_BLK_DEV_RBD=m
|
CONFIG_BLK_DEV_RBD=m
|
||||||
CONFIG_BLK_DEV_UBLK=m
|
CONFIG_BLK_DEV_UBLK=m
|
||||||
@@ -576,7 +604,7 @@ CONFIG_MHI_BUS_PCI_GENERIC=m
|
|||||||
##
|
##
|
||||||
CONFIG_TTY_PRINTK=m
|
CONFIG_TTY_PRINTK=m
|
||||||
CONFIG_TTY_PRINTK_LEVEL=6
|
CONFIG_TTY_PRINTK_LEVEL=6
|
||||||
CONFIG_VIRTIO_CONSOLE=m
|
CONFIG_VIRTIO_CONSOLE=y
|
||||||
CONFIG_DEVMEM=y
|
CONFIG_DEVMEM=y
|
||||||
CONFIG_NVRAM=m
|
CONFIG_NVRAM=m
|
||||||
CONFIG_HPET=y
|
CONFIG_HPET=y
|
||||||
@@ -598,6 +626,7 @@ CONFIG_HW_RANDOM_VIRTIO=m
|
|||||||
##
|
##
|
||||||
CONFIG_TCG_TPM2_HMAC=y
|
CONFIG_TCG_TPM2_HMAC=y
|
||||||
CONFIG_HW_RANDOM_TPM=y
|
CONFIG_HW_RANDOM_TPM=y
|
||||||
|
CONFIG_TCG_XEN=m
|
||||||
CONFIG_TCG_VTPM_PROXY=m
|
CONFIG_TCG_VTPM_PROXY=m
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -641,6 +670,7 @@ CONFIG_X86_POWERNOW_K8=m
|
|||||||
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
|
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
|
||||||
CONFIG_X86_SPEEDSTEP_CENTRINO=m
|
CONFIG_X86_SPEEDSTEP_CENTRINO=m
|
||||||
CONFIG_X86_P4_CLOCKMOD=m
|
CONFIG_X86_P4_CLOCKMOD=m
|
||||||
|
CONFIG_CPUFREQ_ARCH_CUR_FREQ=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/cpuidle/Kconfig
|
## file: drivers/cpuidle/Kconfig
|
||||||
@@ -649,6 +679,8 @@ CONFIG_CPU_IDLE=y
|
|||||||
CONFIG_CPU_IDLE_GOV_LADDER=y
|
CONFIG_CPU_IDLE_GOV_LADDER=y
|
||||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||||
CONFIG_CPU_IDLE_GOV_TEO=y
|
CONFIG_CPU_IDLE_GOV_TEO=y
|
||||||
|
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
|
||||||
|
CONFIG_HALTPOLL_CPUIDLE=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/crypto/Kconfig
|
## file: drivers/crypto/Kconfig
|
||||||
@@ -708,11 +740,6 @@ CONFIG_ASYNC_TX_DMA=y
|
|||||||
# CONFIG_DMABUF_HEAPS is not set
|
# CONFIG_DMABUF_HEAPS is not set
|
||||||
# CONFIG_DMABUF_SYSFS_STATS is not set
|
# CONFIG_DMABUF_SYSFS_STATS is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: drivers/eisa/Kconfig
|
|
||||||
##
|
|
||||||
# CONFIG_EISA is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/firmware/Kconfig
|
## file: drivers/firmware/Kconfig
|
||||||
##
|
##
|
||||||
@@ -754,6 +781,14 @@ CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m
|
|||||||
##
|
##
|
||||||
# CONFIG_FPGA is not set
|
# CONFIG_FPGA is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/hv/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_HYPERV=m
|
||||||
|
# CONFIG_HYPERV_VTL_MODE is not set
|
||||||
|
CONFIG_HYPERV_UTILS=m
|
||||||
|
CONFIG_HYPERV_BALLOON=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/hwmon/Kconfig
|
## file: drivers/hwmon/Kconfig
|
||||||
##
|
##
|
||||||
@@ -808,6 +843,7 @@ CONFIG_SERIO=y
|
|||||||
CONFIG_SERIO_I8042=y
|
CONFIG_SERIO_I8042=y
|
||||||
CONFIG_SERIO_LIBPS2=y
|
CONFIG_SERIO_LIBPS2=y
|
||||||
CONFIG_SERIO_RAW=m
|
CONFIG_SERIO_RAW=m
|
||||||
|
CONFIG_HYPERV_KEYBOARD=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/iommu/Kconfig
|
## file: drivers/iommu/Kconfig
|
||||||
@@ -820,6 +856,8 @@ CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
|
|||||||
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
|
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
|
||||||
## end choice
|
## end choice
|
||||||
CONFIG_IRQ_REMAP=y
|
CONFIG_IRQ_REMAP=y
|
||||||
|
CONFIG_HYPERV_IOMMU=y
|
||||||
|
CONFIG_VIRTIO_IOMMU=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/iommu/amd/Kconfig
|
## file: drivers/iommu/amd/Kconfig
|
||||||
@@ -921,6 +959,7 @@ CONFIG_LPC_SCH=m
|
|||||||
## file: drivers/misc/Kconfig
|
## file: drivers/misc/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_DUMMY_IRQ=m
|
CONFIG_DUMMY_IRQ=m
|
||||||
|
CONFIG_VMWARE_BALLOON=m
|
||||||
# CONFIG_PCI_ENDPOINT_TEST is not set
|
# CONFIG_PCI_ENDPOINT_TEST is not set
|
||||||
CONFIG_NSM=m
|
CONFIG_NSM=m
|
||||||
|
|
||||||
@@ -987,6 +1026,8 @@ CONFIG_NETKIT=y
|
|||||||
CONFIG_NET_VRF=m
|
CONFIG_NET_VRF=m
|
||||||
CONFIG_VSOCKMON=m
|
CONFIG_VSOCKMON=m
|
||||||
CONFIG_MHI_NET=m
|
CONFIG_MHI_NET=m
|
||||||
|
CONFIG_XEN_NETDEV_FRONTEND=m
|
||||||
|
CONFIG_XEN_NETDEV_BACKEND=m
|
||||||
CONFIG_VMXNET3=m
|
CONFIG_VMXNET3=m
|
||||||
CONFIG_NETDEVSIM=m
|
CONFIG_NETDEVSIM=m
|
||||||
CONFIG_NET_FAILOVER=m
|
CONFIG_NET_FAILOVER=m
|
||||||
@@ -1051,6 +1092,7 @@ CONFIG_MLX4_CORE_GEN2=y
|
|||||||
## file: drivers/net/ethernet/microsoft/Kconfig
|
## file: drivers/net/ethernet/microsoft/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_NET_VENDOR_MICROSOFT=y
|
CONFIG_NET_VENDOR_MICROSOFT=y
|
||||||
|
CONFIG_MICROSOFT_MANA=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/fddi/Kconfig
|
## file: drivers/net/fddi/Kconfig
|
||||||
@@ -1062,6 +1104,11 @@ CONFIG_NET_VENDOR_MICROSOFT=y
|
|||||||
##
|
##
|
||||||
# CONFIG_HIPPI is not set
|
# CONFIG_HIPPI is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/net/hyperv/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_HYPERV_NET=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/net/mdio/Kconfig
|
## file: drivers/net/mdio/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1129,10 +1176,13 @@ CONFIG_PCI_QUIRKS=y
|
|||||||
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
|
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
|
||||||
CONFIG_PCI_STUB=m
|
CONFIG_PCI_STUB=m
|
||||||
CONFIG_PCI_PF_STUB=m
|
CONFIG_PCI_PF_STUB=m
|
||||||
|
CONFIG_XEN_PCIDEV_FRONTEND=m
|
||||||
|
CONFIG_PCI_DOE=y
|
||||||
CONFIG_PCI_IOV=y
|
CONFIG_PCI_IOV=y
|
||||||
CONFIG_PCI_PRI=y
|
CONFIG_PCI_PRI=y
|
||||||
CONFIG_PCI_PASID=y
|
CONFIG_PCI_PASID=y
|
||||||
CONFIG_PCI_P2PDMA=y
|
CONFIG_PCI_P2PDMA=y
|
||||||
|
CONFIG_PCI_HYPERV=m
|
||||||
## choice: PCI Express hierarchy optimization setting
|
## choice: PCI Express hierarchy optimization setting
|
||||||
# CONFIG_PCIE_BUS_TUNE_OFF is not set
|
# CONFIG_PCIE_BUS_TUNE_OFF is not set
|
||||||
CONFIG_PCIE_BUS_DEFAULT=y
|
CONFIG_PCIE_BUS_DEFAULT=y
|
||||||
@@ -1143,6 +1193,11 @@ CONFIG_PCIE_BUS_DEFAULT=y
|
|||||||
CONFIG_VGA_ARB=y
|
CONFIG_VGA_ARB=y
|
||||||
CONFIG_VGA_ARB_MAX_GPUS=16
|
CONFIG_VGA_ARB_MAX_GPUS=16
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/pci/controller/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_PCI_HYPERV_INTERFACE=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/pci/endpoint/Kconfig
|
## file: drivers/pci/endpoint/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1230,8 +1285,10 @@ CONFIG_PPS_GENERATOR_DUMMY=m
|
|||||||
## file: drivers/ptp/Kconfig
|
## file: drivers/ptp/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_PTP_1588_CLOCK=m
|
CONFIG_PTP_1588_CLOCK=m
|
||||||
|
CONFIG_PTP_1588_CLOCK_KVM=m
|
||||||
CONFIG_PTP_1588_CLOCK_VMCLOCK=m
|
CONFIG_PTP_1588_CLOCK_VMCLOCK=m
|
||||||
CONFIG_PTP_1588_CLOCK_MOCK=m
|
CONFIG_PTP_1588_CLOCK_MOCK=m
|
||||||
|
CONFIG_PTP_1588_CLOCK_VMW=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/ras/Kconfig
|
## file: drivers/ras/Kconfig
|
||||||
@@ -1300,6 +1357,8 @@ CONFIG_ISCSI_BOOT_SYSFS=m
|
|||||||
# CONFIG_SCSI_MYRB is not set
|
# CONFIG_SCSI_MYRB is not set
|
||||||
# CONFIG_SCSI_MYRS is not set
|
# CONFIG_SCSI_MYRS is not set
|
||||||
CONFIG_VMWARE_PVSCSI=m
|
CONFIG_VMWARE_PVSCSI=m
|
||||||
|
CONFIG_XEN_SCSI_FRONTEND=m
|
||||||
|
CONFIG_HYPERV_STORAGE=m
|
||||||
# CONFIG_SCSI_SNIC is not set
|
# CONFIG_SCSI_SNIC is not set
|
||||||
# CONFIG_SCSI_DMX3191D is not set
|
# CONFIG_SCSI_DMX3191D is not set
|
||||||
# CONFIG_SCSI_FDOMAIN_PCI is not set
|
# CONFIG_SCSI_FDOMAIN_PCI is not set
|
||||||
@@ -1475,6 +1534,12 @@ CONFIG_LDISC_AUTOLOAD=y
|
|||||||
CONFIG_NULL_TTY=y
|
CONFIG_NULL_TTY=y
|
||||||
CONFIG_RPMSG_TTY=m
|
CONFIG_RPMSG_TTY=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/tty/hvc/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_HVC_XEN=y
|
||||||
|
CONFIG_HVC_XEN_FRONTEND=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/tty/serdev/Kconfig
|
## file: drivers/tty/serdev/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1508,6 +1573,7 @@ CONFIG_UIO=m
|
|||||||
CONFIG_UIO_PDRV_GENIRQ=m
|
CONFIG_UIO_PDRV_GENIRQ=m
|
||||||
CONFIG_UIO_DMEM_GENIRQ=m
|
CONFIG_UIO_DMEM_GENIRQ=m
|
||||||
CONFIG_UIO_PCI_GENERIC=m
|
CONFIG_UIO_PCI_GENERIC=m
|
||||||
|
CONFIG_UIO_HV_GENERIC=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/vdpa/Kconfig
|
## file: drivers/vdpa/Kconfig
|
||||||
@@ -1549,6 +1615,7 @@ CONFIG_VHOST_SCSI=m
|
|||||||
CONFIG_VHOST_VSOCK=m
|
CONFIG_VHOST_VSOCK=m
|
||||||
CONFIG_VHOST_VDPA=m
|
CONFIG_VHOST_VDPA=m
|
||||||
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
||||||
|
CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/video/console/Kconfig
|
## file: drivers/video/console/Kconfig
|
||||||
@@ -1597,8 +1664,10 @@ CONFIG_FB_EFI=y
|
|||||||
# CONFIG_FB_CARMINE is not set
|
# CONFIG_FB_CARMINE is not set
|
||||||
# CONFIG_FB_IBM_GXT4500 is not set
|
# CONFIG_FB_IBM_GXT4500 is not set
|
||||||
# CONFIG_FB_VIRTUAL is not set
|
# CONFIG_FB_VIRTUAL is not set
|
||||||
|
CONFIG_XEN_FBDEV_FRONTEND=y
|
||||||
# CONFIG_FB_METRONOME is not set
|
# CONFIG_FB_METRONOME is not set
|
||||||
# CONFIG_FB_MB862XX is not set
|
# CONFIG_FB_MB862XX is not set
|
||||||
|
CONFIG_FB_HYPERV=m
|
||||||
CONFIG_FB_SIMPLE=y
|
CONFIG_FB_SIMPLE=y
|
||||||
# CONFIG_FB_SM712 is not set
|
# CONFIG_FB_SM712 is not set
|
||||||
|
|
||||||
@@ -1626,6 +1695,11 @@ CONFIG_FB_TILEBLITTING=y
|
|||||||
CONFIG_VIRT_DRIVERS=y
|
CONFIG_VIRT_DRIVERS=y
|
||||||
CONFIG_VMGENID=y
|
CONFIG_VMGENID=y
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/virt/acrn/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_ACRN_HSM=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/virt/coco/efi_secret/Kconfig
|
## file: drivers/virt/coco/efi_secret/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1636,6 +1710,11 @@ CONFIG_EFI_SECRET=m
|
|||||||
##
|
##
|
||||||
CONFIG_SEV_GUEST=m
|
CONFIG_SEV_GUEST=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/virt/coco/tdx-guest/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_TDX_GUEST_DRIVER=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: drivers/virt/nitro_enclaves/Kconfig
|
## file: drivers/virt/nitro_enclaves/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1653,6 +1732,7 @@ CONFIG_VIRTIO_BALLOON=m
|
|||||||
CONFIG_VIRTIO_MEM=m
|
CONFIG_VIRTIO_MEM=m
|
||||||
CONFIG_VIRTIO_INPUT=m
|
CONFIG_VIRTIO_INPUT=m
|
||||||
CONFIG_VIRTIO_MMIO=m
|
CONFIG_VIRTIO_MMIO=m
|
||||||
|
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
|
||||||
# CONFIG_VIRTIO_DEBUG is not set
|
# CONFIG_VIRTIO_DEBUG is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -1674,8 +1754,35 @@ CONFIG_WDAT_WDT=m
|
|||||||
CONFIG_I6300ESB_WDT=m
|
CONFIG_I6300ESB_WDT=m
|
||||||
CONFIG_ITCO_WDT=m
|
CONFIG_ITCO_WDT=m
|
||||||
CONFIG_ITCO_VENDOR_SUPPORT=y
|
CONFIG_ITCO_VENDOR_SUPPORT=y
|
||||||
|
CONFIG_XEN_WDT=m
|
||||||
CONFIG_WDTPCI=m
|
CONFIG_WDTPCI=m
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: drivers/xen/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_XEN_BALLOON=y
|
||||||
|
CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
|
||||||
|
CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512
|
||||||
|
CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
|
||||||
|
CONFIG_XEN_DEV_EVTCHN=m
|
||||||
|
CONFIG_XEN_BACKEND=y
|
||||||
|
CONFIG_XENFS=m
|
||||||
|
CONFIG_XEN_COMPAT_XENFS=y
|
||||||
|
CONFIG_XEN_SYS_HYPERVISOR=y
|
||||||
|
CONFIG_XEN_GNTDEV=m
|
||||||
|
CONFIG_XEN_GNTDEV_DMABUF=y
|
||||||
|
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
||||||
|
CONFIG_XEN_GRANT_DMA_ALLOC=y
|
||||||
|
CONFIG_XEN_PCIDEV_BACKEND=m
|
||||||
|
# CONFIG_XEN_PVCALLS_FRONTEND is not set
|
||||||
|
# CONFIG_XEN_PVCALLS_BACKEND is not set
|
||||||
|
CONFIG_XEN_SCSI_BACKEND=m
|
||||||
|
CONFIG_XEN_PRIVCMD=m
|
||||||
|
CONFIG_XEN_PRIVCMD_EVENTFD=y
|
||||||
|
CONFIG_XEN_UNPOPULATED_ALLOC=y
|
||||||
|
CONFIG_XEN_VIRTIO=y
|
||||||
|
# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/Kconfig
|
## file: fs/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1717,6 +1824,11 @@ CONFIG_AUTOFS_FS=m
|
|||||||
##
|
##
|
||||||
# CONFIG_BCACHEFS_FS is not set
|
# CONFIG_BCACHEFS_FS is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: fs/btrfs/Kconfig
|
||||||
|
##
|
||||||
|
# CONFIG_BTRFS_FS is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/cachefiles/Kconfig
|
## file: fs/cachefiles/Kconfig
|
||||||
##
|
##
|
||||||
@@ -1798,7 +1910,9 @@ CONFIG_FAT_DEFAULT_UTF8=y
|
|||||||
##
|
##
|
||||||
## file: fs/fuse/Kconfig
|
## file: fs/fuse/Kconfig
|
||||||
##
|
##
|
||||||
|
CONFIG_FUSE_FS=y
|
||||||
CONFIG_CUSE=m
|
CONFIG_CUSE=m
|
||||||
|
CONFIG_VIRTIO_FS=y
|
||||||
CONFIG_FUSE_DAX=y
|
CONFIG_FUSE_DAX=y
|
||||||
CONFIG_FUSE_PASSTHROUGH=y
|
CONFIG_FUSE_PASSTHROUGH=y
|
||||||
CONFIG_FUSE_IO_URING=y
|
CONFIG_FUSE_IO_URING=y
|
||||||
@@ -1975,7 +2089,6 @@ CONFIG_UDF_FS=m
|
|||||||
## file: fs/unicode/Kconfig
|
## file: fs/unicode/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_UNICODE=y
|
CONFIG_UNICODE=y
|
||||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: fs/verity/Kconfig
|
## file: fs/verity/Kconfig
|
||||||
@@ -2057,7 +2170,6 @@ CONFIG_CGROUP_FREEZER=y
|
|||||||
CONFIG_CGROUP_HUGETLB=y
|
CONFIG_CGROUP_HUGETLB=y
|
||||||
CONFIG_CPUSETS=y
|
CONFIG_CPUSETS=y
|
||||||
# CONFIG_CPUSETS_V1 is not set
|
# CONFIG_CPUSETS_V1 is not set
|
||||||
CONFIG_PROC_PID_CPUSET=y
|
|
||||||
CONFIG_CGROUP_DEVICE=y
|
CONFIG_CGROUP_DEVICE=y
|
||||||
CONFIG_CGROUP_CPUACCT=y
|
CONFIG_CGROUP_CPUACCT=y
|
||||||
CONFIG_CGROUP_PERF=y
|
CONFIG_CGROUP_PERF=y
|
||||||
@@ -2085,11 +2197,11 @@ CONFIG_INITRAMFS_PRESERVE_MTIME=y
|
|||||||
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3=y
|
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3=y
|
||||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||||
## end choice
|
## end choice
|
||||||
|
# CONFIG_SYSFS_SYSCALL is not set
|
||||||
CONFIG_EXPERT=y
|
CONFIG_EXPERT=y
|
||||||
# CONFIG_UID16 is not set
|
# CONFIG_UID16 is not set
|
||||||
CONFIG_MULTIUSER=y
|
CONFIG_MULTIUSER=y
|
||||||
# CONFIG_SGETMASK_SYSCALL is not set
|
# CONFIG_SGETMASK_SYSCALL is not set
|
||||||
# CONFIG_SYSFS_SYSCALL is not set
|
|
||||||
CONFIG_FHANDLE=y
|
CONFIG_FHANDLE=y
|
||||||
CONFIG_POSIX_TIMERS=y
|
CONFIG_POSIX_TIMERS=y
|
||||||
CONFIG_PRINTK=y
|
CONFIG_PRINTK=y
|
||||||
@@ -2114,7 +2226,7 @@ CONFIG_CACHESTAT_SYSCALL=y
|
|||||||
# CONFIG_PC104 is not set
|
# CONFIG_PC104 is not set
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
# CONFIG_KALLSYMS_SELFTEST is not set
|
# CONFIG_KALLSYMS_SELFTEST is not set
|
||||||
# CONFIG_KALLSYMS_ALL is not set
|
CONFIG_KALLSYMS_ALL=y
|
||||||
CONFIG_PERF_EVENTS=y
|
CONFIG_PERF_EVENTS=y
|
||||||
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
CONFIG_PROFILING=y
|
CONFIG_PROFILING=y
|
||||||
@@ -2172,6 +2284,11 @@ CONFIG_BPF_LSM=y
|
|||||||
CONFIG_SPARSE_IRQ=y
|
CONFIG_SPARSE_IRQ=y
|
||||||
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
|
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
|
||||||
|
|
||||||
|
##
|
||||||
|
## file: kernel/livepatch/Kconfig
|
||||||
|
##
|
||||||
|
CONFIG_LIVEPATCH=y
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: kernel/module/Kconfig
|
## file: kernel/module/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2230,6 +2347,7 @@ CONFIG_PM_STD_PARTITION=""
|
|||||||
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
|
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
|
||||||
# CONFIG_PM_WAKELOCKS is not set
|
# CONFIG_PM_WAKELOCKS is not set
|
||||||
CONFIG_PM=y
|
CONFIG_PM=y
|
||||||
|
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
|
||||||
CONFIG_ENERGY_MODEL=y
|
CONFIG_ENERGY_MODEL=y
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -2309,17 +2427,6 @@ CONFIG_SYNTH_EVENTS=y
|
|||||||
## file: lib/Kconfig
|
## file: lib/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_PACKING=y
|
CONFIG_PACKING=y
|
||||||
CONFIG_CRC_CCITT=m
|
|
||||||
CONFIG_CRC16=y
|
|
||||||
CONFIG_CRC_T10DIF=y
|
|
||||||
CONFIG_CRC64_ROCKSOFT=y
|
|
||||||
CONFIG_CRC_ITU_T=m
|
|
||||||
CONFIG_CRC32=y
|
|
||||||
CONFIG_CRC64=y
|
|
||||||
CONFIG_CRC4=m
|
|
||||||
CONFIG_CRC7=m
|
|
||||||
CONFIG_LIBCRC32C=y
|
|
||||||
CONFIG_CRC8=m
|
|
||||||
CONFIG_CRC_OPTIMIZATIONS=y
|
CONFIG_CRC_OPTIMIZATIONS=y
|
||||||
# CONFIG_RANDOM32_SELFTEST is not set
|
# CONFIG_RANDOM32_SELFTEST is not set
|
||||||
# CONFIG_GLOB_SELFTEST is not set
|
# CONFIG_GLOB_SELFTEST is not set
|
||||||
@@ -2366,6 +2473,7 @@ CONFIG_STRIP_ASM_SYMS=y
|
|||||||
CONFIG_DEBUG_SECTION_MISMATCH=y
|
CONFIG_DEBUG_SECTION_MISMATCH=y
|
||||||
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
|
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
|
||||||
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
|
# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set
|
||||||
|
# CONFIG_OBJTOOL_WERROR is not set
|
||||||
CONFIG_VMLINUX_MAP=y
|
CONFIG_VMLINUX_MAP=y
|
||||||
CONFIG_BUILTIN_MODULE_RANGES=y
|
CONFIG_BUILTIN_MODULE_RANGES=y
|
||||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
@@ -2383,6 +2491,7 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y
|
|||||||
# CONFIG_SHRINKER_DEBUG is not set
|
# CONFIG_SHRINKER_DEBUG is not set
|
||||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
CONFIG_SCHED_STACK_END_CHECK=y
|
CONFIG_SCHED_STACK_END_CHECK=y
|
||||||
|
# CONFIG_DEBUG_VFS is not set
|
||||||
# CONFIG_DEBUG_VM is not set
|
# CONFIG_DEBUG_VM is not set
|
||||||
# CONFIG_DEBUG_VM_PGTABLE is not set
|
# CONFIG_DEBUG_VM_PGTABLE is not set
|
||||||
# CONFIG_DEBUG_VIRTUAL is not set
|
# CONFIG_DEBUG_VIRTUAL is not set
|
||||||
@@ -2399,9 +2508,9 @@ CONFIG_HARDLOCKUP_DETECTOR=y
|
|||||||
CONFIG_DETECT_HUNG_TASK=y
|
CONFIG_DETECT_HUNG_TASK=y
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
|
CONFIG_DETECT_HUNG_TASK_BLOCKER=y
|
||||||
# CONFIG_WQ_WATCHDOG is not set
|
# CONFIG_WQ_WATCHDOG is not set
|
||||||
# CONFIG_TEST_LOCKUP is not set
|
# CONFIG_TEST_LOCKUP is not set
|
||||||
# CONFIG_SCHED_DEBUG is not set
|
|
||||||
CONFIG_SCHEDSTATS=y
|
CONFIG_SCHEDSTATS=y
|
||||||
# CONFIG_PROVE_LOCKING is not set
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
# CONFIG_LOCK_STAT is not set
|
# CONFIG_LOCK_STAT is not set
|
||||||
@@ -2433,6 +2542,7 @@ CONFIG_STRICT_DEVMEM=y
|
|||||||
CONFIG_IO_STRICT_DEVMEM=y
|
CONFIG_IO_STRICT_DEVMEM=y
|
||||||
# CONFIG_FAULT_INJECTION is not set
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
# CONFIG_KCOV is not set
|
# CONFIG_KCOV is not set
|
||||||
|
# CONFIG_HYPERV_TESTING is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: lib/Kconfig.kasan
|
## file: lib/Kconfig.kasan
|
||||||
@@ -2454,14 +2564,6 @@ CONFIG_IO_STRICT_DEVMEM=y
|
|||||||
##
|
##
|
||||||
# CONFIG_UBSAN is not set
|
# CONFIG_UBSAN is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: lib/crypto/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_CRYPTO_LIB_CHACHA=m
|
|
||||||
CONFIG_CRYPTO_LIB_CURVE25519=m
|
|
||||||
CONFIG_CRYPTO_LIB_POLY1305=m
|
|
||||||
CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: lib/fonts/Kconfig
|
## file: lib/fonts/Kconfig
|
||||||
##
|
##
|
||||||
@@ -2509,7 +2611,6 @@ CONFIG_XZ_DEC_MICROLZMA=y
|
|||||||
## file: mm/Kconfig
|
## file: mm/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_SWAP=y
|
CONFIG_SWAP=y
|
||||||
CONFIG_ZSMALLOC=m
|
|
||||||
# CONFIG_ZSMALLOC_STAT is not set
|
# CONFIG_ZSMALLOC_STAT is not set
|
||||||
CONFIG_ZSMALLOC_CHAIN_SIZE=8
|
CONFIG_ZSMALLOC_CHAIN_SIZE=8
|
||||||
# CONFIG_SLUB_TINY is not set
|
# CONFIG_SLUB_TINY is not set
|
||||||
@@ -2546,6 +2647,7 @@ CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
|
|||||||
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
|
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
|
||||||
## end choice
|
## end choice
|
||||||
# CONFIG_READ_ONLY_THP_FOR_FS is not set
|
# CONFIG_READ_ONLY_THP_FOR_FS is not set
|
||||||
|
# CONFIG_NO_PAGE_MAPCOUNT is not set
|
||||||
# CONFIG_CMA is not set
|
# CONFIG_CMA is not set
|
||||||
CONFIG_MEM_SOFT_DIRTY=y
|
CONFIG_MEM_SOFT_DIRTY=y
|
||||||
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
|
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y
|
||||||
@@ -2665,12 +2767,7 @@ CONFIG_CEPH_LIB=m
|
|||||||
##
|
##
|
||||||
## file: net/dccp/Kconfig
|
## file: net/dccp/Kconfig
|
||||||
##
|
##
|
||||||
CONFIG_IP_DCCP=m
|
# CONFIG_IP_DCCP is not set
|
||||||
|
|
||||||
##
|
|
||||||
## file: net/dccp/ccids/Kconfig
|
|
||||||
##
|
|
||||||
CONFIG_IP_DCCP_CCID3=y
|
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/dns_resolver/Kconfig
|
## file: net/dns_resolver/Kconfig
|
||||||
@@ -2810,7 +2907,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
|
|||||||
CONFIG_IPV6_PIMSM_V2=y
|
CONFIG_IPV6_PIMSM_V2=y
|
||||||
CONFIG_IPV6_SEG6_LWTUNNEL=y
|
CONFIG_IPV6_SEG6_LWTUNNEL=y
|
||||||
CONFIG_IPV6_SEG6_HMAC=y
|
CONFIG_IPV6_SEG6_HMAC=y
|
||||||
# CONFIG_IPV6_RPL_LWTUNNEL is not set
|
CONFIG_IPV6_RPL_LWTUNNEL=y
|
||||||
# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
|
# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -3161,6 +3258,7 @@ CONFIG_VSOCKETS_DIAG=m
|
|||||||
CONFIG_VSOCKETS_LOOPBACK=m
|
CONFIG_VSOCKETS_LOOPBACK=m
|
||||||
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
||||||
CONFIG_VIRTIO_VSOCKETS=m
|
CONFIG_VIRTIO_VSOCKETS=m
|
||||||
|
CONFIG_HYPERV_VSOCKETS=m
|
||||||
|
|
||||||
##
|
##
|
||||||
## file: net/xdp/Kconfig
|
## file: net/xdp/Kconfig
|
||||||
@@ -3203,8 +3301,6 @@ CONFIG_SECURITY_NETWORK_XFRM=y
|
|||||||
CONFIG_SECURITY_PATH=y
|
CONFIG_SECURITY_PATH=y
|
||||||
CONFIG_INTEL_TXT=y
|
CONFIG_INTEL_TXT=y
|
||||||
CONFIG_LSM_MMAP_MIN_ADDR=65536
|
CONFIG_LSM_MMAP_MIN_ADDR=65536
|
||||||
CONFIG_HARDENED_USERCOPY=y
|
|
||||||
CONFIG_FORTIFY_SOURCE=y
|
|
||||||
# CONFIG_STATIC_USERMODEHELPER is not set
|
# CONFIG_STATIC_USERMODEHELPER is not set
|
||||||
## choice: First legacy 'major LSM' to be initialized
|
## choice: First legacy 'major LSM' to be initialized
|
||||||
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
|
||||||
@@ -3223,6 +3319,9 @@ CONFIG_INIT_STACK_ALL_ZERO=y
|
|||||||
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
||||||
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
|
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
|
||||||
CONFIG_ZERO_CALL_USED_REGS=y
|
CONFIG_ZERO_CALL_USED_REGS=y
|
||||||
|
CONFIG_FORTIFY_SOURCE=y
|
||||||
|
CONFIG_HARDENED_USERCOPY=y
|
||||||
|
CONFIG_HARDENED_USERCOPY_DEFAULT_ON=y
|
||||||
## choice: Randomize layout of sensitive kernel structures
|
## choice: Randomize layout of sensitive kernel structures
|
||||||
CONFIG_RANDSTRUCT_NONE=y
|
CONFIG_RANDSTRUCT_NONE=y
|
||||||
## end choice
|
## end choice
|
||||||
@@ -3373,6 +3472,7 @@ CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
|
|||||||
CONFIG_ARCH_HAS_CPU_PASID=y
|
CONFIG_ARCH_HAS_CPU_PASID=y
|
||||||
CONFIG_ARCH_HAS_CPU_RELAX=y
|
CONFIG_ARCH_HAS_CPU_RELAX=y
|
||||||
CONFIG_ARCH_HAS_CRC32=y
|
CONFIG_ARCH_HAS_CRC32=y
|
||||||
|
CONFIG_ARCH_HAS_CRC64=y
|
||||||
CONFIG_ARCH_HAS_CRC_T10DIF=y
|
CONFIG_ARCH_HAS_CRC_T10DIF=y
|
||||||
CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
|
CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
|
||||||
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
|
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
|
||||||
@@ -3382,6 +3482,7 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
|
|||||||
CONFIG_ARCH_HAS_DMA_OPS=y
|
CONFIG_ARCH_HAS_DMA_OPS=y
|
||||||
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
|
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
|
||||||
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
|
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
|
||||||
|
CONFIG_ARCH_HAS_EXECMEM_ROX=y
|
||||||
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
|
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
|
||||||
CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
|
CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
|
||||||
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
|
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
|
||||||
@@ -3399,6 +3500,7 @@ CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
|
|||||||
CONFIG_ARCH_HAS_PKEYS=y
|
CONFIG_ARCH_HAS_PKEYS=y
|
||||||
CONFIG_ARCH_HAS_PMEM_API=y
|
CONFIG_ARCH_HAS_PMEM_API=y
|
||||||
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
|
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
|
||||||
|
CONFIG_ARCH_HAS_PTDUMP=y
|
||||||
CONFIG_ARCH_HAS_PTE_DEVMAP=y
|
CONFIG_ARCH_HAS_PTE_DEVMAP=y
|
||||||
CONFIG_ARCH_HAS_PTE_SPECIAL=y
|
CONFIG_ARCH_HAS_PTE_SPECIAL=y
|
||||||
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
|
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
|
||||||
@@ -3448,6 +3550,7 @@ CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
|
|||||||
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
|
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
|
||||||
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
|
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
|
||||||
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
|
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
|
||||||
|
CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS=y
|
||||||
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
||||||
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
|
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
|
||||||
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
|
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
|
||||||
@@ -3467,6 +3570,7 @@ CONFIG_ARCH_USE_MEMTEST=y
|
|||||||
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
|
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
|
||||||
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
|
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
|
||||||
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
|
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
|
||||||
|
CONFIG_ARCH_VMLINUX_NEEDS_RELOCS=y
|
||||||
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
|
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
|
||||||
CONFIG_ARCH_WANTS_NO_INSTR=y
|
CONFIG_ARCH_WANTS_NO_INSTR=y
|
||||||
CONFIG_ARCH_WANTS_THP_SWAP=y
|
CONFIG_ARCH_WANTS_THP_SWAP=y
|
||||||
@@ -3474,6 +3578,7 @@ CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
|||||||
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
|
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
|
||||||
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
|
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
|
||||||
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
|
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
|
||||||
|
CONFIG_ARCH_WANT_HUGETLB_VMEMMAP_PREINIT=y
|
||||||
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
|
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
|
||||||
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
|
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
|
||||||
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
|
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
|
||||||
@@ -3531,7 +3636,13 @@ CONFIG_CONTIG_ALLOC=y
|
|||||||
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
|
||||||
CONFIG_CPU_FREQ_GOV_COMMON=y
|
CONFIG_CPU_FREQ_GOV_COMMON=y
|
||||||
CONFIG_CPU_RMAP=y
|
CONFIG_CPU_RMAP=y
|
||||||
|
CONFIG_CRC16=y
|
||||||
|
CONFIG_CRC32=y
|
||||||
CONFIG_CRC32_ARCH=y
|
CONFIG_CRC32_ARCH=y
|
||||||
|
CONFIG_CRC64=y
|
||||||
|
CONFIG_CRC64_ARCH=y
|
||||||
|
CONFIG_CRC_ITU_T=m
|
||||||
|
CONFIG_CRC_T10DIF=y
|
||||||
CONFIG_CRC_T10DIF_ARCH=y
|
CONFIG_CRC_T10DIF_ARCH=y
|
||||||
CONFIG_CRYPTO_ACOMP2=y
|
CONFIG_CRYPTO_ACOMP2=y
|
||||||
CONFIG_CRYPTO_AEAD=m
|
CONFIG_CRYPTO_AEAD=m
|
||||||
@@ -3541,11 +3652,12 @@ CONFIG_CRYPTO_AKCIPHER2=y
|
|||||||
CONFIG_CRYPTO_ALGAPI=y
|
CONFIG_CRYPTO_ALGAPI=y
|
||||||
CONFIG_CRYPTO_ALGAPI2=y
|
CONFIG_CRYPTO_ALGAPI2=y
|
||||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y
|
||||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
|
CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y
|
||||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
|
CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=y
|
||||||
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
|
CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=y
|
||||||
CONFIG_CRYPTO_BLOWFISH_COMMON=m
|
CONFIG_CRYPTO_BLOWFISH_COMMON=m
|
||||||
CONFIG_CRYPTO_CAST_COMMON=m
|
CONFIG_CRYPTO_CAST_COMMON=m
|
||||||
|
CONFIG_CRYPTO_CURVE25519_X86=m
|
||||||
CONFIG_CRYPTO_DRBG=y
|
CONFIG_CRYPTO_DRBG=y
|
||||||
CONFIG_CRYPTO_DRBG_HMAC=y
|
CONFIG_CRYPTO_DRBG_HMAC=y
|
||||||
CONFIG_CRYPTO_ECC=y
|
CONFIG_CRYPTO_ECC=y
|
||||||
@@ -3554,6 +3666,7 @@ CONFIG_CRYPTO_GENIV=m
|
|||||||
CONFIG_CRYPTO_HASH=y
|
CONFIG_CRYPTO_HASH=y
|
||||||
CONFIG_CRYPTO_HASH2=y
|
CONFIG_CRYPTO_HASH2=y
|
||||||
CONFIG_CRYPTO_HASH_INFO=y
|
CONFIG_CRYPTO_HASH_INFO=y
|
||||||
|
CONFIG_CRYPTO_HKDF=y
|
||||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
|
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
|
||||||
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
|
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
|
||||||
CONFIG_CRYPTO_KDF800108_CTR=y
|
CONFIG_CRYPTO_KDF800108_CTR=y
|
||||||
@@ -3562,11 +3675,11 @@ CONFIG_CRYPTO_KPP2=y
|
|||||||
CONFIG_CRYPTO_LIB_AES=y
|
CONFIG_CRYPTO_LIB_AES=y
|
||||||
CONFIG_CRYPTO_LIB_AESGCM=y
|
CONFIG_CRYPTO_LIB_AESGCM=y
|
||||||
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
|
||||||
CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
|
CONFIG_CRYPTO_LIB_CURVE25519=m
|
||||||
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
|
CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
|
||||||
|
CONFIG_CRYPTO_LIB_CURVE25519_INTERNAL=m
|
||||||
CONFIG_CRYPTO_LIB_DES=m
|
CONFIG_CRYPTO_LIB_DES=m
|
||||||
CONFIG_CRYPTO_LIB_GF128MUL=y
|
CONFIG_CRYPTO_LIB_GF128MUL=y
|
||||||
CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
|
|
||||||
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
|
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
|
||||||
CONFIG_CRYPTO_LIB_SHA1=y
|
CONFIG_CRYPTO_LIB_SHA1=y
|
||||||
CONFIG_CRYPTO_LIB_SHA256=y
|
CONFIG_CRYPTO_LIB_SHA256=y
|
||||||
@@ -3588,6 +3701,7 @@ CONFIG_CRYPTO_SM4=m
|
|||||||
CONFIG_CRYPTO_TWOFISH_COMMON=m
|
CONFIG_CRYPTO_TWOFISH_COMMON=m
|
||||||
CONFIG_CRYPTO_USER_API=m
|
CONFIG_CRYPTO_USER_API=m
|
||||||
CONFIG_CRYPTO_XCTR=m
|
CONFIG_CRYPTO_XCTR=m
|
||||||
|
CONFIG_CXL_MCE=y
|
||||||
CONFIG_CXL_SUSPEND=y
|
CONFIG_CXL_SUSPEND=y
|
||||||
CONFIG_DCACHE_WORD_ACCESS=y
|
CONFIG_DCACHE_WORD_ACCESS=y
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
@@ -3647,6 +3761,7 @@ CONFIG_FB_CORE=y
|
|||||||
CONFIG_FB_DEFERRED_IO=y
|
CONFIG_FB_DEFERRED_IO=y
|
||||||
CONFIG_FB_IOMEM_FOPS=y
|
CONFIG_FB_IOMEM_FOPS=y
|
||||||
CONFIG_FB_IOMEM_HELPERS=y
|
CONFIG_FB_IOMEM_HELPERS=y
|
||||||
|
CONFIG_FB_IOMEM_HELPERS_DEFERRED=y
|
||||||
CONFIG_FB_NOTIFY=y
|
CONFIG_FB_NOTIFY=y
|
||||||
CONFIG_FB_SYSMEM_FOPS=y
|
CONFIG_FB_SYSMEM_FOPS=y
|
||||||
CONFIG_FB_SYSMEM_HELPERS=y
|
CONFIG_FB_SYSMEM_HELPERS=y
|
||||||
@@ -3673,6 +3788,7 @@ CONFIG_FUNCTION_ALIGNMENT_16B=y
|
|||||||
CONFIG_FUNCTION_ALIGNMENT_4B=y
|
CONFIG_FUNCTION_ALIGNMENT_4B=y
|
||||||
CONFIG_FUNCTION_PADDING_BYTES=16
|
CONFIG_FUNCTION_PADDING_BYTES=16
|
||||||
CONFIG_FUNCTION_PADDING_CFI=11
|
CONFIG_FUNCTION_PADDING_CFI=11
|
||||||
|
CONFIG_FUNCTION_TRACE_ARGS=y
|
||||||
CONFIG_FUTEX_PI=y
|
CONFIG_FUTEX_PI=y
|
||||||
CONFIG_FWNODE_MDIO=m
|
CONFIG_FWNODE_MDIO=m
|
||||||
CONFIG_FW_LOADER_PAGED_BUF=y
|
CONFIG_FW_LOADER_PAGED_BUF=y
|
||||||
@@ -3705,12 +3821,12 @@ CONFIG_GENERIC_MSI_IRQ=y
|
|||||||
CONFIG_GENERIC_NET_UTILS=y
|
CONFIG_GENERIC_NET_UTILS=y
|
||||||
CONFIG_GENERIC_PCI_IOMAP=y
|
CONFIG_GENERIC_PCI_IOMAP=y
|
||||||
CONFIG_GENERIC_PENDING_IRQ=y
|
CONFIG_GENERIC_PENDING_IRQ=y
|
||||||
CONFIG_GENERIC_PTDUMP=y
|
|
||||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
CONFIG_GENERIC_STRNCPY_FROM_USER=y
|
||||||
CONFIG_GENERIC_STRNLEN_USER=y
|
CONFIG_GENERIC_STRNLEN_USER=y
|
||||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||||
CONFIG_GENERIC_TRACER=y
|
CONFIG_GENERIC_TRACER=y
|
||||||
|
CONFIG_GENERIC_VDSO_DATA_STORE=y
|
||||||
CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
|
CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
|
||||||
CONFIG_GENERIC_VDSO_TIME_NS=y
|
CONFIG_GENERIC_VDSO_TIME_NS=y
|
||||||
CONFIG_GET_FREE_REGION=y
|
CONFIG_GET_FREE_REGION=y
|
||||||
@@ -3780,7 +3896,6 @@ CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
|
|||||||
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
|
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
|
||||||
CONFIG_HAVE_EBPF_JIT=y
|
CONFIG_HAVE_EBPF_JIT=y
|
||||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||||
CONFIG_HAVE_EISA=y
|
|
||||||
CONFIG_HAVE_EXIT_THREAD=y
|
CONFIG_HAVE_EXIT_THREAD=y
|
||||||
CONFIG_HAVE_FENTRY=y
|
CONFIG_HAVE_FENTRY=y
|
||||||
CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
|
CONFIG_HAVE_FTRACE_GRAPH_FUNC=y
|
||||||
@@ -3820,7 +3935,7 @@ CONFIG_HAVE_KVM_DIRTY_RING=y
|
|||||||
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
|
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
|
||||||
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
|
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
|
||||||
CONFIG_HAVE_KVM_IRQCHIP=y
|
CONFIG_HAVE_KVM_IRQCHIP=y
|
||||||
CONFIG_HAVE_KVM_IRQ_BYPASS=y
|
CONFIG_HAVE_KVM_IRQ_BYPASS=m
|
||||||
CONFIG_HAVE_KVM_IRQ_ROUTING=y
|
CONFIG_HAVE_KVM_IRQ_ROUTING=y
|
||||||
CONFIG_HAVE_KVM_MSI=y
|
CONFIG_HAVE_KVM_MSI=y
|
||||||
CONFIG_HAVE_KVM_NO_POLL=y
|
CONFIG_HAVE_KVM_NO_POLL=y
|
||||||
@@ -3885,13 +4000,14 @@ CONFIG_HUGETLB_PAGE=y
|
|||||||
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
|
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
|
||||||
CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y
|
CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y
|
||||||
CONFIG_HVC_DRIVER=y
|
CONFIG_HVC_DRIVER=y
|
||||||
|
CONFIG_HVC_IRQ=y
|
||||||
|
CONFIG_HYPERV_TIMER=y
|
||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
CONFIG_IA32_FEAT_CTL=y
|
CONFIG_IA32_FEAT_CTL=y
|
||||||
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
|
||||||
# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
|
# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
|
||||||
CONFIG_INET6_TUNNEL=m
|
CONFIG_INET6_TUNNEL=m
|
||||||
CONFIG_INET6_XFRM_TUNNEL=m
|
CONFIG_INET6_XFRM_TUNNEL=m
|
||||||
CONFIG_INET_DCCP_DIAG=m
|
|
||||||
CONFIG_INET_MPTCP_DIAG=y
|
CONFIG_INET_MPTCP_DIAG=y
|
||||||
CONFIG_INET_SCTP_DIAG=m
|
CONFIG_INET_SCTP_DIAG=m
|
||||||
CONFIG_INET_TCP_DIAG=y
|
CONFIG_INET_TCP_DIAG=y
|
||||||
@@ -3912,27 +4028,26 @@ CONFIG_IOMMU_IOVA=y
|
|||||||
CONFIG_IOMMU_IO_PGTABLE=y
|
CONFIG_IOMMU_IO_PGTABLE=y
|
||||||
CONFIG_IOMMU_MM_DATA=y
|
CONFIG_IOMMU_MM_DATA=y
|
||||||
CONFIG_IOMMU_SVA=y
|
CONFIG_IOMMU_SVA=y
|
||||||
|
CONFIG_IO_URING_ZCRX=y
|
||||||
CONFIG_IO_WQ=y
|
CONFIG_IO_WQ=y
|
||||||
CONFIG_IPV6_FOU=m
|
CONFIG_IPV6_FOU=m
|
||||||
CONFIG_IPV6_FOU_TUNNEL=m
|
CONFIG_IPV6_FOU_TUNNEL=m
|
||||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||||
CONFIG_IPV6_SEG6_BPF=y
|
CONFIG_IPV6_SEG6_BPF=y
|
||||||
CONFIG_IPVLAN_L3S=y
|
CONFIG_IPVLAN_L3S=y
|
||||||
CONFIG_IP_DCCP_TFRC_LIB=y
|
|
||||||
CONFIG_IP_MROUTE_COMMON=y
|
CONFIG_IP_MROUTE_COMMON=y
|
||||||
CONFIG_IP_ROUTE_CLASSID=y
|
CONFIG_IP_ROUTE_CLASSID=y
|
||||||
CONFIG_IRQ_BYPASS_MANAGER=y
|
CONFIG_IRQ_BYPASS_MANAGER=m
|
||||||
CONFIG_IRQ_DOMAIN=y
|
CONFIG_IRQ_DOMAIN=y
|
||||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||||
CONFIG_IRQ_FORCED_THREADING=y
|
CONFIG_IRQ_FORCED_THREADING=y
|
||||||
CONFIG_IRQ_MSI_IOMMU=y
|
|
||||||
CONFIG_IRQ_WORK=y
|
CONFIG_IRQ_WORK=y
|
||||||
CONFIG_JBD2=y
|
CONFIG_JBD2=y
|
||||||
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
|
|
||||||
CONFIG_KERNFS=y
|
CONFIG_KERNFS=y
|
||||||
CONFIG_KPROBES_ON_FTRACE=y
|
CONFIG_KPROBES_ON_FTRACE=y
|
||||||
CONFIG_KRETPROBES=y
|
CONFIG_KRETPROBES=y
|
||||||
CONFIG_KRETPROBE_ON_RETHOOK=y
|
CONFIG_KRETPROBE_ON_RETHOOK=y
|
||||||
|
CONFIG_KVFREE_RCU_BATCHED=y
|
||||||
CONFIG_KVM_ASYNC_PF=y
|
CONFIG_KVM_ASYNC_PF=y
|
||||||
CONFIG_KVM_COMMON=y
|
CONFIG_KVM_COMMON=y
|
||||||
CONFIG_KVM_COMPAT=y
|
CONFIG_KVM_COMPAT=y
|
||||||
@@ -3944,10 +4059,12 @@ CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
|
|||||||
CONFIG_KVM_GENERIC_PRE_FAULT_MEMORY=y
|
CONFIG_KVM_GENERIC_PRE_FAULT_MEMORY=y
|
||||||
CONFIG_KVM_GENERIC_PRIVATE_MEM=y
|
CONFIG_KVM_GENERIC_PRIVATE_MEM=y
|
||||||
CONFIG_KVM_MMIO=y
|
CONFIG_KVM_MMIO=y
|
||||||
|
CONFIG_KVM_MMU_LOCKLESS_AGING=y
|
||||||
CONFIG_KVM_PRIVATE_MEM=y
|
CONFIG_KVM_PRIVATE_MEM=y
|
||||||
CONFIG_KVM_VFIO=y
|
CONFIG_KVM_VFIO=y
|
||||||
CONFIG_KVM_X86=m
|
CONFIG_KVM_X86=m
|
||||||
CONFIG_KVM_XFER_TO_GUEST_WORK=y
|
CONFIG_KVM_XFER_TO_GUEST_WORK=y
|
||||||
|
CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
|
||||||
CONFIG_LD_IS_BFD=y
|
CONFIG_LD_IS_BFD=y
|
||||||
CONFIG_LD_ORPHAN_WARN=y
|
CONFIG_LD_ORPHAN_WARN=y
|
||||||
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
|
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
|
||||||
@@ -3981,6 +4098,7 @@ CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
|
|||||||
CONFIG_MMU_GATHER_TABLE_FREE=y
|
CONFIG_MMU_GATHER_TABLE_FREE=y
|
||||||
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
|
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
|
||||||
CONFIG_MMU_NOTIFIER=y
|
CONFIG_MMU_NOTIFIER=y
|
||||||
|
CONFIG_MM_ID=y
|
||||||
CONFIG_MODULES_TREE_LOOKUP=y
|
CONFIG_MODULES_TREE_LOOKUP=y
|
||||||
CONFIG_MODULES_USE_ELF_RELA=y
|
CONFIG_MODULES_USE_ELF_RELA=y
|
||||||
CONFIG_MODULE_SIG_FORMAT=y
|
CONFIG_MODULE_SIG_FORMAT=y
|
||||||
@@ -4066,18 +4184,21 @@ CONFIG_OUTPUT_FORMAT="elf64-x86-64"
|
|||||||
CONFIG_P2SB=y
|
CONFIG_P2SB=y
|
||||||
CONFIG_PADATA=y
|
CONFIG_PADATA=y
|
||||||
CONFIG_PAGE_COUNTER=y
|
CONFIG_PAGE_COUNTER=y
|
||||||
|
CONFIG_PAGE_MAPCOUNT=y
|
||||||
CONFIG_PAGE_POOL=y
|
CONFIG_PAGE_POOL=y
|
||||||
CONFIG_PAGE_SHIFT=12
|
CONFIG_PAGE_SHIFT=12
|
||||||
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
|
||||||
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
|
||||||
CONFIG_PANIC_ON_OOPS_VALUE=0
|
CONFIG_PANIC_ON_OOPS_VALUE=0
|
||||||
|
CONFIG_PARAVIRT_CLOCK=y
|
||||||
|
CONFIG_PARAVIRT_XXL=y
|
||||||
CONFIG_PCIE_PME=y
|
CONFIG_PCIE_PME=y
|
||||||
CONFIG_PCI_ATS=y
|
CONFIG_PCI_ATS=y
|
||||||
CONFIG_PCI_DIRECT=y
|
CONFIG_PCI_DIRECT=y
|
||||||
CONFIG_PCI_DOE=y
|
|
||||||
CONFIG_PCI_DOMAINS=y
|
CONFIG_PCI_DOMAINS=y
|
||||||
CONFIG_PCI_LABEL=y
|
CONFIG_PCI_LABEL=y
|
||||||
CONFIG_PCI_LOCKLESS_CONFIG=y
|
CONFIG_PCI_LOCKLESS_CONFIG=y
|
||||||
|
CONFIG_PCI_XEN=y
|
||||||
CONFIG_PER_VMA_LOCK=y
|
CONFIG_PER_VMA_LOCK=y
|
||||||
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
|
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
|
||||||
CONFIG_PGTABLE_LEVELS=4
|
CONFIG_PGTABLE_LEVELS=4
|
||||||
@@ -4097,7 +4218,7 @@ CONFIG_PROC_CPU_RESCTRL=y
|
|||||||
CONFIG_PROC_PID_ARCH_STATUS=y
|
CONFIG_PROC_PID_ARCH_STATUS=y
|
||||||
CONFIG_PROC_THERMAL_MMIO_RAPL=m
|
CONFIG_PROC_THERMAL_MMIO_RAPL=m
|
||||||
CONFIG_PSTORE_ZONE=m
|
CONFIG_PSTORE_ZONE=m
|
||||||
CONFIG_PTDUMP_CORE=y
|
CONFIG_PTDUMP=y
|
||||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=m
|
CONFIG_PTP_1588_CLOCK_OPTIONAL=m
|
||||||
CONFIG_QUEUED_RWLOCKS=y
|
CONFIG_QUEUED_RWLOCKS=y
|
||||||
CONFIG_QUEUED_SPINLOCKS=y
|
CONFIG_QUEUED_SPINLOCKS=y
|
||||||
@@ -4108,6 +4229,7 @@ CONFIG_RCU_STALL_COMMON=y
|
|||||||
CONFIG_REED_SOLOMON=m
|
CONFIG_REED_SOLOMON=m
|
||||||
CONFIG_REED_SOLOMON_DEC8=y
|
CONFIG_REED_SOLOMON_DEC8=y
|
||||||
CONFIG_REED_SOLOMON_ENC8=y
|
CONFIG_REED_SOLOMON_ENC8=y
|
||||||
|
CONFIG_RESCTRL_FS_PSEUDO_LOCK=y
|
||||||
CONFIG_RETHOOK=y
|
CONFIG_RETHOOK=y
|
||||||
CONFIG_RING_BUFFER=y
|
CONFIG_RING_BUFFER=y
|
||||||
CONFIG_RPMSG=m
|
CONFIG_RPMSG=m
|
||||||
@@ -4143,6 +4265,7 @@ CONFIG_SOFTIRQ_ON_OWN_STACK=y
|
|||||||
CONFIG_SPARSEMEM=y
|
CONFIG_SPARSEMEM=y
|
||||||
CONFIG_SPARSEMEM_EXTREME=y
|
CONFIG_SPARSEMEM_EXTREME=y
|
||||||
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
|
||||||
|
CONFIG_SPARSEMEM_VMEMMAP_PREINIT=y
|
||||||
CONFIG_SPLIT_PMD_PTLOCKS=y
|
CONFIG_SPLIT_PMD_PTLOCKS=y
|
||||||
CONFIG_SPLIT_PTE_PTLOCKS=y
|
CONFIG_SPLIT_PTE_PTLOCKS=y
|
||||||
CONFIG_SQUASHFS_DECOMP_MULTI=y
|
CONFIG_SQUASHFS_DECOMP_MULTI=y
|
||||||
@@ -4157,6 +4280,7 @@ CONFIG_SUNRPC_BACKCHANNEL=y
|
|||||||
CONFIG_SUNRPC_GSS=m
|
CONFIG_SUNRPC_GSS=m
|
||||||
CONFIG_SUNRPC_SWAP=y
|
CONFIG_SUNRPC_SWAP=y
|
||||||
CONFIG_SWIOTLB=y
|
CONFIG_SWIOTLB=y
|
||||||
|
CONFIG_SWIOTLB_XEN=y
|
||||||
CONFIG_SWPHY=y
|
CONFIG_SWPHY=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
CONFIG_SYSCTL_EXCEPTION_TRACE=y
|
||||||
@@ -4164,6 +4288,7 @@ CONFIG_SYSFB=y
|
|||||||
CONFIG_SYSTEM_DATA_VERIFICATION=y
|
CONFIG_SYSTEM_DATA_VERIFICATION=y
|
||||||
CONFIG_SYSVIPC_COMPAT=y
|
CONFIG_SYSVIPC_COMPAT=y
|
||||||
CONFIG_SYSVIPC_SYSCTL=y
|
CONFIG_SYSVIPC_SYSCTL=y
|
||||||
|
CONFIG_SYS_HYPERVISOR=y
|
||||||
CONFIG_TAP=m
|
CONFIG_TAP=m
|
||||||
CONFIG_TASKS_RCU_GENERIC=y
|
CONFIG_TASKS_RCU_GENERIC=y
|
||||||
CONFIG_TASKS_RUDE_RCU=y
|
CONFIG_TASKS_RUDE_RCU=y
|
||||||
@@ -4201,7 +4326,6 @@ CONFIG_VDSO_GETRANDOM=y
|
|||||||
CONFIG_VFIO_IOMMU_TYPE1=m
|
CONFIG_VFIO_IOMMU_TYPE1=m
|
||||||
CONFIG_VFIO_PCI_CORE=m
|
CONFIG_VFIO_PCI_CORE=m
|
||||||
CONFIG_VFIO_PCI_INTX=y
|
CONFIG_VFIO_PCI_INTX=y
|
||||||
CONFIG_VFIO_PCI_MMAP=y
|
|
||||||
CONFIG_VFIO_VIRQFD=y
|
CONFIG_VFIO_VIRQFD=y
|
||||||
CONFIG_VGASTATE=m
|
CONFIG_VGASTATE=m
|
||||||
CONFIG_VHOST=m
|
CONFIG_VHOST=m
|
||||||
@@ -4223,10 +4347,24 @@ CONFIG_X86=y
|
|||||||
CONFIG_X86_64=y
|
CONFIG_X86_64=y
|
||||||
CONFIG_X86_64_SMP=y
|
CONFIG_X86_64_SMP=y
|
||||||
CONFIG_X86_CMOV=y
|
CONFIG_X86_CMOV=y
|
||||||
CONFIG_X86_CMPXCHG64=y
|
CONFIG_X86_CX8=y
|
||||||
CONFIG_X86_DEBUGCTLMSR=y
|
CONFIG_X86_DEBUGCTLMSR=y
|
||||||
CONFIG_X86_DIRECT_GBPAGES=y
|
CONFIG_X86_DIRECT_GBPAGES=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_CALL_DEPTH=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_CENTAUR_MCR=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_CYRIX_ARR=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_IBT=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_K6_MTRR=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_LA57=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_LAM=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_RETHUNK=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_RETPOLINE=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_RETPOLINE_LFENCE=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_UNRET=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_USER_SHSTK=y
|
||||||
|
CONFIG_X86_DISABLED_FEATURE_VME=y
|
||||||
CONFIG_X86_HAVE_PAE=y
|
CONFIG_X86_HAVE_PAE=y
|
||||||
|
CONFIG_X86_HV_CALLBACK_VECTOR=y
|
||||||
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
||||||
CONFIG_X86_IO_APIC=y
|
CONFIG_X86_IO_APIC=y
|
||||||
CONFIG_X86_L1_CACHE_SHIFT=6
|
CONFIG_X86_L1_CACHE_SHIFT=6
|
||||||
@@ -4235,12 +4373,36 @@ CONFIG_X86_MCE_THRESHOLD=y
|
|||||||
CONFIG_X86_MEM_ENCRYPT=y
|
CONFIG_X86_MEM_ENCRYPT=y
|
||||||
CONFIG_X86_MINIMUM_CPU_FAMILY=64
|
CONFIG_X86_MINIMUM_CPU_FAMILY=64
|
||||||
CONFIG_X86_NEED_RELOCS=y
|
CONFIG_X86_NEED_RELOCS=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_ALWAYS=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_CMOV=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_CPUID=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_CX8=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_FPU=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_FXSR=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_LM=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_MSR=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_NOPL=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_PAE=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_XMM=y
|
||||||
|
CONFIG_X86_REQUIRED_FEATURE_XMM2=y
|
||||||
CONFIG_X86_SPEEDSTEP_LIB=m
|
CONFIG_X86_SPEEDSTEP_LIB=m
|
||||||
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
|
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
|
||||||
CONFIG_X86_THERMAL_VECTOR=y
|
CONFIG_X86_THERMAL_VECTOR=y
|
||||||
CONFIG_X86_TSC=y
|
CONFIG_X86_TSC=y
|
||||||
CONFIG_X86_VMX_FEATURE_NAMES=y
|
CONFIG_X86_VMX_FEATURE_NAMES=y
|
||||||
CONFIG_XARRAY_MULTI=y
|
CONFIG_XARRAY_MULTI=y
|
||||||
|
CONFIG_XEN_ACPI=y
|
||||||
|
CONFIG_XEN_AUTO_XLATE=y
|
||||||
|
CONFIG_XEN_EFI=y
|
||||||
|
CONFIG_XEN_GRANT_DMA_OPS=y
|
||||||
|
CONFIG_XEN_HAVE_PVMMU=y
|
||||||
|
CONFIG_XEN_HAVE_VPMU=y
|
||||||
|
CONFIG_XEN_PCI_STUB=y
|
||||||
|
CONFIG_XEN_PVHVM=y
|
||||||
|
CONFIG_XEN_PVHVM_SMP=y
|
||||||
|
CONFIG_XEN_PV_SMP=y
|
||||||
|
CONFIG_XEN_SAVE_RESTORE=y
|
||||||
|
CONFIG_XEN_XENBUS_FRONTEND=y
|
||||||
CONFIG_XFRM=y
|
CONFIG_XFRM=y
|
||||||
CONFIG_XFRM_AH=m
|
CONFIG_XFRM_AH=m
|
||||||
CONFIG_XFRM_ALGO=m
|
CONFIG_XFRM_ALGO=m
|
||||||
|
7
debian/copyright
vendored
7
debian/copyright
vendored
@@ -82,7 +82,7 @@ Files: fs/nls/mac-*
|
|||||||
Copyright: 1991-2012 Unicode, Inc.
|
Copyright: 1991-2012 Unicode, Inc.
|
||||||
License: Unicode-data
|
License: Unicode-data
|
||||||
All rights reserved. Distributed under the Terms of Use in
|
All rights reserved. Distributed under the Terms of Use in
|
||||||
http://www.unicode.org/copyright.html.
|
https://www.unicode.org/copyright.html.
|
||||||
.
|
.
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of the Unicode data files and any associated documentation (the "Data
|
copy of the Unicode data files and any associated documentation (the "Data
|
||||||
@@ -191,8 +191,7 @@ License: GPL-2
|
|||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
.
|
.
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this package; if not, write to the Free Software
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
.
|
.
|
||||||
On Debian systems, the complete text of the GNU General Public License version
|
On Debian systems, the complete text of the GNU General Public License version
|
||||||
2 can be found in `/usr/share/common-licenses/GPL-2'.
|
2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
@@ -209,7 +208,7 @@ License: LGPL-2.1
|
|||||||
Lesser General Public License for more details.
|
Lesser General Public License for more details.
|
||||||
.
|
.
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this program; If not, see <http://www.gnu.org/licenses/>.
|
along with this program; If not, see <https://www.gnu.org/licenses/>.
|
||||||
.
|
.
|
||||||
On Debian systems, the complete text of the GNU Lesser General Public
|
On Debian systems, the complete text of the GNU Lesser General Public
|
||||||
License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||||
|
2
debian/hyperv-daemons.postinst
vendored
2
debian/hyperv-daemons.postinst
vendored
@@ -9,7 +9,7 @@ configure )
|
|||||||
if [ ${have_systemd} = 1 ] ; then
|
if [ ${have_systemd} = 1 ] ; then
|
||||||
if [ -z "$2" ] ; then
|
if [ -z "$2" ] ; then
|
||||||
# On initial install make sure udev notifies systemd
|
# On initial install make sure udev notifies systemd
|
||||||
udevadm trigger || true
|
udevadm trigger || :
|
||||||
else
|
else
|
||||||
# On upgrade make sure running daemons are restarted
|
# On upgrade make sure running daemons are restarted
|
||||||
systemctl try-restart hv-kvp-daemon.service hv-vss-daemon.service
|
systemctl try-restart hv-kvp-daemon.service hv-vss-daemon.service
|
||||||
|
8
debian/hyperv-daemons.preinst
vendored
8
debian/hyperv-daemons.preinst
vendored
@@ -14,11 +14,11 @@ upgrade )
|
|||||||
init_service="hyperv-daemons.hv-$i-daemon"
|
init_service="hyperv-daemons.hv-$i-daemon"
|
||||||
systemd_unit="${init_service}.service"
|
systemd_unit="${init_service}.service"
|
||||||
if [ ${have_systemd} = 1 ] ; then
|
if [ ${have_systemd} = 1 ] ; then
|
||||||
systemctl stop "${systemd_unit}" 2>/dev/null || true
|
systemctl stop "${systemd_unit}" 2>/dev/null || :
|
||||||
fi
|
fi
|
||||||
deb-systemd-helper purge "${systemd_unit}" || true
|
deb-systemd-helper purge "${systemd_unit}" || :
|
||||||
invoke-rc.d --skip-systemd-native "${init_service}" stop || true
|
invoke-rc.d --skip-systemd-native "${init_service}" stop || :
|
||||||
update-rc.d "${init_service}" remove || true
|
update-rc.d "${init_service}" remove || :
|
||||||
done ; unset services i init_service systemd_unit
|
done ; unset services i init_service systemd_unit
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
27
debian/lib/python/debian_linux/debian.py
vendored
27
debian/lib/python/debian_linux/debian.py
vendored
@@ -181,28 +181,6 @@ class VersionLinux(Version):
|
|||||||
\d+
|
\d+
|
||||||
)
|
)
|
||||||
)?
|
)?
|
||||||
$
|
|
||||||
""", re.X)
|
|
||||||
_revision_re = re.compile(r"""
|
|
||||||
\d+
|
|
||||||
(\.\d+)?
|
|
||||||
(?:
|
|
||||||
(?P<revision_experimental>
|
|
||||||
~exp\d+
|
|
||||||
)
|
|
||||||
|
|
|
||||||
(?P<revision_security>
|
|
||||||
(?:[~+]deb\d+u\d+)+
|
|
||||||
)?
|
|
||||||
(?P<revision_backports>
|
|
||||||
~bpo\d+\+\d+
|
|
||||||
)?
|
|
||||||
|
|
|
||||||
(?P<revision_other>
|
|
||||||
.+?
|
|
||||||
)
|
|
||||||
)
|
|
||||||
(?:\+b\d+)?
|
|
||||||
$
|
$
|
||||||
""", re.X)
|
""", re.X)
|
||||||
|
|
||||||
@@ -223,11 +201,6 @@ $
|
|||||||
self.linux_upstream = d['version']
|
self.linux_upstream = d['version']
|
||||||
self.linux_upstream_full = self.linux_upstream + d['update']
|
self.linux_upstream_full = self.linux_upstream + d['update']
|
||||||
self.linux_dfsg = d['dfsg']
|
self.linux_dfsg = d['dfsg']
|
||||||
d = rev_match.groupdict()
|
|
||||||
self.linux_revision_experimental = d['revision_experimental'] and True
|
|
||||||
self.linux_revision_security = d['revision_security'] and True
|
|
||||||
self.linux_revision_backports = d['revision_backports'] and True
|
|
||||||
self.linux_revision_other = d['revision_other'] and True
|
|
||||||
|
|
||||||
|
|
||||||
class PackageArchitecture(set[str]):
|
class PackageArchitecture(set[str]):
|
||||||
|
2
debian/libcpupower1.symbols
vendored
2
debian/libcpupower1.symbols
vendored
@@ -6,6 +6,7 @@ libcpupower.so.1 libcpupower1 #MINVER#
|
|||||||
cpufreq_get_available_governors@Base 4.7~rc2-1~exp1
|
cpufreq_get_available_governors@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_get_boost_frequencies@Base 5.5.8-1~exp1
|
cpufreq_get_boost_frequencies@Base 5.5.8-1~exp1
|
||||||
cpufreq_get_driver@Base 4.7~rc2-1~exp1
|
cpufreq_get_driver@Base 4.7~rc2-1~exp1
|
||||||
|
cpufreq_get_energy_performance_preference@Base 6.14~
|
||||||
cpufreq_get_freq_hardware@Base 4.7~rc2-1~exp1
|
cpufreq_get_freq_hardware@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_get_freq_kernel@Base 4.7~rc2-1~exp1
|
cpufreq_get_freq_kernel@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_get_hardware_limits@Base 4.7~rc2-1~exp1
|
cpufreq_get_hardware_limits@Base 4.7~rc2-1~exp1
|
||||||
@@ -23,6 +24,7 @@ libcpupower.so.1 libcpupower1 #MINVER#
|
|||||||
cpufreq_put_available_governors@Base 4.7~rc2-1~exp1
|
cpufreq_put_available_governors@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_put_boost_frequencies@Base 5.5.8-1~exp1
|
cpufreq_put_boost_frequencies@Base 5.5.8-1~exp1
|
||||||
cpufreq_put_driver@Base 4.7~rc2-1~exp1
|
cpufreq_put_driver@Base 4.7~rc2-1~exp1
|
||||||
|
cpufreq_put_energy_performance_preference@Base 6.14~
|
||||||
cpufreq_put_policy@Base 4.7~rc2-1~exp1
|
cpufreq_put_policy@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_put_related_cpus@Base 4.7~rc2-1~exp1
|
cpufreq_put_related_cpus@Base 4.7~rc2-1~exp1
|
||||||
cpufreq_put_stats@Base 4.7~rc2-1~exp1
|
cpufreq_put_stats@Base 4.7~rc2-1~exp1
|
||||||
|
2
debian/linux-misc-tools.manpages
vendored
Normal file
2
debian/linux-misc-tools.manpages
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
tools/thermal/thermometer/thermometer.8
|
||||||
|
tools/thermal/tmon/tmon.8
|
10
debian/linux-perf.lintian-overrides.arm64
vendored
Normal file
10
debian/linux-perf.lintian-overrides.arm64
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# This is a test program that does not link any libraries, either
|
||||||
|
# statically or dynamically
|
||||||
|
linux-perf: statically-linked-binary [usr/lib/perf-core/tests/shell/coresight/asm_pure_loop/asm_pure_loop]
|
||||||
|
|
||||||
|
# Some of these plugins only need symbols from libtraceevent, which
|
||||||
|
# loads them and should not have a NEEDED entry
|
||||||
|
linux-perf: shared-library-lacks-prerequisites *usr/lib/traceevent/plugins/plugin_*.so*
|
||||||
|
|
||||||
|
# This transition was too complex for dh_installdeb to handle
|
||||||
|
linux-perf: maintainer-script-should-not-use-dpkg-maintscript-helper "dpkg-maintscript-helper" *
|
@@ -1,29 +0,0 @@
|
|||||||
From: Takashi Iwai <tiwai@suse.de>
|
|
||||||
Date: Wed, 2 Apr 2025 09:42:07 +0200
|
|
||||||
Subject: ALSA: hda/realtek: Fix built-in mic on another ASUS VivoBook model
|
|
||||||
Origin: https://git.kernel.org/linus/8983dc1b66c0e1928a263b8af0bb06f6cb9229c4
|
|
||||||
Bug-Debian: https://bugs.debian.org/1100928
|
|
||||||
|
|
||||||
There is another VivoBook model which built-in mic got broken recently
|
|
||||||
by the fix of the pin sort. Apply the correct quirk
|
|
||||||
ALC256_FIXUP_ASUS_MIC_NO_PRESENCE to this model for addressing the
|
|
||||||
regression, too.
|
|
||||||
|
|
||||||
Fixes: 3b4309546b48 ("ALSA: hda: Fix headset detection failure due to unstable sort")
|
|
||||||
Closes: https://lore.kernel.org/Z95s5T6OXFPjRnKf@eldamar.lan
|
|
||||||
Link: https://patch.msgid.link/20250402074208.7347-1-tiwai@suse.de
|
|
||||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
||||||
---
|
|
||||||
sound/pci/hda/patch_realtek.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
--- a/sound/pci/hda/patch_realtek.c
|
|
||||||
+++ b/sound/pci/hda/patch_realtek.c
|
|
||||||
@@ -10772,6 +10772,7 @@ static const struct hda_quirk alc269_fix
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1c43, "ASUS UX8406MA", ALC245_FIXUP_CS35L41_SPI_2),
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1c62, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1c63, "ASUS GU605M", ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1),
|
|
||||||
+ SND_PCI_QUIRK(0x1043, 0x1c80, "ASUS VivoBook TP401", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS),
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1c9f, "ASUS G614JU/JV/JI", ALC285_FIXUP_ASUS_HEADSET_MIC),
|
|
||||||
SND_PCI_QUIRK(0x1043, 0x1caf, "ASUS G634JY/JZ/JI/JG", ALC285_FIXUP_ASUS_SPI_REAR_SPEAKERS),
|
|
@@ -42,7 +42,7 @@ correctness.
|
|||||||
|
|
||||||
static int m88e1540_get_fld(struct phy_device *phydev, u8 *msecs)
|
static int m88e1540_get_fld(struct phy_device *phydev, u8 *msecs)
|
||||||
{
|
{
|
||||||
@@ -3848,6 +3852,7 @@ static struct phy_driver marvell_drivers
|
@@ -3828,6 +3832,7 @@ static struct phy_driver marvell_drivers
|
||||||
.led_hw_control_set = m88e1318_led_hw_control_set,
|
.led_hw_control_set = m88e1318_led_hw_control_set,
|
||||||
.led_hw_control_get = m88e1318_led_hw_control_get,
|
.led_hw_control_get = m88e1318_led_hw_control_get,
|
||||||
},
|
},
|
||||||
@@ -50,7 +50,7 @@ correctness.
|
|||||||
{
|
{
|
||||||
.phy_id = MARVELL_PHY_ID_88E1145,
|
.phy_id = MARVELL_PHY_ID_88E1145,
|
||||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||||
@@ -3871,6 +3876,8 @@ static struct phy_driver marvell_drivers
|
@@ -3851,6 +3856,8 @@ static struct phy_driver marvell_drivers
|
||||||
.cable_test_start = m88e1111_vct_cable_test_start,
|
.cable_test_start = m88e1111_vct_cable_test_start,
|
||||||
.cable_test_get_status = m88e1111_vct_cable_test_get_status,
|
.cable_test_get_status = m88e1111_vct_cable_test_get_status,
|
||||||
},
|
},
|
||||||
@@ -59,7 +59,7 @@ correctness.
|
|||||||
{
|
{
|
||||||
.phy_id = MARVELL_PHY_ID_88E1149R,
|
.phy_id = MARVELL_PHY_ID_88E1149R,
|
||||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||||
@@ -3889,6 +3896,8 @@ static struct phy_driver marvell_drivers
|
@@ -3869,6 +3876,8 @@ static struct phy_driver marvell_drivers
|
||||||
.get_strings = marvell_get_strings,
|
.get_strings = marvell_get_strings,
|
||||||
.get_stats = marvell_get_stats,
|
.get_stats = marvell_get_stats,
|
||||||
},
|
},
|
||||||
@@ -68,7 +68,7 @@ correctness.
|
|||||||
{
|
{
|
||||||
.phy_id = MARVELL_PHY_ID_88E1240,
|
.phy_id = MARVELL_PHY_ID_88E1240,
|
||||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||||
@@ -3909,6 +3918,7 @@ static struct phy_driver marvell_drivers
|
@@ -3889,6 +3898,7 @@ static struct phy_driver marvell_drivers
|
||||||
.get_tunable = m88e1011_get_tunable,
|
.get_tunable = m88e1011_get_tunable,
|
||||||
.set_tunable = m88e1011_set_tunable,
|
.set_tunable = m88e1011_set_tunable,
|
||||||
},
|
},
|
||||||
@@ -76,7 +76,7 @@ correctness.
|
|||||||
{
|
{
|
||||||
.phy_id = MARVELL_PHY_ID_88E1116R,
|
.phy_id = MARVELL_PHY_ID_88E1116R,
|
||||||
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
.phy_id_mask = MARVELL_PHY_ID_MASK,
|
||||||
@@ -4197,9 +4207,9 @@ static const struct mdio_device_id __may
|
@@ -4177,9 +4187,9 @@ static const struct mdio_device_id __may
|
||||||
{ MARVELL_PHY_ID_88E1111_FINISAR, MARVELL_PHY_ID_MASK },
|
{ MARVELL_PHY_ID_88E1111_FINISAR, MARVELL_PHY_ID_MASK },
|
||||||
{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
|
{ MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK },
|
||||||
{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
|
{ MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK },
|
||||||
|
@@ -1,32 +0,0 @@
|
|||||||
From: Ben Hutchings <benh@debian.org>
|
|
||||||
Date: Mon, 16 Sep 2024 00:07:04 +0200
|
|
||||||
Subject: Documentation: Use relative source filenames in ABI documentation
|
|
||||||
|
|
||||||
Currently the ABI documentation files contain absolute source
|
|
||||||
filenames, which makes them unreproducible if the build directory can
|
|
||||||
vary.
|
|
||||||
|
|
||||||
Remove the source base directory ($srctree) from the source filenames
|
|
||||||
shown in the documentation.
|
|
||||||
|
|
||||||
Signed-off-by: Ben Hutchings <benh@debian.org>
|
|
||||||
---
|
|
||||||
--- a/Documentation/sphinx/kernel_abi.py
|
|
||||||
+++ b/Documentation/sphinx/kernel_abi.py
|
|
||||||
@@ -103,6 +103,7 @@ class KernelCmd(Directive):
|
|
||||||
lines = code_block + "\n\n"
|
|
||||||
|
|
||||||
line_regex = re.compile(r"^\.\. LINENO (\S+)\#([0-9]+)$")
|
|
||||||
+ srctree = os.path.abspath(os.environ["srctree"])
|
|
||||||
ln = 0
|
|
||||||
n = 0
|
|
||||||
f = fname
|
|
||||||
@@ -127,7 +128,7 @@ class KernelCmd(Directive):
|
|
||||||
# sphinx counts lines from 0
|
|
||||||
ln = int(match.group(2)) - 1
|
|
||||||
else:
|
|
||||||
- content.append(line, f, ln)
|
|
||||||
+ content.append(line, os.path.relpath(f, srctree), ln)
|
|
||||||
|
|
||||||
kernellog.info(self.state.document.settings.env.app, "%s: parsed %i lines" % (fname, n))
|
|
||||||
|
|
@@ -18,7 +18,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/fs/btrfs/super.c
|
--- a/fs/btrfs/super.c
|
||||||
+++ b/fs/btrfs/super.c
|
+++ b/fs/btrfs/super.c
|
||||||
@@ -2627,7 +2627,7 @@ module_exit(exit_btrfs_fs)
|
@@ -2630,7 +2630,7 @@ module_exit(exit_btrfs_fs)
|
||||||
|
|
||||||
MODULE_DESCRIPTION("B-Tree File System (BTRFS)");
|
MODULE_DESCRIPTION("B-Tree File System (BTRFS)");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
@@ -29,7 +29,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
MODULE_SOFTDEP("pre: blake2b-256");
|
MODULE_SOFTDEP("pre: blake2b-256");
|
||||||
--- a/fs/jbd2/journal.c
|
--- a/fs/jbd2/journal.c
|
||||||
+++ b/fs/jbd2/journal.c
|
+++ b/fs/jbd2/journal.c
|
||||||
@@ -3152,6 +3152,7 @@ static void __exit journal_exit(void)
|
@@ -3158,6 +3158,7 @@ static void __exit journal_exit(void)
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Generic filesystem journal-writing module");
|
MODULE_DESCRIPTION("Generic filesystem journal-writing module");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
@@ -39,7 +39,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/fs/nfsd/nfsctl.c
|
--- a/fs/nfsd/nfsctl.c
|
||||||
+++ b/fs/nfsd/nfsctl.c
|
+++ b/fs/nfsd/nfsctl.c
|
||||||
@@ -2344,5 +2344,8 @@ static void __exit exit_nfsd(void)
|
@@ -2349,5 +2349,8 @@ static void __exit exit_nfsd(void)
|
||||||
MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
|
MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");
|
||||||
MODULE_DESCRIPTION("In-kernel NFS server");
|
MODULE_DESCRIPTION("In-kernel NFS server");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
@@ -9,7 +9,7 @@ sources.
|
|||||||
|
|
||||||
--- a/scripts/Makefile.build
|
--- a/scripts/Makefile.build
|
||||||
+++ b/scripts/Makefile.build
|
+++ b/scripts/Makefile.build
|
||||||
@@ -188,6 +188,11 @@ cmd_record_mcount = $(if $(findstring $(
|
@@ -184,6 +184,11 @@ cmd_record_mcount = $(if $(findstring $(
|
||||||
$(sub_cmd_record_mcount))
|
$(sub_cmd_record_mcount))
|
||||||
endif # CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
|
endif # CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
|
||||||
|
|
||||||
|
41
debian/patches/bugfix/all/libbpf-use-the-standard-fixdep-build-rule.patch
vendored
Normal file
41
debian/patches/bugfix/all/libbpf-use-the-standard-fixdep-build-rule.patch
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
From: Ben Hutchings <benh@debian.org>
|
||||||
|
Date: Sun, 20 Apr 2025 18:50:44 +0200
|
||||||
|
Subject: libbpf: Use the standard fixdep build rule
|
||||||
|
|
||||||
|
libbpf's all target depends on the fixdep target defined in
|
||||||
|
tools/scripts/Makefile.include. However the $(BPF_IN_SHARED) and
|
||||||
|
$(BPF_IN_STATIC) targets don't use it, but instead rebuild fixdep in
|
||||||
|
the staticobjs or sharedobjs subdirectory using a different command.
|
||||||
|
|
||||||
|
Change the $(BPF_IN_SHARED) and $(BPF_IN_STATIC) targets to depend on
|
||||||
|
fixdep and to symlink the executable into the respective output
|
||||||
|
subdirectory.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Hutchings <benh@debian.org>
|
||||||
|
---
|
||||||
|
--- a/tools/lib/bpf/Makefile
|
||||||
|
+++ b/tools/lib/bpf/Makefile
|
||||||
|
@@ -134,7 +134,7 @@ all_cmd: $(CMD_TARGETS) check
|
||||||
|
$(SHARED_OBJDIR) $(STATIC_OBJDIR):
|
||||||
|
$(Q)mkdir -p $@
|
||||||
|
|
||||||
|
-$(BPF_IN_SHARED): force $(BPF_GENERATED) | $(SHARED_OBJDIR)
|
||||||
|
+$(BPF_IN_SHARED): fixdep force $(BPF_GENERATED) | $(SHARED_OBJDIR)
|
||||||
|
@(test -f ../../include/uapi/linux/bpf.h -a -f ../../../include/uapi/linux/bpf.h && ( \
|
||||||
|
(diff -B ../../include/uapi/linux/bpf.h ../../../include/uapi/linux/bpf.h >/dev/null) || \
|
||||||
|
echo "Warning: Kernel ABI header at 'tools/include/uapi/linux/bpf.h' differs from latest version at 'include/uapi/linux/bpf.h'" >&2 )) || true
|
||||||
|
@@ -144,11 +144,11 @@ $(BPF_IN_SHARED): force $(BPF_GENERATED)
|
||||||
|
@(test -f ../../include/uapi/linux/if_xdp.h -a -f ../../../include/uapi/linux/if_xdp.h && ( \
|
||||||
|
(diff -B ../../include/uapi/linux/if_xdp.h ../../../include/uapi/linux/if_xdp.h >/dev/null) || \
|
||||||
|
echo "Warning: Kernel ABI header at 'tools/include/uapi/linux/if_xdp.h' differs from latest version at 'include/uapi/linux/if_xdp.h'" >&2 )) || true
|
||||||
|
- $(SILENT_MAKE) -C $(srctree)/tools/build CFLAGS= LDFLAGS= OUTPUT=$(SHARED_OBJDIR) $(SHARED_OBJDIR)fixdep
|
||||||
|
+ ln -sf ../fixdep $(SHARED_OBJDIR)/
|
||||||
|
$(Q)$(MAKE) $(build)=libbpf OUTPUT=$(SHARED_OBJDIR) CFLAGS="$(CFLAGS) $(SHLIB_FLAGS)"
|
||||||
|
|
||||||
|
-$(BPF_IN_STATIC): force $(BPF_GENERATED) | $(STATIC_OBJDIR)
|
||||||
|
- $(SILENT_MAKE) -C $(srctree)/tools/build CFLAGS= LDFLAGS= OUTPUT=$(STATIC_OBJDIR) $(STATIC_OBJDIR)fixdep
|
||||||
|
+$(BPF_IN_STATIC): fixdep force $(BPF_GENERATED) | $(STATIC_OBJDIR)
|
||||||
|
+ ln -sf ../fixdep $(STATIC_OBJDIR)/
|
||||||
|
$(Q)$(MAKE) $(build)=libbpf OUTPUT=$(STATIC_OBJDIR)
|
||||||
|
|
||||||
|
$(BPF_HELPER_DEFS): $(srctree)/tools/include/uapi/linux/bpf.h
|
@@ -16,7 +16,7 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
|
|||||||
---
|
---
|
||||||
--- a/tools/perf/Makefile.perf
|
--- a/tools/perf/Makefile.perf
|
||||||
+++ b/tools/perf/Makefile.perf
|
+++ b/tools/perf/Makefile.perf
|
||||||
@@ -945,7 +945,7 @@ $(LIBAPI)-clean:
|
@@ -963,7 +963,7 @@ $(LIBAPI)-clean:
|
||||||
$(LIBBPF): FORCE | $(LIBBPF_OUTPUT)
|
$(LIBBPF): FORCE | $(LIBBPF_OUTPUT)
|
||||||
$(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) \
|
$(Q)$(MAKE) -C $(LIBBPF_DIR) FEATURES_DUMP=$(FEATURE_DUMP_EXPORT) \
|
||||||
O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix= subdir= \
|
O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix= subdir= \
|
||||||
|
@@ -21,7 +21,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
+ * much older kernel. Do "use" the attr structure here to avoid
|
+ * much older kernel. Do "use" the attr structure here to avoid
|
||||||
+ * a "set but not used" warning.
|
+ * a "set but not used" warning.
|
||||||
*/
|
*/
|
||||||
- return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr));
|
- return syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr)) == 0;
|
||||||
+ (void)&attr;
|
+ (void)&attr;
|
||||||
+ return 0;
|
+ return 0;
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,7 @@ Signed-off-by: Ben Hutchings <benh@debian.org>
|
|||||||
---
|
---
|
||||||
--- a/tools/perf/Makefile.perf
|
--- a/tools/perf/Makefile.perf
|
||||||
+++ b/tools/perf/Makefile.perf
|
+++ b/tools/perf/Makefile.perf
|
||||||
@@ -919,7 +919,7 @@ $(OUTPUT)dlfilters/%.o: dlfilters/%.c in
|
@@ -937,7 +937,7 @@ $(OUTPUT)dlfilters/%.o: dlfilters/%.c in
|
||||||
.SECONDARY: $(DLFILTERS:.so=.o)
|
.SECONDARY: $(DLFILTERS:.so=.o)
|
||||||
|
|
||||||
$(OUTPUT)dlfilters/%.so: $(OUTPUT)dlfilters/%.o
|
$(OUTPUT)dlfilters/%.so: $(OUTPUT)dlfilters/%.o
|
||||||
|
@@ -69,7 +69,7 @@ Signed-off-by: Geoff Levand <geoff@infradead.org>
|
|||||||
* acpi_boot_table_init() called from setup_arch(), always.
|
* acpi_boot_table_init() called from setup_arch(), always.
|
||||||
* 1. find RSDP and get its address, and then find XSDT
|
* 1. find RSDP and get its address, and then find XSDT
|
||||||
* 2. extract all tables and checksums them all
|
* 2. extract all tables and checksums them all
|
||||||
@@ -257,6 +286,8 @@ done:
|
@@ -261,6 +290,8 @@ done:
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_ACPI_BGRT))
|
if (IS_ENABLED(CONFIG_ACPI_BGRT))
|
||||||
acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
|
acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
|
||||||
|
@@ -1,89 +0,0 @@
|
|||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
Date: Mon, 07 Feb 2022 00:00:26 +0100
|
|
||||||
Subject: sh: Do not use hyphen in exported variable names
|
|
||||||
|
|
||||||
arch/sh/Makefile defines and exports ld-bfd to be used by
|
|
||||||
arch/sh/boot/Makefile and arch/sh/boot/compressed/Makefile. However
|
|
||||||
some shells, including dash, will not pass through environment
|
|
||||||
variables whose name includes a hyphen. Usually GNU make does not use
|
|
||||||
a shell to recurse, but if e.g. $(srctree) contains '~' it will use a
|
|
||||||
shell here.
|
|
||||||
|
|
||||||
Rename the variable to ld_bfd.
|
|
||||||
|
|
||||||
(Another instance of this problem was fixed upstream by commit
|
|
||||||
82977af93a0d "sh: rename suffix-y to suffix_y".)
|
|
||||||
|
|
||||||
References: https://buildd.debian.org/status/fetch.php?pkg=linux&arch=sh4&ver=4.13%7Erc5-1%7Eexp1&stamp=1502943967&raw=0
|
|
||||||
Fixes: ef9b542fce00 ("sh: bzip2/lzma uImage support.")
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
arch/sh/Makefile | 10 +++++-----
|
|
||||||
arch/sh/boot/compressed/Makefile | 4 ++--
|
|
||||||
arch/sh/boot/romimage/Makefile | 4 ++--
|
|
||||||
3 files changed, 9 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/sh/Makefile
|
|
||||||
+++ b/arch/sh/Makefile
|
|
||||||
@@ -102,16 +102,16 @@ UTS_MACHINE := sh
|
|
||||||
LDFLAGS_vmlinux += -e _stext
|
|
||||||
|
|
||||||
ifdef CONFIG_CPU_LITTLE_ENDIAN
|
|
||||||
-ld-bfd := elf32-sh-linux
|
|
||||||
-LDFLAGS_vmlinux += --defsym jiffies=jiffies_64 --oformat $(ld-bfd)
|
|
||||||
+ld_bfd := elf32-sh-linux
|
|
||||||
+LDFLAGS_vmlinux += --defsym jiffies=jiffies_64 --oformat $(ld_bfd)
|
|
||||||
KBUILD_LDFLAGS += -EL
|
|
||||||
else
|
|
||||||
-ld-bfd := elf32-shbig-linux
|
|
||||||
-LDFLAGS_vmlinux += --defsym jiffies=jiffies_64+4 --oformat $(ld-bfd)
|
|
||||||
+ld_bfd := elf32-shbig-linux
|
|
||||||
+LDFLAGS_vmlinux += --defsym jiffies=jiffies_64+4 --oformat $(ld_bfd)
|
|
||||||
KBUILD_LDFLAGS += -EB
|
|
||||||
endif
|
|
||||||
|
|
||||||
-export ld-bfd
|
|
||||||
+export ld_bfd
|
|
||||||
|
|
||||||
# Mach groups
|
|
||||||
machdir-$(CONFIG_SOLUTION_ENGINE) += mach-se
|
|
||||||
--- a/arch/sh/boot/compressed/Makefile
|
|
||||||
+++ b/arch/sh/boot/compressed/Makefile
|
|
||||||
@@ -27,7 +27,7 @@ endif
|
|
||||||
|
|
||||||
ccflags-remove-$(CONFIG_MCOUNT) += -pg
|
|
||||||
|
|
||||||
-LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
|
|
||||||
+LDFLAGS_vmlinux := --oformat $(ld_bfd) -Ttext $(IMAGE_OFFSET) -e startup \
|
|
||||||
-T $(obj)/../../kernel/vmlinux.lds
|
|
||||||
|
|
||||||
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
|
||||||
@@ -51,7 +51,7 @@ $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.b
|
|
||||||
|
|
||||||
OBJCOPYFLAGS += -R .empty_zero_page
|
|
||||||
|
|
||||||
-LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
|
|
||||||
+LDFLAGS_piggy.o := -r --format binary --oformat $(ld_bfd) -T
|
|
||||||
|
|
||||||
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
|
|
||||||
$(call if_changed,ld)
|
|
||||||
--- a/arch/sh/boot/romimage/Makefile
|
|
||||||
+++ b/arch/sh/boot/romimage/Makefile
|
|
||||||
@@ -13,7 +13,7 @@ mmcif-obj-$(CONFIG_CPU_SUBTYPE_SH7724) :
|
|
||||||
load-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-load-y)
|
|
||||||
obj-$(CONFIG_ROMIMAGE_MMCIF) := $(mmcif-obj-y)
|
|
||||||
|
|
||||||
-LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(load-y) -e romstart \
|
|
||||||
+LDFLAGS_vmlinux := --oformat $(ld_bfd) -Ttext $(load-y) -e romstart \
|
|
||||||
-T $(obj)/../../kernel/vmlinux.lds
|
|
||||||
|
|
||||||
$(obj)/vmlinux: $(obj)/head.o $(obj-y) $(obj)/piggy.o FORCE
|
|
||||||
@@ -24,7 +24,7 @@ OBJCOPYFLAGS += -j .empty_zero_page
|
|
||||||
$(obj)/zeropage.bin: vmlinux FORCE
|
|
||||||
$(call if_changed,objcopy)
|
|
||||||
|
|
||||||
-LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
|
|
||||||
+LDFLAGS_piggy.o := -r --format binary --oformat $(ld_bfd) -T
|
|
||||||
|
|
||||||
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/zeropage.bin arch/sh/boot/zImage FORCE
|
|
||||||
$(call if_changed,ld)
|
|
@@ -34,7 +34,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
/*
|
/*
|
||||||
* Minimum number of threads to boot the kernel
|
* Minimum number of threads to boot the kernel
|
||||||
*/
|
*/
|
||||||
@@ -2167,6 +2173,10 @@ __latent_entropy struct task_struct *cop
|
@@ -2194,6 +2200,10 @@ __latent_entropy struct task_struct *cop
|
||||||
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
|
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
/*
|
/*
|
||||||
* Thread groups must share signals as well, and detached threads
|
* Thread groups must share signals as well, and detached threads
|
||||||
* can only be started up within the thread group.
|
* can only be started up within the thread group.
|
||||||
@@ -3320,6 +3330,12 @@ int ksys_unshare(unsigned long unshare_f
|
@@ -3354,6 +3364,12 @@ int ksys_unshare(unsigned long unshare_f
|
||||||
if (unshare_flags & CLONE_NEWNS)
|
if (unshare_flags & CLONE_NEWNS)
|
||||||
unshare_flags |= CLONE_FS;
|
unshare_flags |= CLONE_FS;
|
||||||
|
|
||||||
@@ -60,18 +60,18 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
|
|||||||
goto bad_unshare_out;
|
goto bad_unshare_out;
|
||||||
--- a/kernel/sysctl.c
|
--- a/kernel/sysctl.c
|
||||||
+++ b/kernel/sysctl.c
|
+++ b/kernel/sysctl.c
|
||||||
@@ -135,6 +135,10 @@ static enum sysctl_writes_mode sysctl_wr
|
@@ -84,6 +84,10 @@ EXPORT_SYMBOL_GPL(sysctl_long_vals);
|
||||||
int sysctl_legacy_va_layout;
|
static const int ngroups_max = NGROUPS_MAX;
|
||||||
#endif
|
static const int cap_last_cap = CAP_LAST_CAP;
|
||||||
|
|
||||||
+#ifdef CONFIG_USER_NS
|
+#ifdef CONFIG_USER_NS
|
||||||
+extern int unprivileged_userns_clone;
|
+extern int unprivileged_userns_clone;
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
#endif /* CONFIG_SYSCTL */
|
#ifdef CONFIG_PROC_SYSCTL
|
||||||
|
|
||||||
/*
|
/**
|
||||||
@@ -1617,6 +1621,15 @@ static const struct ctl_table kern_table
|
@@ -1595,6 +1599,15 @@ static const struct ctl_table kern_table
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = proc_dointvec,
|
.proc_handler = proc_dointvec,
|
||||||
},
|
},
|
||||||
|
@@ -1,28 +1,19 @@
|
|||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
Date: Fri, 22 Jun 2018 17:27:00 +0100
|
Date: Tue, 08 Jul 2025 13:30:55 +0200
|
||||||
Subject: android: Enable building ashmem and binder as modules
|
Subject: android: Enable building binder as module
|
||||||
Bug-Debian: https://bugs.debian.org/901492
|
Bug-Debian: https://bugs.debian.org/901492
|
||||||
|
|
||||||
We want to enable use of the Android ashmem and binder drivers to
|
We want to enable use of the Android binder driver to support
|
||||||
support Anbox, but they should not be built-in as that would waste
|
Waydroid, but it should not be built-in as that would waste resources
|
||||||
resources and increase security attack surface on systems that don't
|
and increase security attack surface on systems that don't need it.
|
||||||
need them.
|
|
||||||
|
|
||||||
- Add a MODULE_LICENSE declaration to ashmem
|
- Change the Makefiles to build the driver as an object with the
|
||||||
- Change the Makefiles to build each driver as an object with the
|
"_linux" suffix (which is what Waydroid expects)
|
||||||
"_linux" suffix (which is what Anbox expects)
|
|
||||||
- Change config symbol types to tristate
|
- Change config symbol types to tristate
|
||||||
|
|
||||||
Update:
|
|
||||||
In upstream commit 721412ed3d titled "staging: remove ashmem" the ashmem
|
|
||||||
driver was removed entirely. Secondary commit message:
|
|
||||||
"The mainline replacement for ashmem is memfd, so remove the legacy
|
|
||||||
code from drivers/staging/"
|
|
||||||
Consequently, the ashmem part of this patch has been removed.
|
|
||||||
---
|
---
|
||||||
drivers/android/Kconfig | 2 +-
|
drivers/android/Kconfig | 2 +-
|
||||||
drivers/android/Makefile | 7 ++++---
|
drivers/android/Makefile | 7 ++++---
|
||||||
drivers/android/binder_alloc.c | 2 +-
|
drivers/android/binder_alloc.c | 2 +-
|
||||||
3 files changed, 6 insertions(+), 5 deletions(-)
|
3 files changed, 6 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
--- a/drivers/android/Kconfig
|
--- a/drivers/android/Kconfig
|
@@ -22,7 +22,7 @@ implementation went from disk-io.c to super.c; forwarded the issue]
|
|||||||
|
|
||||||
--- a/fs/btrfs/super.c
|
--- a/fs/btrfs/super.c
|
||||||
+++ b/fs/btrfs/super.c
|
+++ b/fs/btrfs/super.c
|
||||||
@@ -765,6 +765,18 @@ static void set_device_specific_options(
|
@@ -769,6 +769,18 @@ static void set_device_specific_options(
|
||||||
btrfs_set_opt(fs_info->mount_opt, SSD);
|
btrfs_set_opt(fs_info->mount_opt, SSD);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
Date: Thu, 16 Feb 2017 19:09:17 +0000
|
|
||||||
Subject: dccp: Disable auto-loading as mitigation against local exploits
|
|
||||||
Forwarded: not-needed
|
|
||||||
|
|
||||||
We can mitigate the effect of vulnerabilities in obscure protocols by
|
|
||||||
preventing unprivileged users from loading the modules, so that they
|
|
||||||
are only exploitable on systems where the administrator has chosen to
|
|
||||||
load the protocol.
|
|
||||||
|
|
||||||
The 'dccp' protocol is not actively maintained or widely used.
|
|
||||||
Therefore disable auto-loading.
|
|
||||||
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
--- a/net/dccp/ipv4.c
|
|
||||||
+++ b/net/dccp/ipv4.c
|
|
||||||
@@ -1099,8 +1099,8 @@ module_exit(dccp_v4_exit);
|
|
||||||
* values directly, Also cover the case where the protocol is not specified,
|
|
||||||
* i.e. net-pf-PF_INET-proto-0-type-SOCK_DCCP
|
|
||||||
*/
|
|
||||||
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6);
|
|
||||||
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6);
|
|
||||||
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 33, 6); */
|
|
||||||
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 0, 6); */
|
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
|
|
||||||
MODULE_DESCRIPTION("DCCP - Datagram Congestion Controlled Protocol");
|
|
||||||
--- a/net/dccp/ipv6.c
|
|
||||||
+++ b/net/dccp/ipv6.c
|
|
||||||
@@ -1174,8 +1174,8 @@ module_exit(dccp_v6_exit);
|
|
||||||
* values directly, Also cover the case where the protocol is not specified,
|
|
||||||
* i.e. net-pf-PF_INET6-proto-0-type-SOCK_DCCP
|
|
||||||
*/
|
|
||||||
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6);
|
|
||||||
-MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6);
|
|
||||||
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 33, 6); */
|
|
||||||
+/* MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 0, 6); */
|
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
MODULE_AUTHOR("Arnaldo Carvalho de Melo <acme@mandriva.com>");
|
|
||||||
MODULE_DESCRIPTION("DCCPv6 - Datagram Congestion Controlled Protocol");
|
|
@@ -21,7 +21,7 @@ probably discontinued 10 years ago.
|
|||||||
|
|
||||||
-config FB_NVIDIA
|
-config FB_NVIDIA
|
||||||
- tristate "nVidia Framebuffer Support"
|
- tristate "nVidia Framebuffer Support"
|
||||||
- depends on FB && PCI
|
- depends on FB && PCI && HAS_IOPORT
|
||||||
- select FB_CFB_FILLRECT
|
- select FB_CFB_FILLRECT
|
||||||
- select FB_CFB_COPYAREA
|
- select FB_CFB_COPYAREA
|
||||||
- select FB_CFB_IMAGEBLIT
|
- select FB_CFB_IMAGEBLIT
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
Date: Mon, 05 Aug 2024 03:26:48 +0200
|
Date: Tue, 08 Jul 2025 13:32:21 +0200
|
||||||
Subject: Export symbols needed by binder
|
Subject: Export symbols needed by binder
|
||||||
Bug-Debian: https://bugs.debian.org/901492
|
Bug-Debian: https://bugs.debian.org/901492
|
||||||
|
|
||||||
@@ -10,19 +10,20 @@ and increase security attack surface on systems that don't need it.
|
|||||||
Export the currently un-exported symbols it depends on.
|
Export the currently un-exported symbols it depends on.
|
||||||
|
|
||||||
---
|
---
|
||||||
fs/file.c | 1 +
|
fs/file.c | 1 +
|
||||||
ipc/msgutil.c | 1 +
|
ipc/msgutil.c | 1 +
|
||||||
ipc/namespace.c | 1 +
|
ipc/namespace.c | 1 +
|
||||||
kernel/sched/syscalls.c | 1 +
|
kernel/sched/syscalls.c | 1 +
|
||||||
kernel/sched/wait.c | 1 +
|
kernel/sched/wait.c | 1 +
|
||||||
kernel/task_work.c | 1 +
|
kernel/task_work.c | 1 +
|
||||||
mm/memory.c | 1 +
|
mm/list_lru.c | 2 ++
|
||||||
security/security.c | 4 ++++
|
mm/memory.c | 2 ++
|
||||||
8 files changed, 11 insertions(+)
|
security/security.c | 4 ++++
|
||||||
|
9 files changed, 14 insertions(+)
|
||||||
|
|
||||||
--- a/fs/file.c
|
--- a/fs/file.c
|
||||||
+++ b/fs/file.c
|
+++ b/fs/file.c
|
||||||
@@ -837,6 +837,7 @@ struct file *file_close_fd(unsigned int
|
@@ -858,6 +858,7 @@ struct file *file_close_fd(unsigned int
|
||||||
|
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
@@ -80,9 +81,27 @@ Export the currently un-exported symbols it depends on.
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* task_work_cancel_match - cancel a pending work added by task_work_add()
|
* task_work_cancel_match - cancel a pending work added by task_work_add()
|
||||||
|
--- a/mm/list_lru.c
|
||||||
|
+++ b/mm/list_lru.c
|
||||||
|
@@ -175,6 +175,7 @@ bool list_lru_add(struct list_lru *lru,
|
||||||
|
unlock_list_lru(l, false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
+EXPORT_SYMBOL_GPL(list_lru_add);
|
||||||
|
|
||||||
|
bool list_lru_add_obj(struct list_lru *lru, struct list_head *item)
|
||||||
|
{
|
||||||
|
@@ -212,6 +213,7 @@ bool list_lru_del(struct list_lru *lru,
|
||||||
|
unlock_list_lru(l, false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
+EXPORT_SYMBOL_GPL(list_lru_del);
|
||||||
|
|
||||||
|
bool list_lru_del_obj(struct list_lru *lru, struct list_head *item)
|
||||||
|
{
|
||||||
--- a/mm/memory.c
|
--- a/mm/memory.c
|
||||||
+++ b/mm/memory.c
|
+++ b/mm/memory.c
|
||||||
@@ -2030,6 +2030,7 @@ void zap_page_range_single(struct vm_are
|
@@ -2020,6 +2020,7 @@ void zap_page_range_single(struct vm_are
|
||||||
tlb_finish_mmu(&tlb);
|
tlb_finish_mmu(&tlb);
|
||||||
hugetlb_zap_end(vma, details);
|
hugetlb_zap_end(vma, details);
|
||||||
}
|
}
|
||||||
@@ -90,6 +109,14 @@ Export the currently un-exported symbols it depends on.
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* zap_vma_ptes - remove ptes mapping the vma
|
* zap_vma_ptes - remove ptes mapping the vma
|
||||||
|
@@ -6567,6 +6568,7 @@ inval:
|
||||||
|
count_vm_vma_lock_event(VMA_LOCK_ABORT);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
+EXPORT_SYMBOL_GPL(lock_vma_under_rcu);
|
||||||
|
#endif /* CONFIG_PER_VMA_LOCK */
|
||||||
|
|
||||||
|
#ifndef __PAGETABLE_P4D_FOLDED
|
||||||
--- a/security/security.c
|
--- a/security/security.c
|
||||||
+++ b/security/security.c
|
+++ b/security/security.c
|
||||||
@@ -996,6 +996,7 @@ int security_binder_set_context_mgr(cons
|
@@ -996,6 +996,7 @@ int security_binder_set_context_mgr(cons
|
@@ -12,7 +12,7 @@ actually used.
|
|||||||
---
|
---
|
||||||
--- a/fs/notify/fanotify/fanotify_user.c
|
--- a/fs/notify/fanotify/fanotify_user.c
|
||||||
+++ b/fs/notify/fanotify/fanotify_user.c
|
+++ b/fs/notify/fanotify/fanotify_user.c
|
||||||
@@ -1838,6 +1838,14 @@ static int do_fanotify_mark(int fanotify
|
@@ -1881,6 +1881,14 @@ static int do_fanotify_mark(int fanotify
|
||||||
umask = FANOTIFY_EVENT_FLAGS;
|
umask = FANOTIFY_EVENT_FLAGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
37
debian/patches/debian/firmware_loader-log-direct-loading-failures-as-info-for-d-i.patch
vendored
Normal file
37
debian/patches/debian/firmware_loader-log-direct-loading-failures-as-info-for-d-i.patch
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
From: Ben Hutchings <benh@debian.org>
|
||||||
|
Subject: firmware_loader: Log direct loading failures as info for d-i
|
||||||
|
Date: Thu, 30 May 2024 13:14:32 +0100
|
||||||
|
Forwarded: not-needed
|
||||||
|
|
||||||
|
On an installed Debian system, firmware packages will normally be
|
||||||
|
installed automatically based on a mapping of device IDs to firmware.
|
||||||
|
Within the Debian installer this has not yet happened and we need a
|
||||||
|
way to detect missing firmware.
|
||||||
|
|
||||||
|
Although many/most drivers log firmware loading failures, they do so
|
||||||
|
using many different formats. This adds a single log message to the
|
||||||
|
firmware loader, which the installer's hw-detect package will look
|
||||||
|
for. The log level is set to "info" because some failures are
|
||||||
|
expected and we do not want to confuse users with bogus error messages
|
||||||
|
(like in bug #966218).
|
||||||
|
|
||||||
|
NOTE: The log message format must not be changed without coordinating
|
||||||
|
this with the check-missing-firmware.sh in hw-detect.
|
||||||
|
---
|
||||||
|
drivers/base/firmware_loader/fallback.c | 2 +-
|
||||||
|
drivers/base/firmware_loader/main.c | 17 ++++++++---------
|
||||||
|
2 files changed, 9 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/base/firmware_loader/main.c
|
||||||
|
+++ b/drivers/base/firmware_loader/main.c
|
||||||
|
@@ -590,6 +590,10 @@ fw_get_filesystem_firmware(struct device
|
||||||
|
}
|
||||||
|
__putname(path);
|
||||||
|
|
||||||
|
+ if (rc)
|
||||||
|
+ dev_info(device, "firmware: failed to load %s (%d)\n",
|
||||||
|
+ fw_priv->fw_name, rc);
|
||||||
|
+
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
@@ -9,7 +9,7 @@ This reverts commit 561ec64ae67ef25cac8d72bb9c4bfc955edfd415
|
|||||||
|
|
||||||
--- a/fs/namei.c
|
--- a/fs/namei.c
|
||||||
+++ b/fs/namei.c
|
+++ b/fs/namei.c
|
||||||
@@ -1094,8 +1094,8 @@ static inline void put_link(struct namei
|
@@ -1095,8 +1095,8 @@ static inline void put_link(struct namei
|
||||||
path_put(&last->link);
|
path_put(&last->link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
---
|
---
|
||||||
--- a/net/ax25/af_ax25.c
|
--- a/net/ax25/af_ax25.c
|
||||||
+++ b/net/ax25/af_ax25.c
|
+++ b/net/ax25/af_ax25.c
|
||||||
@@ -2077,7 +2077,7 @@ module_init(ax25_init);
|
@@ -2067,7 +2067,7 @@ module_init(ax25_init);
|
||||||
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
|
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
|
||||||
MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol");
|
MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
4
debian/patches/debian/kernelvariables.patch
vendored
4
debian/patches/debian/kernelvariables.patch
vendored
@@ -19,7 +19,7 @@ use of $(ARCH) needs to be moved after this.
|
|||||||
---
|
---
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -405,36 +405,6 @@ include $(srctree)/scripts/subarch.inclu
|
@@ -402,36 +402,6 @@ include $(srctree)/scripts/subarch.inclu
|
||||||
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
|
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
|
||||||
ARCH ?= $(SUBARCH)
|
ARCH ?= $(SUBARCH)
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ use of $(ARCH) needs to be moved after this.
|
|||||||
KCONFIG_CONFIG ?= .config
|
KCONFIG_CONFIG ?= .config
|
||||||
export KCONFIG_CONFIG
|
export KCONFIG_CONFIG
|
||||||
|
|
||||||
@@ -555,6 +525,35 @@ RUSTFLAGS_KERNEL =
|
@@ -551,6 +521,35 @@ RUSTFLAGS_KERNEL =
|
||||||
AFLAGS_KERNEL =
|
AFLAGS_KERNEL =
|
||||||
LDFLAGS_vmlinux =
|
LDFLAGS_vmlinux =
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ to the installed location.
|
|||||||
---
|
---
|
||||||
--- a/tools/perf/builtin-report.c
|
--- a/tools/perf/builtin-report.c
|
||||||
+++ b/tools/perf/builtin-report.c
|
+++ b/tools/perf/builtin-report.c
|
||||||
@@ -660,10 +660,12 @@ static int report__browse_hists(struct r
|
@@ -666,10 +666,12 @@ static int report__browse_hists(struct r
|
||||||
|
|
||||||
path = system_path(TIPDIR);
|
path = system_path(TIPDIR);
|
||||||
if (perf_tip(&help, path) || help == NULL) {
|
if (perf_tip(&help, path) || help == NULL) {
|
||||||
|
@@ -20,7 +20,7 @@ is non-empty.
|
|||||||
---
|
---
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -1873,7 +1873,7 @@ PHONY += prepare
|
@@ -1882,7 +1882,7 @@ PHONY += prepare
|
||||||
# now expand this into a simple variable to reduce the cost of shell evaluations
|
# now expand this into a simple variable to reduce the cost of shell evaluations
|
||||||
prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
|
prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
|
||||||
prepare:
|
prepare:
|
||||||
|
@@ -10,7 +10,7 @@ Forwarded: not-needed
|
|||||||
|
|
||||||
--- a/tools/perf/Makefile.perf
|
--- a/tools/perf/Makefile.perf
|
||||||
+++ b/tools/perf/Makefile.perf
|
+++ b/tools/perf/Makefile.perf
|
||||||
@@ -1139,7 +1139,7 @@ install-bin: install-tools install-tests
|
@@ -1158,7 +1158,7 @@ install-bin: install-tools install-tests
|
||||||
install: install-bin try-install-man
|
install: install-bin try-install-man
|
||||||
|
|
||||||
install-python_ext:
|
install-python_ext:
|
||||||
|
@@ -4,7 +4,7 @@ Subject: linux-tools: Install perf-read-vdso{,x}32 in directory under /usr/lib
|
|||||||
|
|
||||||
--- a/tools/perf/Makefile.perf
|
--- a/tools/perf/Makefile.perf
|
||||||
+++ b/tools/perf/Makefile.perf
|
+++ b/tools/perf/Makefile.perf
|
||||||
@@ -1067,21 +1067,21 @@ install-tools: all install-gtk
|
@@ -1085,21 +1085,21 @@ install-tools: all install-gtk
|
||||||
$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'; \
|
$(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace'; \
|
||||||
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(includedir_SQ)/perf'; \
|
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(includedir_SQ)/perf'; \
|
||||||
$(INSTALL) -m 644 include/perf/perf_dlfilter.h -t '$(DESTDIR_SQ)$(includedir_SQ)/perf'
|
$(INSTALL) -m 644 include/perf/perf_dlfilter.h -t '$(DESTDIR_SQ)$(includedir_SQ)/perf'
|
||||||
|
@@ -13,7 +13,7 @@ $KBUILD_BUILD_TIMESTAMP.
|
|||||||
|
|
||||||
--- a/init/Makefile
|
--- a/init/Makefile
|
||||||
+++ b/init/Makefile
|
+++ b/init/Makefile
|
||||||
@@ -29,7 +29,7 @@ preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) :
|
@@ -30,7 +30,7 @@ preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) :
|
||||||
preempt-flag-$(CONFIG_PREEMPT_RT) := PREEMPT_RT
|
preempt-flag-$(CONFIG_PREEMPT_RT) := PREEMPT_RT
|
||||||
|
|
||||||
build-version = $(or $(KBUILD_BUILD_VERSION), $(build-version-auto))
|
build-version = $(or $(KBUILD_BUILD_VERSION), $(build-version-auto))
|
||||||
|
@@ -19,7 +19,7 @@ Forwarded: not-needed
|
|||||||
|
|
||||||
/* describe a ptrace relationship for potential exception */
|
/* describe a ptrace relationship for potential exception */
|
||||||
struct ptrace_relation {
|
struct ptrace_relation {
|
||||||
@@ -474,7 +474,7 @@ static inline void yama_init_sysctl(void
|
@@ -469,7 +469,7 @@ static inline void yama_init_sysctl(void
|
||||||
|
|
||||||
static int __init yama_init(void)
|
static int __init yama_init(void)
|
||||||
{
|
{
|
||||||
|
153
debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
vendored
Normal file
153
debian/patches/features/all/lockdown/arm64-add-kernel-config-option-to-lock-down-when.patch
vendored
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
From: Linn Crosetto <linn@hpe.com>
|
||||||
|
Date: Tue, 30 Aug 2016 11:54:38 -0600
|
||||||
|
Subject: arm64: add kernel config option to lock down when in Secure Boot mode
|
||||||
|
Bug-Debian: https://bugs.debian.org/831827
|
||||||
|
Forwarded: no
|
||||||
|
|
||||||
|
Add a kernel configuration option to lock down the kernel, to restrict
|
||||||
|
userspace's ability to modify the running kernel when UEFI Secure Boot is
|
||||||
|
enabled. Based on the x86 patch by Matthew Garrett.
|
||||||
|
|
||||||
|
Determine the state of Secure Boot in the EFI stub and pass this to the
|
||||||
|
kernel using the FDT.
|
||||||
|
|
||||||
|
Signed-off-by: Linn Crosetto <linn@hpe.com>
|
||||||
|
[bwh: Forward-ported to 4.10: adjust context]
|
||||||
|
[Lukas Wunner: Forward-ported to 4.11: drop parts applied upstream]
|
||||||
|
[bwh: Forward-ported to 4.15 and lockdown patch set:
|
||||||
|
- Pass result of efi_get_secureboot() in stub through to
|
||||||
|
efi_set_secure_boot() in main kernel
|
||||||
|
- Use lockdown API and naming]
|
||||||
|
[bwh: Forward-ported to 4.19.3: adjust context in update_fdt()]
|
||||||
|
[dannf: Moved init_lockdown() call after uefi_init(), fixing SB detection]
|
||||||
|
[bwh: Drop call to init_lockdown(), as efi_set_secure_boot() now calls this]
|
||||||
|
[bwh: Forward-ported to 5.6: efi_get_secureboot() no longer takes a
|
||||||
|
sys_table parameter]
|
||||||
|
[bwh: Forward-ported to 5.7: EFI initialisation from FDT was rewritten, so:
|
||||||
|
- Add Secure Boot mode to the parameter enumeration in fdtparams.c
|
||||||
|
- Add a parameter to efi_get_fdt_params() to return the Secure Boot mode
|
||||||
|
- Since Xen does not have a property name defined for Secure Boot mode,
|
||||||
|
change efi_get_fdt_prop() to handle a missing property name by clearing
|
||||||
|
the output variable]
|
||||||
|
[Salvatore Bonaccorso: Forward-ported to 5.10: f30f242fb131 ("efi: Rename
|
||||||
|
arm-init to efi-init common for all arch") renamed arm-init.c to efi-init.c]
|
||||||
|
---
|
||||||
|
drivers/firmware/efi/efi-init.c | 5 ++++-
|
||||||
|
drivers/firmware/efi/fdtparams.c | 12 +++++++++++-
|
||||||
|
drivers/firmware/efi/libstub/fdt.c | 6 ++++++
|
||||||
|
include/linux/efi.h | 3 ++-
|
||||||
|
4 files changed, 23 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/firmware/efi/efi-init.c
|
||||||
|
+++ b/drivers/firmware/efi/efi-init.c
|
||||||
|
@@ -213,9 +213,10 @@ void __init efi_init(void)
|
||||||
|
{
|
||||||
|
struct efi_memory_map_data data;
|
||||||
|
u64 efi_system_table;
|
||||||
|
+ u32 secure_boot;
|
||||||
|
|
||||||
|
/* Grab UEFI information placed in FDT by stub */
|
||||||
|
- efi_system_table = efi_get_fdt_params(&data);
|
||||||
|
+ efi_system_table = efi_get_fdt_params(&data, &secure_boot);
|
||||||
|
if (!efi_system_table)
|
||||||
|
return;
|
||||||
|
|
||||||
|
@@ -237,6 +238,8 @@ void __init efi_init(void)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ efi_set_secure_boot(secure_boot);
|
||||||
|
+
|
||||||
|
reserve_regions();
|
||||||
|
/*
|
||||||
|
* For memblock manipulation, the cap should come after the memblock_add().
|
||||||
|
--- a/drivers/firmware/efi/fdtparams.c
|
||||||
|
+++ b/drivers/firmware/efi/fdtparams.c
|
||||||
|
@@ -16,6 +16,7 @@ enum {
|
||||||
|
MMSIZE,
|
||||||
|
DCSIZE,
|
||||||
|
DCVERS,
|
||||||
|
+ SBMODE,
|
||||||
|
|
||||||
|
PARAMCOUNT
|
||||||
|
};
|
||||||
|
@@ -26,6 +27,7 @@ static __initconst const char name[][22]
|
||||||
|
[MMSIZE] = "MemMap Size ",
|
||||||
|
[DCSIZE] = "MemMap Desc. Size ",
|
||||||
|
[DCVERS] = "MemMap Desc. Version ",
|
||||||
|
+ [SBMODE] = "Secure Boot Enabled ",
|
||||||
|
};
|
||||||
|
|
||||||
|
static __initconst const struct {
|
||||||
|
@@ -43,6 +45,7 @@ static __initconst const struct {
|
||||||
|
[MMSIZE] = "xen,uefi-mmap-size",
|
||||||
|
[DCSIZE] = "xen,uefi-mmap-desc-size",
|
||||||
|
[DCVERS] = "xen,uefi-mmap-desc-ver",
|
||||||
|
+ [SBMODE] = "",
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
#endif
|
||||||
|
@@ -53,6 +56,7 @@ static __initconst const struct {
|
||||||
|
[MMSIZE] = "linux,uefi-mmap-size",
|
||||||
|
[DCSIZE] = "linux,uefi-mmap-desc-size",
|
||||||
|
[DCVERS] = "linux,uefi-mmap-desc-ver",
|
||||||
|
+ [SBMODE] = "linux,uefi-secure-boot",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
@@ -64,6 +68,11 @@ static int __init efi_get_fdt_prop(const
|
||||||
|
int len;
|
||||||
|
u64 val;
|
||||||
|
|
||||||
|
+ if (!pname[0]) {
|
||||||
|
+ memset(var, 0, size);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
prop = fdt_getprop(fdt, node, pname, &len);
|
||||||
|
if (!prop)
|
||||||
|
return 1;
|
||||||
|
@@ -81,7 +90,7 @@ static int __init efi_get_fdt_prop(const
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-u64 __init efi_get_fdt_params(struct efi_memory_map_data *mm)
|
||||||
|
+u64 __init efi_get_fdt_params(struct efi_memory_map_data *mm, u32 *secure_boot)
|
||||||
|
{
|
||||||
|
const void *fdt = initial_boot_params;
|
||||||
|
unsigned long systab;
|
||||||
|
@@ -95,6 +104,7 @@ u64 __init efi_get_fdt_params(struct efi
|
||||||
|
[MMSIZE] = { &mm->size, sizeof(mm->size) },
|
||||||
|
[DCSIZE] = { &mm->desc_size, sizeof(mm->desc_size) },
|
||||||
|
[DCVERS] = { &mm->desc_version, sizeof(mm->desc_version) },
|
||||||
|
+ [SBMODE] = { secure_boot, sizeof(*secure_boot) },
|
||||||
|
};
|
||||||
|
|
||||||
|
BUILD_BUG_ON(ARRAY_SIZE(target) != ARRAY_SIZE(name));
|
||||||
|
--- a/drivers/firmware/efi/libstub/fdt.c
|
||||||
|
+++ b/drivers/firmware/efi/libstub/fdt.c
|
||||||
|
@@ -132,6 +132,12 @@ static efi_status_t update_fdt(void *ori
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ fdt_val32 = cpu_to_fdt32(efi_get_secureboot());
|
||||||
|
+ status = fdt_setprop(fdt, node, "linux,uefi-secure-boot",
|
||||||
|
+ &fdt_val32, sizeof(fdt_val32));
|
||||||
|
+ if (status)
|
||||||
|
+ goto fdt_set_fail;
|
||||||
|
+
|
||||||
|
/* Shrink the FDT back to its minimum size: */
|
||||||
|
fdt_pack(fdt);
|
||||||
|
|
||||||
|
--- a/include/linux/efi.h
|
||||||
|
+++ b/include/linux/efi.h
|
||||||
|
@@ -753,7 +753,8 @@ extern int efi_mem_desc_lookup(u64 phys_
|
||||||
|
extern int __efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md);
|
||||||
|
extern void efi_mem_reserve(phys_addr_t addr, u64 size);
|
||||||
|
extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size);
|
||||||
|
-extern u64 efi_get_fdt_params(struct efi_memory_map_data *data);
|
||||||
|
+extern u64 efi_get_fdt_params(struct efi_memory_map_data *data,
|
||||||
|
+ u32 *secure_boot);
|
||||||
|
extern struct kobject *efi_kobj;
|
||||||
|
|
||||||
|
extern int efi_reboot_quirk_mode;
|
153
debian/patches/features/all/lockdown/efi-add-an-efi_secure_boot-flag-to-indicate-secure-b.patch
vendored
Normal file
153
debian/patches/features/all/lockdown/efi-add-an-efi_secure_boot-flag-to-indicate-secure-b.patch
vendored
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
From: David Howells <dhowells@redhat.com>
|
||||||
|
Date: Mon, 18 Feb 2019 12:45:03 +0000
|
||||||
|
Subject: [28/30] efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
|
||||||
|
Origin: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit?id=a5d70c55c603233c192b375f72116a395909da28
|
||||||
|
|
||||||
|
UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT
|
||||||
|
flag that can be passed to efi_enabled() to find out whether secure boot is
|
||||||
|
enabled.
|
||||||
|
|
||||||
|
Move the switch-statement in x86's setup_arch() that inteprets the
|
||||||
|
secure_boot boot parameter to generic code and set the bit there.
|
||||||
|
|
||||||
|
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||||
|
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||||
|
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||||
|
cc: linux-efi@vger.kernel.org
|
||||||
|
[rperier: Forward-ported to 5.5:
|
||||||
|
- Use pr_warn()
|
||||||
|
- Adjust context]
|
||||||
|
[bwh: Forward-ported to 5.6: adjust context]
|
||||||
|
[bwh: Forward-ported to 5.7:
|
||||||
|
- Use the next available bit in efi.flags
|
||||||
|
- Adjust context]
|
||||||
|
---
|
||||||
|
arch/x86/kernel/setup.c | 14 +----------
|
||||||
|
drivers/firmware/efi/Makefile | 1 +
|
||||||
|
drivers/firmware/efi/secureboot.c | 39 +++++++++++++++++++++++++++++++
|
||||||
|
include/linux/efi.h | 16 ++++++++-----
|
||||||
|
4 files changed, 51 insertions(+), 19 deletions(-)
|
||||||
|
create mode 100644 drivers/firmware/efi/secureboot.c
|
||||||
|
|
||||||
|
--- a/arch/x86/kernel/setup.c
|
||||||
|
+++ b/arch/x86/kernel/setup.c
|
||||||
|
@@ -1127,19 +1127,7 @@ void __init setup_arch(char **cmdline_p)
|
||||||
|
/* Allocate bigger log buffer */
|
||||||
|
setup_log_buf(1);
|
||||||
|
|
||||||
|
- if (efi_enabled(EFI_BOOT)) {
|
||||||
|
- switch (boot_params.secure_boot) {
|
||||||
|
- case efi_secureboot_mode_disabled:
|
||||||
|
- pr_info("Secure boot disabled\n");
|
||||||
|
- break;
|
||||||
|
- case efi_secureboot_mode_enabled:
|
||||||
|
- pr_info("Secure boot enabled\n");
|
||||||
|
- break;
|
||||||
|
- default:
|
||||||
|
- pr_info("Secure boot could not be determined\n");
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ efi_set_secure_boot(boot_params.secure_boot);
|
||||||
|
|
||||||
|
reserve_initrd();
|
||||||
|
|
||||||
|
--- a/drivers/firmware/efi/Makefile
|
||||||
|
+++ b/drivers/firmware/efi/Makefile
|
||||||
|
@@ -25,6 +25,7 @@ subdir-$(CONFIG_EFI_STUB) += libstub
|
||||||
|
obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o
|
||||||
|
obj-$(CONFIG_EFI_TEST) += test/
|
||||||
|
obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o
|
||||||
|
+obj-$(CONFIG_EFI) += secureboot.o
|
||||||
|
obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o
|
||||||
|
obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o
|
||||||
|
obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/drivers/firmware/efi/secureboot.c
|
||||||
|
@@ -0,0 +1,39 @@
|
||||||
|
+
|
||||||
|
+/* Core kernel secure boot support.
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
|
||||||
|
+ * Written by David Howells (dhowells@redhat.com)
|
||||||
|
+ *
|
||||||
|
+ * This program is free software; you can redistribute it and/or
|
||||||
|
+ * modify it under the terms of the GNU General Public Licence
|
||||||
|
+ * as published by the Free Software Foundation; either version
|
||||||
|
+ * 2 of the Licence, or (at your option) any later version.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||||
|
+
|
||||||
|
+#include <linux/efi.h>
|
||||||
|
+#include <linux/kernel.h>
|
||||||
|
+#include <linux/printk.h>
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Decide what to do when UEFI secure boot mode is enabled.
|
||||||
|
+ */
|
||||||
|
+void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
|
||||||
|
+{
|
||||||
|
+ if (efi_enabled(EFI_BOOT)) {
|
||||||
|
+ switch (mode) {
|
||||||
|
+ case efi_secureboot_mode_disabled:
|
||||||
|
+ pr_info("Secure boot disabled\n");
|
||||||
|
+ break;
|
||||||
|
+ case efi_secureboot_mode_enabled:
|
||||||
|
+ set_bit(EFI_SECURE_BOOT, &efi.flags);
|
||||||
|
+ pr_info("Secure boot enabled\n");
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ pr_warn("Secure boot could not be determined (mode %u)\n",
|
||||||
|
+ mode);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
--- a/include/linux/efi.h
|
||||||
|
+++ b/include/linux/efi.h
|
||||||
|
@@ -863,6 +863,14 @@ static inline int efi_range_is_wc(unsign
|
||||||
|
#define EFI_MEM_ATTR 9 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
|
||||||
|
#define EFI_MEM_NO_SOFT_RESERVE 10 /* Is the kernel configured to ignore soft reservations? */
|
||||||
|
#define EFI_PRESERVE_BS_REGIONS 11 /* Are EFI boot-services memory segments available? */
|
||||||
|
+#define EFI_SECURE_BOOT 12 /* Are we in Secure Boot mode? */
|
||||||
|
+
|
||||||
|
+enum efi_secureboot_mode {
|
||||||
|
+ efi_secureboot_mode_unset,
|
||||||
|
+ efi_secureboot_mode_unknown,
|
||||||
|
+ efi_secureboot_mode_disabled,
|
||||||
|
+ efi_secureboot_mode_enabled,
|
||||||
|
+};
|
||||||
|
|
||||||
|
#ifdef CONFIG_EFI
|
||||||
|
/*
|
||||||
|
@@ -887,6 +895,7 @@ static inline bool efi_rt_services_suppo
|
||||||
|
return (efi.runtime_supported_mask & mask) == mask;
|
||||||
|
}
|
||||||
|
extern void efi_find_mirror(void);
|
||||||
|
+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode);
|
||||||
|
#else
|
||||||
|
static inline bool efi_enabled(int feature)
|
||||||
|
{
|
||||||
|
@@ -906,6 +915,7 @@ static inline bool efi_rt_services_suppo
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void efi_find_mirror(void) {}
|
||||||
|
+static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern int efi_status_to_err(efi_status_t status);
|
||||||
|
@@ -1124,13 +1134,6 @@ static inline bool efi_runtime_disabled(
|
||||||
|
extern void efi_call_virt_check_flags(unsigned long flags, const void *caller);
|
||||||
|
extern unsigned long efi_call_virt_save_flags(void);
|
||||||
|
|
||||||
|
-enum efi_secureboot_mode {
|
||||||
|
- efi_secureboot_mode_unset,
|
||||||
|
- efi_secureboot_mode_unknown,
|
||||||
|
- efi_secureboot_mode_disabled,
|
||||||
|
- efi_secureboot_mode_enabled,
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
static inline
|
||||||
|
enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var)
|
||||||
|
{
|
121
debian/patches/features/all/lockdown/efi-lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
vendored
Normal file
121
debian/patches/features/all/lockdown/efi-lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
vendored
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Tue, 10 Sep 2019 11:54:28 +0100
|
||||||
|
Subject: efi: Lock down the kernel if booted in secure boot mode
|
||||||
|
|
||||||
|
Based on an earlier patch by David Howells, who wrote the following
|
||||||
|
description:
|
||||||
|
|
||||||
|
> UEFI Secure Boot provides a mechanism for ensuring that the firmware will
|
||||||
|
> only load signed bootloaders and kernels. Certain use cases may also
|
||||||
|
> require that all kernel modules also be signed. Add a configuration option
|
||||||
|
> that to lock down the kernel - which includes requiring validly signed
|
||||||
|
> modules - if the kernel is secure-booted.
|
||||||
|
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
[Salvatore Bonaccorso: After fixing https://bugs.debian.org/956197 the
|
||||||
|
help text for LOCK_DOWN_IN_EFI_SECURE_BOOT was adjusted to mention that
|
||||||
|
lockdown is triggered in integrity mode (https://bugs.debian.org/1025417)]
|
||||||
|
Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
|
||||||
|
---
|
||||||
|
arch/x86/kernel/setup.c | 4 ++--
|
||||||
|
drivers/firmware/efi/secureboot.c | 3 +++
|
||||||
|
include/linux/security.h | 6 ++++++
|
||||||
|
security/lockdown/Kconfig | 15 +++++++++++++++
|
||||||
|
security/lockdown/lockdown.c | 2 +-
|
||||||
|
5 files changed, 27 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
--- a/arch/x86/kernel/setup.c
|
||||||
|
+++ b/arch/x86/kernel/setup.c
|
||||||
|
@@ -964,6 +964,8 @@ void __init setup_arch(char **cmdline_p)
|
||||||
|
if (efi_enabled(EFI_BOOT))
|
||||||
|
efi_init();
|
||||||
|
|
||||||
|
+ efi_set_secure_boot(boot_params.secure_boot);
|
||||||
|
+
|
||||||
|
reserve_ibft_region();
|
||||||
|
x86_init.resources.dmi_setup();
|
||||||
|
|
||||||
|
@@ -1127,8 +1129,6 @@ void __init setup_arch(char **cmdline_p)
|
||||||
|
/* Allocate bigger log buffer */
|
||||||
|
setup_log_buf(1);
|
||||||
|
|
||||||
|
- efi_set_secure_boot(boot_params.secure_boot);
|
||||||
|
-
|
||||||
|
reserve_initrd();
|
||||||
|
|
||||||
|
acpi_table_upgrade();
|
||||||
|
--- a/drivers/firmware/efi/secureboot.c
|
||||||
|
+++ b/drivers/firmware/efi/secureboot.c
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
#include <linux/efi.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/printk.h>
|
||||||
|
+#include <linux/security.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Decide what to do when UEFI secure boot mode is enabled.
|
||||||
|
@@ -28,6 +29,10 @@ void __init efi_set_secure_boot(enum efi
|
||||||
|
break;
|
||||||
|
case efi_secureboot_mode_enabled:
|
||||||
|
set_bit(EFI_SECURE_BOOT, &efi.flags);
|
||||||
|
+#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
|
||||||
|
+ lock_kernel_down("EFI Secure Boot",
|
||||||
|
+ LOCKDOWN_INTEGRITY_MAX);
|
||||||
|
+#endif
|
||||||
|
pr_info("Secure boot enabled\n");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
--- a/include/linux/security.h
|
||||||
|
+++ b/include/linux/security.h
|
||||||
|
@@ -574,6 +574,7 @@ int security_inode_notifysecctx(struct i
|
||||||
|
int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
|
||||||
|
int security_inode_getsecctx(struct inode *inode, struct lsm_context *cp);
|
||||||
|
int security_locked_down(enum lockdown_reason what);
|
||||||
|
+int lock_kernel_down(const char *where, enum lockdown_reason level);
|
||||||
|
int lsm_fill_user_ctx(struct lsm_ctx __user *uctx, u32 *uctx_len,
|
||||||
|
void *val, size_t val_len, u64 id, u64 flags);
|
||||||
|
int security_bdev_alloc(struct block_device *bdev);
|
||||||
|
@@ -1580,6 +1581,11 @@ static inline int security_locked_down(e
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+static inline int
|
||||||
|
+lock_kernel_down(const char *where, enum lockdown_reason level)
|
||||||
|
+{
|
||||||
|
+ return -EOPNOTSUPP;
|
||||||
|
+}
|
||||||
|
static inline int lsm_fill_user_ctx(struct lsm_ctx __user *uctx,
|
||||||
|
u32 *uctx_len, void *val, size_t val_len,
|
||||||
|
u64 id, u64 flags)
|
||||||
|
--- a/security/lockdown/Kconfig
|
||||||
|
+++ b/security/lockdown/Kconfig
|
||||||
|
@@ -45,3 +45,18 @@ config LOCK_DOWN_KERNEL_FORCE_CONFIDENTI
|
||||||
|
disabled.
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
+
|
||||||
|
+config LOCK_DOWN_IN_EFI_SECURE_BOOT
|
||||||
|
+ bool "Lock down the kernel in EFI Secure Boot mode"
|
||||||
|
+ default n
|
||||||
|
+ depends on SECURITY_LOCKDOWN_LSM
|
||||||
|
+ depends on EFI
|
||||||
|
+ select SECURITY_LOCKDOWN_LSM_EARLY
|
||||||
|
+ help
|
||||||
|
+ UEFI Secure Boot provides a mechanism for ensuring that the firmware
|
||||||
|
+ will only load signed bootloaders and kernels. Secure boot mode may
|
||||||
|
+ be determined from EFI variables provided by the system firmware if
|
||||||
|
+ not indicated by the boot parameters.
|
||||||
|
+
|
||||||
|
+ Enabling this option results in kernel lockdown being
|
||||||
|
+ triggered in integrity mode if EFI Secure Boot is set.
|
||||||
|
--- a/security/lockdown/lockdown.c
|
||||||
|
+++ b/security/lockdown/lockdown.c
|
||||||
|
@@ -24,7 +24,7 @@ static const enum lockdown_reason lockdo
|
||||||
|
/*
|
||||||
|
* Put the kernel into lock-down mode.
|
||||||
|
*/
|
||||||
|
-static int lock_kernel_down(const char *where, enum lockdown_reason level)
|
||||||
|
+int lock_kernel_down(const char *where, enum lockdown_reason level)
|
||||||
|
{
|
||||||
|
if (kernel_locked_down >= level)
|
||||||
|
return -EPERM;
|
75
debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch
vendored
Normal file
75
debian/patches/features/all/lockdown/mtd-disable-slram-and-phram-when-locked-down.patch
vendored
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Fri, 30 Aug 2019 15:54:24 +0100
|
||||||
|
Subject: mtd: phram,slram: Disable when the kernel is locked down
|
||||||
|
Forwarded: https://lore.kernel.org/linux-security-module/20190830154720.eekfjt6c4jzvlbfz@decadent.org.uk/
|
||||||
|
|
||||||
|
These drivers allow mapping arbitrary memory ranges as MTD devices.
|
||||||
|
This should be disabled to preserve the kernel's integrity when it is
|
||||||
|
locked down.
|
||||||
|
|
||||||
|
* Add the HWPARAM flag to the module parameters
|
||||||
|
* When slram is built-in, it uses __setup() to read kernel parameters,
|
||||||
|
so add an explicit check security_locked_down() check
|
||||||
|
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Cc: Matthew Garrett <mjg59@google.com>
|
||||||
|
Cc: David Howells <dhowells@redhat.com>
|
||||||
|
Cc: Joern Engel <joern@lazybastard.org>
|
||||||
|
Cc: linux-mtd@lists.infradead.org
|
||||||
|
---
|
||||||
|
drivers/mtd/devices/phram.c | 6 +++++-
|
||||||
|
drivers/mtd/devices/slram.c | 9 ++++++++-
|
||||||
|
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/drivers/mtd/devices/phram.c
|
||||||
|
+++ b/drivers/mtd/devices/phram.c
|
||||||
|
@@ -365,7 +365,11 @@ static int phram_param_call(const char *
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-module_param_call(phram, phram_param_call, NULL, NULL, 0200);
|
||||||
|
+static const struct kernel_param_ops phram_param_ops = {
|
||||||
|
+ .set = phram_param_call
|
||||||
|
+};
|
||||||
|
+__module_param_call(MODULE_PARAM_PREFIX, phram, &phram_param_ops, NULL,
|
||||||
|
+ 0200, -1, KERNEL_PARAM_FL_HWPARAM | hwparam_iomem);
|
||||||
|
MODULE_PARM_DESC(phram, "Memory region to map. \"phram=<name>,<start>,<length>[,<erasesize>]\"");
|
||||||
|
|
||||||
|
#ifdef CONFIG_OF
|
||||||
|
--- a/drivers/mtd/devices/slram.c
|
||||||
|
+++ b/drivers/mtd/devices/slram.c
|
||||||
|
@@ -43,6 +43,7 @@
|
||||||
|
#include <linux/ioctl.h>
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/io.h>
|
||||||
|
+#include <linux/security.h>
|
||||||
|
|
||||||
|
#include <linux/mtd/mtd.h>
|
||||||
|
|
||||||
|
@@ -65,7 +66,7 @@ typedef struct slram_mtd_list {
|
||||||
|
#ifdef MODULE
|
||||||
|
static char *map[SLRAM_MAX_DEVICES_PARAMS];
|
||||||
|
|
||||||
|
-module_param_array(map, charp, NULL, 0);
|
||||||
|
+module_param_hw_array(map, charp, iomem, NULL, 0);
|
||||||
|
MODULE_PARM_DESC(map, "List of memory regions to map. \"map=<name>, <start>, <length / end>\"");
|
||||||
|
#else
|
||||||
|
static char *map;
|
||||||
|
@@ -281,11 +282,17 @@ static int __init init_slram(void)
|
||||||
|
#ifndef MODULE
|
||||||
|
char *devstart;
|
||||||
|
char *devlength;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
|
if (!map) {
|
||||||
|
E("slram: not enough parameters.\n");
|
||||||
|
return(-EINVAL);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ ret = security_locked_down(LOCKDOWN_MODULE_PARAMETERS);
|
||||||
|
+ if (ret)
|
||||||
|
+ return ret;
|
||||||
|
+
|
||||||
|
while (map) {
|
||||||
|
devname = devstart = devlength = NULL;
|
||||||
|
|
@@ -22,9 +22,9 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/include/linux/perf_event.h
|
--- a/include/linux/perf_event.h
|
||||||
+++ b/include/linux/perf_event.h
|
+++ b/include/linux/perf_event.h
|
||||||
@@ -1659,6 +1659,11 @@ int perf_cpu_time_max_percent_handler(co
|
@@ -1684,6 +1684,11 @@ extern int sysctl_perf_event_sample_rate
|
||||||
int perf_event_max_stack_handler(const struct ctl_table *table, int write,
|
|
||||||
void *buffer, size_t *lenp, loff_t *ppos);
|
extern void perf_sample_event_took(u64 sample_len_ns);
|
||||||
|
|
||||||
+static inline bool perf_paranoid_any(void)
|
+static inline bool perf_paranoid_any(void)
|
||||||
+{
|
+{
|
||||||
@@ -36,7 +36,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/kernel/events/core.c
|
--- a/kernel/events/core.c
|
||||||
+++ b/kernel/events/core.c
|
+++ b/kernel/events/core.c
|
||||||
@@ -449,8 +449,13 @@ static struct kmem_cache *perf_event_cac
|
@@ -463,8 +463,13 @@ static struct kmem_cache *perf_event_cac
|
||||||
* 0 - disallow raw tracepoint access for unpriv
|
* 0 - disallow raw tracepoint access for unpriv
|
||||||
* 1 - disallow cpu events for unpriv
|
* 1 - disallow cpu events for unpriv
|
||||||
* 2 - disallow kernel profiling for unpriv
|
* 2 - disallow kernel profiling for unpriv
|
||||||
@@ -48,9 +48,9 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
int sysctl_perf_event_paranoid __read_mostly = 2;
|
int sysctl_perf_event_paranoid __read_mostly = 2;
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
/* Minimum for 512 kiB + 1 user control page */
|
/* Minimum for 512 kiB + 1 user control page. 'free' kiB per user. */
|
||||||
int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
|
static int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024);
|
||||||
@@ -12821,6 +12826,9 @@ SYSCALL_DEFINE5(perf_event_open,
|
@@ -13164,6 +13169,9 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@@ -58,13 +58,13 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
+ return -EACCES;
|
+ return -EACCES;
|
||||||
+
|
+
|
||||||
/* Do we allow access to perf_event_open(2) ? */
|
/* Do we allow access to perf_event_open(2) ? */
|
||||||
err = security_perf_event_open(&attr, PERF_SECURITY_OPEN);
|
err = security_perf_event_open(PERF_SECURITY_OPEN);
|
||||||
if (err)
|
if (err)
|
||||||
--- a/security/Kconfig
|
--- a/security/Kconfig
|
||||||
+++ b/security/Kconfig
|
+++ b/security/Kconfig
|
||||||
@@ -51,6 +51,15 @@ config PROC_MEM_NO_FORCE
|
@@ -72,6 +72,15 @@ config MSEAL_SYSTEM_MAPPINGS
|
||||||
|
For complete descriptions of memory sealing, please see
|
||||||
endchoice
|
Documentation/userspace-api/mseal.rst
|
||||||
|
|
||||||
+config SECURITY_PERF_EVENTS_RESTRICT
|
+config SECURITY_PERF_EVENTS_RESTRICT
|
||||||
+ bool "Restrict unprivileged use of performance events"
|
+ bool "Restrict unprivileged use of performance events"
|
||||||
|
@@ -22,7 +22,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
@@ -2247,6 +2247,8 @@
|
@@ -2288,6 +2288,8 @@
|
||||||
bypassed by not enabling DMAR with this option. In
|
bypassed by not enabling DMAR with this option. In
|
||||||
this case, gfx device will use physical address for
|
this case, gfx device will use physical address for
|
||||||
DMA.
|
DMA.
|
||||||
@@ -68,7 +68,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
} else if (!strncmp(str, "forcedac", 8)) {
|
} else if (!strncmp(str, "forcedac", 8)) {
|
||||||
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
|
pr_warn("intel_iommu=forcedac deprecated; use iommu.forcedac instead\n");
|
||||||
iommu_dma_forcedac = true;
|
iommu_dma_forcedac = true;
|
||||||
@@ -1902,6 +1910,9 @@ static int device_def_domain_type(struct
|
@@ -1949,6 +1957,9 @@ static int device_def_domain_type(struct
|
||||||
|
|
||||||
if ((iommu_identity_mapping & IDENTMAP_AZALIA) && IS_AZALIA(pdev))
|
if ((iommu_identity_mapping & IDENTMAP_AZALIA) && IS_AZALIA(pdev))
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
return IOMMU_DOMAIN_IDENTITY;
|
||||||
@@ -78,7 +78,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2196,6 +2207,9 @@ static int __init init_dmars(void)
|
@@ -2243,6 +2254,9 @@ static int __init init_dmars(void)
|
||||||
iommu_set_root_entry(iommu);
|
iommu_set_root_entry(iommu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,7 +29,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
|
|
||||||
--- a/Documentation/admin-guide/kernel-parameters.txt
|
--- a/Documentation/admin-guide/kernel-parameters.txt
|
||||||
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
+++ b/Documentation/admin-guide/kernel-parameters.txt
|
||||||
@@ -6982,6 +6982,10 @@
|
@@ -7044,6 +7044,10 @@
|
||||||
later by a loaded module cannot be set this way.
|
later by a loaded module cannot be set this way.
|
||||||
Example: sysctl.vm.swappiness=40
|
Example: sysctl.vm.swappiness=40
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
Ignore sysrq setting - this boot parameter will
|
Ignore sysrq setting - this boot parameter will
|
||||||
--- a/arch/x86/Kconfig
|
--- a/arch/x86/Kconfig
|
||||||
+++ b/arch/x86/Kconfig
|
+++ b/arch/x86/Kconfig
|
||||||
@@ -3186,6 +3186,14 @@ config COMPAT_32
|
@@ -3178,6 +3178,14 @@ config COMPAT_32
|
||||||
select HAVE_UID16
|
select HAVE_UID16
|
||||||
select OLD_SIGSUSPEND3
|
select OLD_SIGSUSPEND3
|
||||||
|
|
||||||
@@ -57,9 +57,70 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
config COMPAT
|
config COMPAT
|
||||||
def_bool y
|
def_bool y
|
||||||
depends on IA32_EMULATION || X86_X32_ABI
|
depends on IA32_EMULATION || X86_X32_ABI
|
||||||
--- a/arch/x86/entry/common.c
|
--- a/arch/x86/include/asm/elf.h
|
||||||
+++ b/arch/x86/entry/common.c
|
+++ b/arch/x86/include/asm/elf.h
|
||||||
@@ -64,7 +64,7 @@ static __always_inline bool do_syscall_x
|
@@ -12,6 +12,9 @@
|
||||||
|
#include <asm/user.h>
|
||||||
|
#include <asm/auxvec.h>
|
||||||
|
#include <asm/fsgsbase.h>
|
||||||
|
+#ifndef COMPILE_OFFSETS /* avoid a circular dependency on asm-offsets.h */
|
||||||
|
+#include <asm/syscall.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
typedef unsigned long elf_greg_t;
|
||||||
|
|
||||||
|
@@ -152,7 +155,8 @@ do { \
|
||||||
|
|
||||||
|
#define compat_elf_check_arch(x) \
|
||||||
|
((elf_check_arch_ia32(x) && ia32_enabled_verbose()) || \
|
||||||
|
- (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64))
|
||||||
|
+ (IS_ENABLED(CONFIG_X86_X32_ABI) && x32_enabled && \
|
||||||
|
+ (x)->e_machine == EM_X86_64))
|
||||||
|
|
||||||
|
static inline void elf_common_init(struct thread_struct *t,
|
||||||
|
struct pt_regs *regs, const u16 ds)
|
||||||
|
--- a/arch/x86/include/asm/syscall.h
|
||||||
|
+++ b/arch/x86/include/asm/syscall.h
|
||||||
|
@@ -13,6 +13,7 @@
|
||||||
|
#include <uapi/linux/audit.h>
|
||||||
|
#include <linux/sched.h>
|
||||||
|
#include <linux/err.h>
|
||||||
|
+#include <linux/jump_label.h>
|
||||||
|
#include <asm/thread_info.h> /* for TS_COMPAT */
|
||||||
|
#include <asm/unistd.h>
|
||||||
|
|
||||||
|
@@ -28,6 +29,18 @@ extern long ia32_sys_call(const struct p
|
||||||
|
extern long x32_sys_call(const struct pt_regs *, unsigned int nr);
|
||||||
|
extern long x64_sys_call(const struct pt_regs *, unsigned int nr);
|
||||||
|
|
||||||
|
+#if defined(CONFIG_X86_X32_ABI)
|
||||||
|
+#if defined(CONFIG_X86_X32_DISABLED)
|
||||||
|
+DECLARE_STATIC_KEY_FALSE(x32_enabled_skey);
|
||||||
|
+#define x32_enabled static_branch_unlikely(&x32_enabled_skey)
|
||||||
|
+#else
|
||||||
|
+DECLARE_STATIC_KEY_TRUE(x32_enabled_skey);
|
||||||
|
+#define x32_enabled static_branch_likely(&x32_enabled_skey)
|
||||||
|
+#endif
|
||||||
|
+#else
|
||||||
|
+#define x32_enabled 0
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Only the low 32 bits of orig_ax are meaningful, so we return int.
|
||||||
|
* This importantly ignores the high bits on 64-bit, so comparisons
|
||||||
|
--- a/arch/x86/entry/syscall_64.c
|
||||||
|
+++ b/arch/x86/entry/syscall_64.c
|
||||||
|
@@ -7,6 +7,9 @@
|
||||||
|
#include <linux/syscalls.h>
|
||||||
|
#include <linux/entry-common.h>
|
||||||
|
#include <linux/nospec.h>
|
||||||
|
+#include <linux/moduleparam.h>
|
||||||
|
+#undef MODULE_PARAM_PREFIX
|
||||||
|
+#define MODULE_PARAM_PREFIX "syscall."
|
||||||
|
#include <asm/syscall.h>
|
||||||
|
|
||||||
|
#define __SYSCALL(nr, sym) extern long __x64_##sym(const struct pt_regs *);
|
||||||
|
@@ -75,7 +78,7 @@ static __always_inline bool do_syscall_x
|
||||||
*/
|
*/
|
||||||
unsigned int xnr = nr - __X32_SYSCALL_BIT;
|
unsigned int xnr = nr - __X32_SYSCALL_BIT;
|
||||||
|
|
||||||
@@ -68,23 +129,12 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
xnr = array_index_nospec(xnr, X32_NR_syscalls);
|
xnr = array_index_nospec(xnr, X32_NR_syscalls);
|
||||||
regs->ax = x32_sys_call(regs, xnr);
|
regs->ax = x32_sys_call(regs, xnr);
|
||||||
return true;
|
return true;
|
||||||
--- a/arch/x86/entry/syscall_x32.c
|
@@ -139,3 +142,48 @@ __visible noinstr bool do_syscall_64(str
|
||||||
+++ b/arch/x86/entry/syscall_x32.c
|
/* Use SYSRET to exit to userspace */
|
||||||
@@ -4,6 +4,9 @@
|
return true;
|
||||||
#include <linux/linkage.h>
|
}
|
||||||
#include <linux/sys.h>
|
|
||||||
#include <linux/cache.h>
|
|
||||||
+#include <linux/moduleparam.h>
|
|
||||||
+#undef MODULE_PARAM_PREFIX
|
|
||||||
+#define MODULE_PARAM_PREFIX "syscall."
|
|
||||||
#include <linux/syscalls.h>
|
|
||||||
#include <asm/syscall.h>
|
|
||||||
|
|
||||||
@@ -23,3 +26,46 @@ long x32_sys_call(const struct pt_regs *
|
|
||||||
default: return __x64_sys_ni_syscall(regs);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
+
|
+
|
||||||
|
+#ifdef CONFIG_X86_X32_ABI
|
||||||
+/* Maybe enable x32 syscalls */
|
+/* Maybe enable x32 syscalls */
|
||||||
+
|
+
|
||||||
+#if defined(CONFIG_X86_X32_DISABLED)
|
+#if defined(CONFIG_X86_X32_DISABLED)
|
||||||
@@ -127,54 +177,4 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+arch_param_cb(x32, &x32_param_ops, NULL, 0444);
|
+arch_param_cb(x32, &x32_param_ops, NULL, 0444);
|
||||||
--- a/arch/x86/include/asm/elf.h
|
|
||||||
+++ b/arch/x86/include/asm/elf.h
|
|
||||||
@@ -12,6 +12,9 @@
|
|
||||||
#include <asm/user.h>
|
|
||||||
#include <asm/auxvec.h>
|
|
||||||
#include <asm/fsgsbase.h>
|
|
||||||
+#ifndef COMPILE_OFFSETS /* avoid a circular dependency on asm-offsets.h */
|
|
||||||
+#include <asm/syscall.h>
|
|
||||||
+#endif
|
+#endif
|
||||||
|
|
||||||
typedef unsigned long elf_greg_t;
|
|
||||||
|
|
||||||
@@ -151,7 +154,8 @@ do { \
|
|
||||||
|
|
||||||
#define compat_elf_check_arch(x) \
|
|
||||||
((elf_check_arch_ia32(x) && ia32_enabled_verbose()) || \
|
|
||||||
- (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64))
|
|
||||||
+ (IS_ENABLED(CONFIG_X86_X32_ABI) && x32_enabled && \
|
|
||||||
+ (x)->e_machine == EM_X86_64))
|
|
||||||
|
|
||||||
static inline void elf_common_init(struct thread_struct *t,
|
|
||||||
struct pt_regs *regs, const u16 ds)
|
|
||||||
--- a/arch/x86/include/asm/syscall.h
|
|
||||||
+++ b/arch/x86/include/asm/syscall.h
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include <uapi/linux/audit.h>
|
|
||||||
#include <linux/sched.h>
|
|
||||||
#include <linux/err.h>
|
|
||||||
+#include <linux/jump_label.h>
|
|
||||||
#include <asm/thread_info.h> /* for TS_COMPAT */
|
|
||||||
#include <asm/unistd.h>
|
|
||||||
|
|
||||||
@@ -28,6 +29,18 @@ extern long ia32_sys_call(const struct p
|
|
||||||
extern long x32_sys_call(const struct pt_regs *, unsigned int nr);
|
|
||||||
extern long x64_sys_call(const struct pt_regs *, unsigned int nr);
|
|
||||||
|
|
||||||
+#if defined(CONFIG_X86_X32_ABI)
|
|
||||||
+#if defined(CONFIG_X86_X32_DISABLED)
|
|
||||||
+DECLARE_STATIC_KEY_FALSE(x32_enabled_skey);
|
|
||||||
+#define x32_enabled static_branch_unlikely(&x32_enabled_skey)
|
|
||||||
+#else
|
|
||||||
+DECLARE_STATIC_KEY_TRUE(x32_enabled_skey);
|
|
||||||
+#define x32_enabled static_branch_likely(&x32_enabled_skey)
|
|
||||||
+#endif
|
|
||||||
+#else
|
|
||||||
+#define x32_enabled 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Only the low 32 bits of orig_ax are meaningful, so we return int.
|
|
||||||
* This importantly ignores the high bits on 64-bit, so comparisons
|
|
||||||
|
@@ -1,52 +0,0 @@
|
|||||||
this reverts following commit:
|
|
||||||
|
|
||||||
From: Josh Poimboeuf <jpoimboe@redhat.com>
|
|
||||||
Date: Thu, 14 Jan 2021 16:32:42 -0600
|
|
||||||
Subject: objtool: Don't fail the kernel build on fatal errors
|
|
||||||
|
|
||||||
[ Upstream commit 655cf86548a3938538642a6df27dd359e13c86bd ]
|
|
||||||
|
|
||||||
This is basically a revert of commit 644592d32837 ("objtool: Fail the
|
|
||||||
kernel build on fatal errors").
|
|
||||||
|
|
||||||
That change turned out to be more trouble than it's worth. Failing the
|
|
||||||
build is an extreme measure which sometimes gets too much attention and
|
|
||||||
blocks CI build testing.
|
|
||||||
|
|
||||||
These fatal-type warnings aren't yet as rare as we'd hope, due to the
|
|
||||||
ever-increasing matrix of supported toolchains/plugins and their
|
|
||||||
fast-changing nature as of late.
|
|
||||||
|
|
||||||
Also, there are more people (and bots) looking for objtool warnings than
|
|
||||||
ever before, so even non-fatal warnings aren't likely to be ignored for
|
|
||||||
long.
|
|
||||||
|
|
||||||
Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
|
|
||||||
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
|
|
||||||
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
|
|
||||||
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
|
|
||||||
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
|
|
||||||
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
||||||
|
|
||||||
--- a/tools/objtool/check.c
|
|
||||||
+++ b/tools/objtool/check.c
|
|
||||||
@@ -4771,10 +4771,14 @@ int check(struct objtool_file *file)
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
- /*
|
|
||||||
- * For now, don't fail the kernel build on fatal warnings. These
|
|
||||||
- * errors are still fairly common due to the growing matrix of
|
|
||||||
- * supported toolchains and their recent pace of change.
|
|
||||||
- */
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ /*
|
|
||||||
+ * Fatal error. The binary is corrupt or otherwise broken in
|
|
||||||
+ * some way, or objtool itself is broken. Fail the kernel
|
|
||||||
+ * build.
|
|
||||||
+ */
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
34
debian/patches/misc-openwrt/0002-mac80211-avoid-crashing-missing-band.patch
vendored
Normal file
34
debian/patches/misc-openwrt/0002-mac80211-avoid-crashing-missing-band.patch
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
From: David Bauer <mail@david-bauer.net>
|
||||||
|
Date: Thu, 30 Nov 2023 07:32:52 +0100
|
||||||
|
Subject: [PATCH] mac80211: avoid crashing on invalid band info
|
||||||
|
|
||||||
|
Frequent crashes have been observed on MT7916 based platforms. While the
|
||||||
|
root of these crashes are currently unknown, they happen when decoding
|
||||||
|
rate information of connected STAs in AP mode. The rate-information is
|
||||||
|
associated with a band which is not available on the PHY.
|
||||||
|
|
||||||
|
Check for this condition in order to avoid crashing the whole system.
|
||||||
|
This patch should be removed once the roout cause has been found and
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
Link: https://github.com/freifunk-gluon/gluon/issues/2980
|
||||||
|
|
||||||
|
Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/sta_info.c
|
||||||
|
+++ b/net/mac80211/sta_info.c
|
||||||
|
@@ -2467,6 +2467,13 @@ static void sta_stats_decode_rate(struct
|
||||||
|
|
||||||
|
sband = local->hw.wiphy->bands[band];
|
||||||
|
|
||||||
|
+ if (!sband) {
|
||||||
|
+ wiphy_warn(local->hw.wiphy,
|
||||||
|
+ "Invalid band %d\n",
|
||||||
|
+ band);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (WARN_ON_ONCE(!sband->bitrates))
|
||||||
|
break;
|
||||||
|
|
38
debian/patches/misc-openwrt/0003-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch
vendored
Normal file
38
debian/patches/misc-openwrt/0003-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
From b478e06a16a8baa00c5ecc87c1d636981f2206d5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Johannes Berg <johannes.berg@intel.com>
|
||||||
|
Date: Tue, 29 Oct 2019 10:25:25 +0100
|
||||||
|
Subject: [PATCH] mac80211: sta: randomize BA session dialog token allocator
|
||||||
|
|
||||||
|
We currently always start the dialog token generator at zero,
|
||||||
|
so the first dialog token we use is always 1. This would be
|
||||||
|
OK if we had a perfect guarantee that we always do a proper
|
||||||
|
deauth/re-auth handshake, but in IBSS mode this doesn't always
|
||||||
|
happen properly.
|
||||||
|
|
||||||
|
To make problems with block ack (aggregation) sessions getting
|
||||||
|
stuck less likely, randomize the dialog token so if we start a
|
||||||
|
new session but the peer still has old state for us, it can
|
||||||
|
better detect this.
|
||||||
|
|
||||||
|
This is really just a workaround to make things a bit more
|
||||||
|
robust than they are now - a better fix would be to do a full
|
||||||
|
authentication handshake in IBSS mode upon having discovered a
|
||||||
|
new station, and on the receiver resetting the state (removing
|
||||||
|
and re-adding the station) on receiving the authentication
|
||||||
|
packet.
|
||||||
|
|
||||||
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
|
---
|
||||||
|
net/mac80211/sta_info.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
--- a/net/mac80211/sta_info.c
|
||||||
|
+++ b/net/mac80211/sta_info.c
|
||||||
|
@@ -582,6 +582,7 @@ __sta_info_alloc(struct ieee80211_sub_if
|
||||||
|
spin_lock_init(&sta->ps_lock);
|
||||||
|
INIT_WORK(&sta->drv_deliver_wk, sta_deliver_ps_frames);
|
||||||
|
wiphy_work_init(&sta->ampdu_mlme.work, ieee80211_ba_session_work);
|
||||||
|
+ sta->ampdu_mlme.dialog_token_allocator = get_random_u32_below(U8_MAX);
|
||||||
|
#ifdef CONFIG_MAC80211_MESH
|
||||||
|
if (ieee80211_vif_is_mesh(&sdata->vif)) {
|
||||||
|
sta->mesh = kzalloc(sizeof(*sta->mesh), gfp);
|
21
debian/patches/misc-openwrt/0004-mac80211-minstrel_ht-fix-MINSTREL_FRAC-macro.patch
vendored
Normal file
21
debian/patches/misc-openwrt/0004-mac80211-minstrel_ht-fix-MINSTREL_FRAC-macro.patch
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Wed, 28 Apr 2021 21:03:13 +0200
|
||||||
|
Subject: [PATCH] mac80211: minstrel_ht: fix MINSTREL_FRAC macro
|
||||||
|
|
||||||
|
Add missing braces to avoid issues with e.g. using additions in the
|
||||||
|
div expression
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/rc80211_minstrel_ht.h
|
||||||
|
+++ b/net/mac80211/rc80211_minstrel_ht.h
|
||||||
|
@@ -14,7 +14,7 @@
|
||||||
|
|
||||||
|
/* scaled fraction values */
|
||||||
|
#define MINSTREL_SCALE 12
|
||||||
|
-#define MINSTREL_FRAC(val, div) (((val) << MINSTREL_SCALE) / div)
|
||||||
|
+#define MINSTREL_FRAC(val, div) (((val) << MINSTREL_SCALE) / (div))
|
||||||
|
#define MINSTREL_TRUNC(val) ((val) >> MINSTREL_SCALE)
|
||||||
|
|
||||||
|
#define EWMA_LEVEL 96 /* ewma weighting factor [/EWMA_DIV] */
|
30
debian/patches/misc-openwrt/0005-mac80211-minstrel_ht-reduce-fluctuations-in-rate-pro.patch
vendored
Normal file
30
debian/patches/misc-openwrt/0005-mac80211-minstrel_ht-reduce-fluctuations-in-rate-pro.patch
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Sat, 6 Feb 2021 16:08:01 +0100
|
||||||
|
Subject: [PATCH] mac80211: minstrel_ht: reduce fluctuations in rate
|
||||||
|
probability stats
|
||||||
|
|
||||||
|
In some scenarios when there is a lot of fluctuation in packet error rates,
|
||||||
|
rate switching can be amplified when the statistics get skewed by time slots
|
||||||
|
with very few tries.
|
||||||
|
Make the input data to the moving average more smooth by adding the
|
||||||
|
success/attempts count from the last stats window as well. This has the
|
||||||
|
advantage of smoothing the data without introducing any extra lag to sampling
|
||||||
|
rates.
|
||||||
|
This significantly improves rate stability on a strong test link subjected to
|
||||||
|
periodic noise bursts generated with a SDR
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||||
|
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||||
|
@@ -769,7 +769,8 @@ minstrel_ht_calc_rate_stats(struct minst
|
||||||
|
unsigned int cur_prob;
|
||||||
|
|
||||||
|
if (unlikely(mrs->attempts > 0)) {
|
||||||
|
- cur_prob = MINSTREL_FRAC(mrs->success, mrs->attempts);
|
||||||
|
+ cur_prob = MINSTREL_FRAC(mrs->success + mrs->last_success,
|
||||||
|
+ mrs->attempts + mrs->last_attempts);
|
||||||
|
minstrel_filter_avg_add(&mrs->prob_avg,
|
||||||
|
&mrs->prob_avg_1, cur_prob);
|
||||||
|
mrs->att_hist += mrs->attempts;
|
151
debian/patches/misc-openwrt/0006-mac80211-minstrel_ht-rework-rate-downgrade-code-and-.patch
vendored
Normal file
151
debian/patches/misc-openwrt/0006-mac80211-minstrel_ht-rework-rate-downgrade-code-and-.patch
vendored
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Sat, 6 Feb 2021 16:33:14 +0100
|
||||||
|
Subject: [PATCH] mac80211: minstrel_ht: rework rate downgrade code and
|
||||||
|
max_prob rate selection
|
||||||
|
|
||||||
|
The current fallback code for fast rate switching on potentially failing rates
|
||||||
|
is triggering too often if there is some strong noise on the channel. This can
|
||||||
|
lead to wild fluctuations in the rate selection.
|
||||||
|
Additionally, switching down to max_prob_rate can create a significant gap down
|
||||||
|
in throughput, especially when using only 2 spatial streams, because max_prob_rate
|
||||||
|
is limited to using fewer streams than the max_tp rates.
|
||||||
|
In order to improve throughput without reducing reliability too much, use the
|
||||||
|
rate downgrade code for the max_prob_rate only, and allow the non-downgraded
|
||||||
|
max_prob_rate to use as many spatial streams as the max_tp rates
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/rc80211_minstrel_ht.c
|
||||||
|
+++ b/net/mac80211/rc80211_minstrel_ht.c
|
||||||
|
@@ -580,6 +580,14 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||||
|
int cur_tp_avg, cur_group, cur_idx;
|
||||||
|
int max_gpr_group, max_gpr_idx;
|
||||||
|
int max_gpr_tp_avg, max_gpr_prob;
|
||||||
|
+ int min_dur;
|
||||||
|
+
|
||||||
|
+ min_dur = max(minstrel_get_duration(mi->max_tp_rate[0]),
|
||||||
|
+ minstrel_get_duration(mi->max_tp_rate[1]));
|
||||||
|
+
|
||||||
|
+ /* make the rate at least 18% slower than max tp rates */
|
||||||
|
+ if (minstrel_get_duration(index) <= min_dur * 19 / 16)
|
||||||
|
+ return;
|
||||||
|
|
||||||
|
cur_group = MI_RATE_GROUP(index);
|
||||||
|
cur_idx = MI_RATE_IDX(index);
|
||||||
|
@@ -601,11 +609,6 @@ minstrel_ht_set_best_prob_rate(struct mi
|
||||||
|
!minstrel_ht_is_legacy_group(max_tp_group))
|
||||||
|
return;
|
||||||
|
|
||||||
|
- /* skip rates faster than max tp rate with lower prob */
|
||||||
|
- if (minstrel_get_duration(mi->max_tp_rate[0]) > minstrel_get_duration(index) &&
|
||||||
|
- mrs->prob_avg < max_tp_prob)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
max_gpr_group = MI_RATE_GROUP(mg->max_group_prob_rate);
|
||||||
|
max_gpr_idx = MI_RATE_IDX(mg->max_group_prob_rate);
|
||||||
|
max_gpr_prob = mi->groups[max_gpr_group].rates[max_gpr_idx].prob_avg;
|
||||||
|
@@ -663,40 +666,6 @@ minstrel_ht_assign_best_tp_rates(struct
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-/*
|
||||||
|
- * Try to increase robustness of max_prob rate by decrease number of
|
||||||
|
- * streams if possible.
|
||||||
|
- */
|
||||||
|
-static inline void
|
||||||
|
-minstrel_ht_prob_rate_reduce_streams(struct minstrel_ht_sta *mi)
|
||||||
|
-{
|
||||||
|
- struct minstrel_mcs_group_data *mg;
|
||||||
|
- int tmp_max_streams, group, tmp_idx, tmp_prob;
|
||||||
|
- int tmp_tp = 0;
|
||||||
|
-
|
||||||
|
- if (!mi->sta->deflink.ht_cap.ht_supported)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
- group = MI_RATE_GROUP(mi->max_tp_rate[0]);
|
||||||
|
- tmp_max_streams = minstrel_mcs_groups[group].streams;
|
||||||
|
- for (group = 0; group < ARRAY_SIZE(minstrel_mcs_groups); group++) {
|
||||||
|
- mg = &mi->groups[group];
|
||||||
|
- if (!mi->supported[group] || group == MINSTREL_CCK_GROUP)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
- tmp_idx = MI_RATE_IDX(mg->max_group_prob_rate);
|
||||||
|
- tmp_prob = mi->groups[group].rates[tmp_idx].prob_avg;
|
||||||
|
-
|
||||||
|
- if (tmp_tp < minstrel_ht_get_tp_avg(mi, group, tmp_idx, tmp_prob) &&
|
||||||
|
- (minstrel_mcs_groups[group].streams < tmp_max_streams)) {
|
||||||
|
- mi->max_prob_rate = mg->max_group_prob_rate;
|
||||||
|
- tmp_tp = minstrel_ht_get_tp_avg(mi, group,
|
||||||
|
- tmp_idx,
|
||||||
|
- tmp_prob);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static u16
|
||||||
|
__minstrel_ht_get_sample_rate(struct minstrel_ht_sta *mi,
|
||||||
|
enum minstrel_sample_type type)
|
||||||
|
@@ -1176,8 +1145,6 @@ minstrel_ht_update_stats(struct minstrel
|
||||||
|
|
||||||
|
mi->max_prob_rate = tmp_max_prob_rate;
|
||||||
|
|
||||||
|
- /* Try to increase robustness of max_prob_rate*/
|
||||||
|
- minstrel_ht_prob_rate_reduce_streams(mi);
|
||||||
|
minstrel_ht_refill_sample_rates(mi);
|
||||||
|
|
||||||
|
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||||
|
@@ -1256,7 +1223,7 @@ minstrel_ht_ri_txstat_valid(struct minst
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
-minstrel_downgrade_rate(struct minstrel_ht_sta *mi, u16 *idx, bool primary)
|
||||||
|
+minstrel_downgrade_prob_rate(struct minstrel_ht_sta *mi, u16 *idx)
|
||||||
|
{
|
||||||
|
int group, orig_group;
|
||||||
|
|
||||||
|
@@ -1271,11 +1238,7 @@ minstrel_downgrade_rate(struct minstrel_
|
||||||
|
minstrel_mcs_groups[orig_group].streams)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if (primary)
|
||||||
|
- *idx = mi->groups[group].max_group_tp_rate[0];
|
||||||
|
- else
|
||||||
|
- *idx = mi->groups[group].max_group_tp_rate[1];
|
||||||
|
- break;
|
||||||
|
+ *idx = mi->groups[group].max_group_prob_rate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1286,7 +1249,7 @@ minstrel_ht_tx_status(void *priv, struct
|
||||||
|
struct ieee80211_tx_info *info = st->info;
|
||||||
|
struct minstrel_ht_sta *mi = priv_sta;
|
||||||
|
struct ieee80211_tx_rate *ar = info->status.rates;
|
||||||
|
- struct minstrel_rate_stats *rate, *rate2;
|
||||||
|
+ struct minstrel_rate_stats *rate;
|
||||||
|
struct minstrel_priv *mp = priv;
|
||||||
|
u32 update_interval = mp->update_interval;
|
||||||
|
bool last, update = false;
|
||||||
|
@@ -1354,18 +1317,13 @@ minstrel_ht_tx_status(void *priv, struct
|
||||||
|
/*
|
||||||
|
* check for sudden death of spatial multiplexing,
|
||||||
|
* downgrade to a lower number of streams if necessary.
|
||||||
|
+ * only do this for the max_prob_rate to prevent spurious
|
||||||
|
+ * rate fluctuations when the link changes suddenly
|
||||||
|
*/
|
||||||
|
- rate = minstrel_get_ratestats(mi, mi->max_tp_rate[0]);
|
||||||
|
+ rate = minstrel_get_ratestats(mi, mi->max_prob_rate);
|
||||||
|
if (rate->attempts > 30 &&
|
||||||
|
rate->success < rate->attempts / 4) {
|
||||||
|
- minstrel_downgrade_rate(mi, &mi->max_tp_rate[0], true);
|
||||||
|
- update = true;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- rate2 = minstrel_get_ratestats(mi, mi->max_tp_rate[1]);
|
||||||
|
- if (rate2->attempts > 30 &&
|
||||||
|
- rate2->success < rate2->attempts / 4) {
|
||||||
|
- minstrel_downgrade_rate(mi, &mi->max_tp_rate[1], false);
|
||||||
|
+ minstrel_downgrade_prob_rate(mi, &mi->max_prob_rate);
|
||||||
|
update = true;
|
||||||
|
}
|
||||||
|
}
|
53
debian/patches/misc-openwrt/0007-mac80211-increase-quantum-for-airtime-scheduler.patch
vendored
Normal file
53
debian/patches/misc-openwrt/0007-mac80211-increase-quantum-for-airtime-scheduler.patch
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Sun, 26 Jun 2022 11:43:25 +0200
|
||||||
|
Subject: [PATCH] mac80211: increase quantum for airtime scheduler
|
||||||
|
|
||||||
|
Given the typical AQL budget and queue length, a quantum of 256 with the
|
||||||
|
default station weight often requires iterating over all queues frequently,
|
||||||
|
until one of them becomes eligible.
|
||||||
|
Improve performance by using 8 times station weight as scheduler quantum
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/net/mac80211/ieee80211_i.h
|
||||||
|
+++ b/net/mac80211/ieee80211_i.h
|
||||||
|
@@ -103,6 +103,8 @@ ieee80211_sta_keep_active(struct sta_inf
|
||||||
|
return time_before_eq(jiffies, sta->airtime[ac].last_active + HZ / 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#define AIRTIME_QUANTUM_SHIFT 3
|
||||||
|
+
|
||||||
|
struct ieee80211_bss {
|
||||||
|
u32 device_ts_beacon, device_ts_presp;
|
||||||
|
|
||||||
|
--- a/net/mac80211/tx.c
|
||||||
|
+++ b/net/mac80211/tx.c
|
||||||
|
@@ -4085,7 +4085,7 @@ struct ieee80211_txq *ieee80211_next_txq
|
||||||
|
|
||||||
|
if (deficit < 0)
|
||||||
|
sta->airtime[txqi->txq.ac].deficit +=
|
||||||
|
- sta->airtime_weight;
|
||||||
|
+ sta->airtime_weight << AIRTIME_QUANTUM_SHIFT;
|
||||||
|
|
||||||
|
if (deficit < 0 || !aql_check) {
|
||||||
|
list_move_tail(&txqi->schedule_order,
|
||||||
|
@@ -4230,7 +4230,8 @@ bool ieee80211_txq_may_transmit(struct i
|
||||||
|
}
|
||||||
|
sta = container_of(iter->txq.sta, struct sta_info, sta);
|
||||||
|
if (ieee80211_sta_deficit(sta, ac) < 0)
|
||||||
|
- sta->airtime[ac].deficit += sta->airtime_weight;
|
||||||
|
+ sta->airtime[ac].deficit += sta->airtime_weight <<
|
||||||
|
+ AIRTIME_QUANTUM_SHIFT;
|
||||||
|
list_move_tail(&iter->schedule_order, &local->active_txqs[ac]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -4238,7 +4239,7 @@ bool ieee80211_txq_may_transmit(struct i
|
||||||
|
if (sta->airtime[ac].deficit >= 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
- sta->airtime[ac].deficit += sta->airtime_weight;
|
||||||
|
+ sta->airtime[ac].deficit += sta->airtime_weight << AIRTIME_QUANTUM_SHIFT;
|
||||||
|
list_move_tail(&txqi->schedule_order, &local->active_txqs[ac]);
|
||||||
|
spin_unlock_bh(&local->active_txq_lock[ac]);
|
||||||
|
|
293
debian/patches/misc-openwrt/0008-mac80211-add-AQL-support-for-broadcast-packets.patch
vendored
Normal file
293
debian/patches/misc-openwrt/0008-mac80211-add-AQL-support-for-broadcast-packets.patch
vendored
Normal file
@@ -0,0 +1,293 @@
|
|||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Fri, 9 Feb 2024 19:43:40 +0100
|
||||||
|
Subject: [PATCH] mac80211: add AQL support for broadcast packets
|
||||||
|
|
||||||
|
Excessive broadcast traffic with little competing unicast traffic can easily
|
||||||
|
flood hardware queues, leading to throughput issues. Additionally, filling
|
||||||
|
the hardware queues with too many packets breaks FQ for broadcast data.
|
||||||
|
Fix this by enabling AQL for broadcast packets.
|
||||||
|
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/include/net/cfg80211.h
|
||||||
|
+++ b/include/net/cfg80211.h
|
||||||
|
@@ -3464,6 +3464,7 @@ enum wiphy_params_flags {
|
||||||
|
/* The per TXQ device queue limit in airtime */
|
||||||
|
#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_L 5000
|
||||||
|
#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_H 12000
|
||||||
|
+#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_BC 50000
|
||||||
|
|
||||||
|
/* The per interface airtime threshold to switch to lower queue limit */
|
||||||
|
#define IEEE80211_AQL_THRESHOLD 24000
|
||||||
|
--- a/net/mac80211/debugfs.c
|
||||||
|
+++ b/net/mac80211/debugfs.c
|
||||||
|
@@ -212,11 +212,13 @@ static ssize_t aql_pending_read(struct f
|
||||||
|
"VI %u us\n"
|
||||||
|
"BE %u us\n"
|
||||||
|
"BK %u us\n"
|
||||||
|
+ "BC/MC %u us\n"
|
||||||
|
"total %u us\n",
|
||||||
|
atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_VO]),
|
||||||
|
atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_VI]),
|
||||||
|
atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BE]),
|
||||||
|
atomic_read(&local->aql_ac_pending_airtime[IEEE80211_AC_BK]),
|
||||||
|
+ atomic_read(&local->aql_bc_pending_airtime),
|
||||||
|
atomic_read(&local->aql_total_pending_airtime));
|
||||||
|
return simple_read_from_buffer(user_buf, count, ppos,
|
||||||
|
buf, len);
|
||||||
|
@@ -241,7 +243,8 @@ static ssize_t aql_txq_limit_read(struct
|
||||||
|
"VO %u %u\n"
|
||||||
|
"VI %u %u\n"
|
||||||
|
"BE %u %u\n"
|
||||||
|
- "BK %u %u\n",
|
||||||
|
+ "BK %u %u\n"
|
||||||
|
+ "BC/MC %u\n",
|
||||||
|
local->aql_txq_limit_low[IEEE80211_AC_VO],
|
||||||
|
local->aql_txq_limit_high[IEEE80211_AC_VO],
|
||||||
|
local->aql_txq_limit_low[IEEE80211_AC_VI],
|
||||||
|
@@ -249,7 +252,8 @@ static ssize_t aql_txq_limit_read(struct
|
||||||
|
local->aql_txq_limit_low[IEEE80211_AC_BE],
|
||||||
|
local->aql_txq_limit_high[IEEE80211_AC_BE],
|
||||||
|
local->aql_txq_limit_low[IEEE80211_AC_BK],
|
||||||
|
- local->aql_txq_limit_high[IEEE80211_AC_BK]);
|
||||||
|
+ local->aql_txq_limit_high[IEEE80211_AC_BK],
|
||||||
|
+ local->aql_txq_limit_bc);
|
||||||
|
return simple_read_from_buffer(user_buf, count, ppos,
|
||||||
|
buf, len);
|
||||||
|
}
|
||||||
|
@@ -275,6 +279,11 @@ static ssize_t aql_txq_limit_write(struc
|
||||||
|
else
|
||||||
|
buf[count] = '\0';
|
||||||
|
|
||||||
|
+ if (sscanf(buf, "mcast %u", &q_limit_low) == 1) {
|
||||||
|
+ local->aql_txq_limit_bc = q_limit_low;
|
||||||
|
+ return count;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (sscanf(buf, "%u %u %u", &ac, &q_limit_low, &q_limit_high) != 3)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
--- a/net/mac80211/ieee80211_i.h
|
||||||
|
+++ b/net/mac80211/ieee80211_i.h
|
||||||
|
@@ -1377,10 +1377,12 @@ struct ieee80211_local {
|
||||||
|
spinlock_t handle_wake_tx_queue_lock;
|
||||||
|
|
||||||
|
u16 airtime_flags;
|
||||||
|
+ u32 aql_txq_limit_bc;
|
||||||
|
u32 aql_txq_limit_low[IEEE80211_NUM_ACS];
|
||||||
|
u32 aql_txq_limit_high[IEEE80211_NUM_ACS];
|
||||||
|
u32 aql_threshold;
|
||||||
|
atomic_t aql_total_pending_airtime;
|
||||||
|
+ atomic_t aql_bc_pending_airtime;
|
||||||
|
atomic_t aql_ac_pending_airtime[IEEE80211_NUM_ACS];
|
||||||
|
|
||||||
|
const struct ieee80211_ops *ops;
|
||||||
|
--- a/net/mac80211/main.c
|
||||||
|
+++ b/net/mac80211/main.c
|
||||||
|
@@ -970,6 +970,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_
|
||||||
|
spin_lock_init(&local->rx_path_lock);
|
||||||
|
spin_lock_init(&local->queue_stop_reason_lock);
|
||||||
|
|
||||||
|
+ local->aql_txq_limit_bc = IEEE80211_DEFAULT_AQL_TXQ_LIMIT_BC;
|
||||||
|
for (i = 0; i < IEEE80211_NUM_ACS; i++) {
|
||||||
|
INIT_LIST_HEAD(&local->active_txqs[i]);
|
||||||
|
spin_lock_init(&local->active_txq_lock[i]);
|
||||||
|
--- a/net/mac80211/sta_info.c
|
||||||
|
+++ b/net/mac80211/sta_info.c
|
||||||
|
@@ -2381,13 +2381,28 @@ EXPORT_SYMBOL(ieee80211_sta_recalc_aggre
|
||||||
|
|
||||||
|
void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
|
||||||
|
struct sta_info *sta, u8 ac,
|
||||||
|
- u16 tx_airtime, bool tx_completed)
|
||||||
|
+ u16 tx_airtime, bool tx_completed,
|
||||||
|
+ bool mcast)
|
||||||
|
{
|
||||||
|
int tx_pending;
|
||||||
|
|
||||||
|
if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL))
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if (mcast) {
|
||||||
|
+ if (!tx_completed) {
|
||||||
|
+ atomic_add(tx_airtime, &local->aql_bc_pending_airtime);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ tx_pending = atomic_sub_return(tx_airtime,
|
||||||
|
+ &local->aql_bc_pending_airtime);
|
||||||
|
+ if (tx_pending < 0)
|
||||||
|
+ atomic_cmpxchg(&local->aql_bc_pending_airtime,
|
||||||
|
+ tx_pending, 0);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!tx_completed) {
|
||||||
|
if (sta)
|
||||||
|
atomic_add(tx_airtime,
|
||||||
|
--- a/net/mac80211/tx.c
|
||||||
|
+++ b/net/mac80211/tx.c
|
||||||
|
@@ -2556,7 +2556,7 @@ static u16 ieee80211_store_ack_skb(struc
|
||||||
|
|
||||||
|
spin_lock_irqsave(&local->ack_status_lock, flags);
|
||||||
|
id = idr_alloc(&local->ack_status_frames, ack_skb,
|
||||||
|
- 1, 0x2000, GFP_ATOMIC);
|
||||||
|
+ 1, 0x1000, GFP_ATOMIC);
|
||||||
|
spin_unlock_irqrestore(&local->ack_status_lock, flags);
|
||||||
|
|
||||||
|
if (id >= 0) {
|
||||||
|
@@ -3986,20 +3986,20 @@ begin:
|
||||||
|
encap_out:
|
||||||
|
info->control.vif = vif;
|
||||||
|
|
||||||
|
- if (tx.sta &&
|
||||||
|
- wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
|
||||||
|
- bool ampdu = txq->ac != IEEE80211_AC_VO;
|
||||||
|
+ if (wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
|
||||||
|
+ bool ampdu = txq->sta && txq->ac != IEEE80211_AC_VO;
|
||||||
|
u32 airtime;
|
||||||
|
|
||||||
|
airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
|
||||||
|
skb->len, ampdu);
|
||||||
|
- if (airtime) {
|
||||||
|
- airtime = ieee80211_info_set_tx_time_est(info, airtime);
|
||||||
|
- ieee80211_sta_update_pending_airtime(local, tx.sta,
|
||||||
|
- txq->ac,
|
||||||
|
- airtime,
|
||||||
|
- false);
|
||||||
|
- }
|
||||||
|
+ if (!airtime)
|
||||||
|
+ return skb;
|
||||||
|
+
|
||||||
|
+ airtime = ieee80211_info_set_tx_time_est(info, airtime);
|
||||||
|
+ info->tx_time_mc = !tx.sta;
|
||||||
|
+ ieee80211_sta_update_pending_airtime(local, tx.sta, txq->ac,
|
||||||
|
+ airtime, false,
|
||||||
|
+ info->tx_time_mc);
|
||||||
|
}
|
||||||
|
|
||||||
|
return skb;
|
||||||
|
@@ -4051,6 +4051,7 @@ struct ieee80211_txq *ieee80211_next_txq
|
||||||
|
struct ieee80211_txq *ret = NULL;
|
||||||
|
struct txq_info *txqi = NULL, *head = NULL;
|
||||||
|
bool found_eligible_txq = false;
|
||||||
|
+ bool aql_check;
|
||||||
|
|
||||||
|
spin_lock_bh(&local->active_txq_lock[ac]);
|
||||||
|
|
||||||
|
@@ -4074,26 +4075,26 @@ struct ieee80211_txq *ieee80211_next_txq
|
||||||
|
if (!head)
|
||||||
|
head = txqi;
|
||||||
|
|
||||||
|
+ aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq);
|
||||||
|
+ if (aql_check)
|
||||||
|
+ found_eligible_txq = true;
|
||||||
|
+
|
||||||
|
if (txqi->txq.sta) {
|
||||||
|
struct sta_info *sta = container_of(txqi->txq.sta,
|
||||||
|
struct sta_info, sta);
|
||||||
|
- bool aql_check = ieee80211_txq_airtime_check(hw, &txqi->txq);
|
||||||
|
- s32 deficit = ieee80211_sta_deficit(sta, txqi->txq.ac);
|
||||||
|
-
|
||||||
|
- if (aql_check)
|
||||||
|
- found_eligible_txq = true;
|
||||||
|
-
|
||||||
|
- if (deficit < 0)
|
||||||
|
+ if (ieee80211_sta_deficit(sta, txqi->txq.ac) < 0) {
|
||||||
|
sta->airtime[txqi->txq.ac].deficit +=
|
||||||
|
sta->airtime_weight << AIRTIME_QUANTUM_SHIFT;
|
||||||
|
-
|
||||||
|
- if (deficit < 0 || !aql_check) {
|
||||||
|
- list_move_tail(&txqi->schedule_order,
|
||||||
|
- &local->active_txqs[txqi->txq.ac]);
|
||||||
|
- goto begin;
|
||||||
|
+ aql_check = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!aql_check) {
|
||||||
|
+ list_move_tail(&txqi->schedule_order,
|
||||||
|
+ &local->active_txqs[txqi->txq.ac]);
|
||||||
|
+ goto begin;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (txqi->schedule_round == local->schedule_round[ac])
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
@@ -4160,7 +4161,8 @@ bool ieee80211_txq_airtime_check(struct
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (!txq->sta)
|
||||||
|
- return true;
|
||||||
|
+ return atomic_read(&local->aql_bc_pending_airtime) <
|
||||||
|
+ local->aql_txq_limit_bc;
|
||||||
|
|
||||||
|
if (unlikely(txq->tid == IEEE80211_NUM_TIDS))
|
||||||
|
return true;
|
||||||
|
@@ -4209,15 +4211,15 @@ bool ieee80211_txq_may_transmit(struct i
|
||||||
|
|
||||||
|
spin_lock_bh(&local->active_txq_lock[ac]);
|
||||||
|
|
||||||
|
- if (!txqi->txq.sta)
|
||||||
|
- goto out;
|
||||||
|
-
|
||||||
|
if (list_empty(&txqi->schedule_order))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if (!ieee80211_txq_schedule_airtime_check(local, ac))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
+ if (!txqi->txq.sta)
|
||||||
|
+ goto out;
|
||||||
|
+
|
||||||
|
list_for_each_entry_safe(iter, tmp, &local->active_txqs[ac],
|
||||||
|
schedule_order) {
|
||||||
|
if (iter == txqi)
|
||||||
|
--- a/include/net/mac80211.h
|
||||||
|
+++ b/include/net/mac80211.h
|
||||||
|
@@ -1238,8 +1238,8 @@ struct ieee80211_tx_info {
|
||||||
|
status_data_idr:1,
|
||||||
|
status_data:13,
|
||||||
|
hw_queue:4,
|
||||||
|
+ tx_time_mc:1,
|
||||||
|
tx_time_est:10;
|
||||||
|
- /* 1 free bit */
|
||||||
|
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
--- a/net/mac80211/sta_info.h
|
||||||
|
+++ b/net/mac80211/sta_info.h
|
||||||
|
@@ -147,7 +147,8 @@ struct airtime_info {
|
||||||
|
|
||||||
|
void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
|
||||||
|
struct sta_info *sta, u8 ac,
|
||||||
|
- u16 tx_airtime, bool tx_completed);
|
||||||
|
+ u16 tx_airtime, bool tx_completed,
|
||||||
|
+ bool mcast);
|
||||||
|
|
||||||
|
struct sta_info;
|
||||||
|
|
||||||
|
--- a/net/mac80211/status.c
|
||||||
|
+++ b/net/mac80211/status.c
|
||||||
|
@@ -734,7 +734,7 @@ static void ieee80211_report_used_skb(st
|
||||||
|
ieee80211_sta_update_pending_airtime(local, sta,
|
||||||
|
skb_get_queue_mapping(skb),
|
||||||
|
tx_time_est,
|
||||||
|
- true);
|
||||||
|
+ true, info->tx_time_mc);
|
||||||
|
rcu_read_unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1143,10 +1143,11 @@ void ieee80211_tx_status_ext(struct ieee
|
||||||
|
/* Do this here to avoid the expensive lookup of the sta
|
||||||
|
* in ieee80211_report_used_skb().
|
||||||
|
*/
|
||||||
|
+ bool mcast = IEEE80211_SKB_CB(skb)->tx_time_mc;
|
||||||
|
ieee80211_sta_update_pending_airtime(local, sta,
|
||||||
|
skb_get_queue_mapping(skb),
|
||||||
|
tx_time_est,
|
||||||
|
- true);
|
||||||
|
+ true, mcast);
|
||||||
|
ieee80211_info_set_tx_time_est(IEEE80211_SKB_CB(skb), 0);
|
||||||
|
}
|
||||||
|
|
13
debian/patches/misc-openwrt/0009-mac80211-txq-tune.patch
vendored
Normal file
13
debian/patches/misc-openwrt/0009-mac80211-txq-tune.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
--- a/net/mac80211/tx.c
|
||||||
|
+++ b/net/mac80211/tx.c
|
||||||
|
@@ -1606,8 +1606,8 @@ int ieee80211_txq_setup_flows(struct iee
|
||||||
|
fq->memory_limit = 4 << 20; /* 4 Mbytes */
|
||||||
|
|
||||||
|
codel_params_init(&local->cparams);
|
||||||
|
- local->cparams.interval = MS2TIME(100);
|
||||||
|
- local->cparams.target = MS2TIME(20);
|
||||||
|
+ local->cparams.interval = MS2TIME(50);
|
||||||
|
+ local->cparams.target = MS2TIME(10);
|
||||||
|
local->cparams.ecn = true;
|
||||||
|
|
||||||
|
local->cvars = kvcalloc(fq->flows_cnt, sizeof(local->cvars[0]),
|
18
debian/patches/misc-openwrt/0010-cfg80211-aql-txq-limit.patch
vendored
Normal file
18
debian/patches/misc-openwrt/0010-cfg80211-aql-txq-limit.patch
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
--- a/include/net/cfg80211.h
|
||||||
|
+++ b/include/net/cfg80211.h
|
||||||
|
@@ -3462,12 +3462,12 @@ enum wiphy_params_flags {
|
||||||
|
#define IEEE80211_DEFAULT_AIRTIME_WEIGHT 256
|
||||||
|
|
||||||
|
/* The per TXQ device queue limit in airtime */
|
||||||
|
-#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_L 5000
|
||||||
|
-#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_H 12000
|
||||||
|
+#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_L 1500
|
||||||
|
+#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_H 5000
|
||||||
|
#define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_BC 50000
|
||||||
|
|
||||||
|
/* The per interface airtime threshold to switch to lower queue limit */
|
||||||
|
-#define IEEE80211_AQL_THRESHOLD 24000
|
||||||
|
+#define IEEE80211_AQL_THRESHOLD 12000
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cfg80211_pmksa - PMK Security Association
|
72
debian/patches/misc-openwrt/0101-sched-sch_cake-fix-bulk-flow-accounting-logic-for-host.patch
vendored
Normal file
72
debian/patches/misc-openwrt/0101-sched-sch_cake-fix-bulk-flow-accounting-logic-for-host.patch
vendored
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
From 546ea84d07e3e324644025e2aae2d12ea4c5896e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= <toke@redhat.com>
|
||||||
|
Date: Tue, 3 Sep 2024 18:08:45 +0200
|
||||||
|
Subject: [PATCH] sched: sch_cake: fix bulk flow accounting logic for host
|
||||||
|
fairness
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
In sch_cake, we keep track of the count of active bulk flows per host,
|
||||||
|
when running in dst/src host fairness mode, which is used as the
|
||||||
|
round-robin weight when iterating through flows. The count of active
|
||||||
|
bulk flows is updated whenever a flow changes state.
|
||||||
|
|
||||||
|
This has a peculiar interaction with the hash collision handling: when a
|
||||||
|
hash collision occurs (after the set-associative hashing), the state of
|
||||||
|
the hash bucket is simply updated to match the new packet that collided,
|
||||||
|
and if host fairness is enabled, that also means assigning new per-host
|
||||||
|
state to the flow. For this reason, the bulk flow counters of the
|
||||||
|
host(s) assigned to the flow are decremented, before new state is
|
||||||
|
assigned (and the counters, which may not belong to the same host
|
||||||
|
anymore, are incremented again).
|
||||||
|
|
||||||
|
Back when this code was introduced, the host fairness mode was always
|
||||||
|
enabled, so the decrement was unconditional. When the configuration
|
||||||
|
flags were introduced the *increment* was made conditional, but
|
||||||
|
the *decrement* was not. Which of course can lead to a spurious
|
||||||
|
decrement (and associated wrap-around to U16_MAX).
|
||||||
|
|
||||||
|
AFAICT, when host fairness is disabled, the decrement and wrap-around
|
||||||
|
happens as soon as a hash collision occurs (which is not that common in
|
||||||
|
itself, due to the set-associative hashing). However, in most cases this
|
||||||
|
is harmless, as the value is only used when host fairness mode is
|
||||||
|
enabled. So in order to trigger an array overflow, sch_cake has to first
|
||||||
|
be configured with host fairness disabled, and while running in this
|
||||||
|
mode, a hash collision has to occur to cause the overflow. Then, the
|
||||||
|
qdisc has to be reconfigured to enable host fairness, which leads to the
|
||||||
|
array out-of-bounds because the wrapped-around value is retained and
|
||||||
|
used as an array index. It seems that syzbot managed to trigger this,
|
||||||
|
which is quite impressive in its own right.
|
||||||
|
|
||||||
|
This patch fixes the issue by introducing the same conditional check on
|
||||||
|
decrement as is used on increment.
|
||||||
|
|
||||||
|
The original bug predates the upstreaming of cake, but the commit listed
|
||||||
|
in the Fixes tag touched that code, meaning that this patch won't apply
|
||||||
|
before that.
|
||||||
|
|
||||||
|
Fixes: 712639929912 ("sch_cake: Make the dual modes fairer")
|
||||||
|
Reported-by: syzbot+7fe7b81d602cc1e6b94d@syzkaller.appspotmail.com
|
||||||
|
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
|
||||||
|
Link: https://patch.msgid.link/20240903160846.20909-1-toke@redhat.com
|
||||||
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||||
|
---
|
||||||
|
net/sched/sch_cake.c | 11 +++++++----
|
||||||
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
--- a/net/sched/sch_cake.c
|
||||||
|
+++ b/net/sched/sch_cake.c
|
||||||
|
@@ -833,8 +833,10 @@ skip_hash:
|
||||||
|
allocate_dst = cake_ddst(flow_mode);
|
||||||
|
|
||||||
|
if (q->flows[outer_hash + k].set == CAKE_SET_BULK) {
|
||||||
|
- cake_dec_srchost_bulk_flow_count(q, &q->flows[outer_hash + k], flow_mode);
|
||||||
|
- cake_dec_dsthost_bulk_flow_count(q, &q->flows[outer_hash + k], flow_mode);
|
||||||
|
+ if (allocate_src)
|
||||||
|
+ q->hosts[q->flows[reduced_hash].srchost].srchost_bulk_flow_count--;
|
||||||
|
+ if (allocate_dst)
|
||||||
|
+ q->hosts[q->flows[reduced_hash].dsthost].dsthost_bulk_flow_count--;
|
||||||
|
}
|
||||||
|
found:
|
||||||
|
/* reserve queue for future packets in same flow */
|
11
debian/patches/misc-openwrt/0201-fq-adjust-memory-size.patch
vendored
Normal file
11
debian/patches/misc-openwrt/0201-fq-adjust-memory-size.patch
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
--- a/include/net/fq_impl.h
|
||||||
|
+++ b/include/net/fq_impl.h
|
||||||
|
@@ -356,7 +356,7 @@ static int fq_init(struct fq *fq, int fl
|
||||||
|
fq->flows_cnt = max_t(u32, flows_cnt, 1);
|
||||||
|
fq->quantum = 300;
|
||||||
|
fq->limit = 8192;
|
||||||
|
- fq->memory_limit = 16 << 20; /* 16 MBytes */
|
||||||
|
+ fq->memory_limit = 32 << 20; /* 32 MBytes */
|
||||||
|
|
||||||
|
fq->flows = kvcalloc(fq->flows_cnt, sizeof(fq->flows[0]), GFP_KERNEL);
|
||||||
|
if (!fq->flows)
|
@@ -1,14 +1,6 @@
|
|||||||
From 90b69178f6a866c7f3330c2006f6b5396146192c Mon Sep 17 00:00:00 2001
|
From 906ed24dfc7e1bbceacc087ba38aecfd22a9890b Mon Sep 17 00:00:00 2001
|
||||||
From: graysky <therealgraysky AT proton DOT me>
|
From: graysky <therealgraysky AT proton DOT me>
|
||||||
Date: Mon, 16 Sep 2024 05:55:58 -0400
|
Date: Mon, 16 Sep 2024 14:47:03 -0400
|
||||||
Subject: ZEN: Add graysky's more-uarches
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
From https://github.com/graysky2/kernel_compiler_patch
|
|
||||||
|
|
||||||
more-ISA-levels-and-uarches-for-kernel-6.1.79+.patch
|
|
||||||
|
|
||||||
FEATURES
|
FEATURES
|
||||||
This patch adds additional tunings via new x86-64 ISA levels and
|
This patch adds additional tunings via new x86-64 ISA levels and
|
||||||
@@ -122,45 +114,121 @@ REFERENCES
|
|||||||
2. https://bugzilla.kernel.org/show_bug.cgi?id=77461
|
2. https://bugzilla.kernel.org/show_bug.cgi?id=77461
|
||||||
3. https://github.com/graysky2/kernel_gcc_patch/issues/15
|
3. https://github.com/graysky2/kernel_gcc_patch/issues/15
|
||||||
4. http://www.linuxforge.net/docs/linux/linux-gcc.php
|
4. http://www.linuxforge.net/docs/linux/linux-gcc.php
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/x86/Kconfig.cpu | 367 ++++++++++++++++++++++++++++++--
|
arch/x86/Kconfig.cpu | 462 ++++++++++++++++++++++++++++++++++++++++++-
|
||||||
arch/x86/Makefile | 89 +++++++-
|
arch/x86/Makefile | 222 +++++++++++++++++++++
|
||||||
arch/x86/include/asm/vermagic.h | 72 +++++++
|
2 files changed, 675 insertions(+), 9 deletions(-)
|
||||||
3 files changed, 511 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/x86/Kconfig.cpu
|
--- a/arch/x86/Kconfig.cpu
|
||||||
+++ b/arch/x86/Kconfig.cpu
|
+++ b/arch/x86/Kconfig.cpu
|
||||||
@@ -155,9 +155,8 @@ config MPENTIUM4
|
@@ -31,6 +31,7 @@ choice
|
||||||
-Paxville
|
- "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
|
||||||
-Dempsey
|
- "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
|
||||||
|
- "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
|
||||||
|
+ - "Opteron/Athlon64/Hammer/K8" for all K8 and newer AMD CPUs.
|
||||||
|
- "Crusoe" for the Transmeta Crusoe series.
|
||||||
|
- "Efficeon" for the Transmeta Efficeon series.
|
||||||
|
- "Winchip-C6" for original IDT Winchip.
|
||||||
|
@@ -41,7 +42,10 @@ choice
|
||||||
|
- "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
|
||||||
|
- "VIA C3-2" for VIA C3-2 "Nehemiah" (model 9 and above).
|
||||||
|
- "VIA C7" for VIA C7.
|
||||||
|
+ - "Intel P4" for the Pentium 4/Netburst microarchitecture.
|
||||||
|
+ - "Core 2/newer Xeon" for all core2 and newer Intel CPUs.
|
||||||
|
- "Intel Atom" for the Atom-microarchitecture CPUs.
|
||||||
|
+ - "Generic-x86-64" for a kernel which runs on any x86-64 CPU.
|
||||||
|
|
||||||
|
See each option's help text for additional details. If you don't know
|
||||||
|
what to do, choose "Pentium-Pro".
|
||||||
|
@@ -135,10 +139,21 @@ config MPENTIUM4
|
||||||
|
-Mobile Pentium 4
|
||||||
|
-Mobile Pentium 4 M
|
||||||
|
-Extreme Edition (Gallatin)
|
||||||
|
+ -Prescott
|
||||||
|
+ -Prescott 2M
|
||||||
|
+ -Cedar Mill
|
||||||
|
+ -Presler
|
||||||
|
+ -Smithfiled
|
||||||
|
Xeons (Intel Xeon, Xeon MP, Xeon LV, Xeon MV) corename:
|
||||||
|
-Foster
|
||||||
|
-Prestonia
|
||||||
|
-Gallatin
|
||||||
|
+ -Nocona
|
||||||
|
+ -Irwindale
|
||||||
|
+ -Cranford
|
||||||
|
+ -Potomac
|
||||||
|
+ -Paxville
|
||||||
|
+ -Dempsey
|
||||||
|
|
||||||
-
|
|
||||||
config MK6
|
config MK6
|
||||||
- bool "K6/K6-II/K6-III"
|
bool "K6/K6-II/K6-III"
|
||||||
+ bool "AMD K6/K6-II/K6-III"
|
@@ -245,6 +260,435 @@ config MATOM
|
||||||
depends on X86_32
|
|
||||||
help
|
|
||||||
Select this for an AMD K6-family processor. Enables use of
|
|
||||||
@@ -165,7 +164,7 @@ config MK6
|
|
||||||
flags to GCC.
|
|
||||||
|
|
||||||
config MK7
|
endchoice
|
||||||
- bool "Athlon/Duron/K7"
|
|
||||||
+ bool "AMD Athlon/Duron/K7"
|
|
||||||
depends on X86_32
|
|
||||||
help
|
|
||||||
Select this for an AMD Athlon K7-family processor. Enables use of
|
|
||||||
@@ -173,12 +172,114 @@ config MK7
|
|
||||||
flags to GCC.
|
|
||||||
|
|
||||||
config MK8
|
+config CC_HAS_MARCH_NATIVE
|
||||||
- bool "Opteron/Athlon64/Hammer/K8"
|
+ # This flag might not be available in cross-compilers:
|
||||||
|
+ def_bool $(cc-option, -march=native)
|
||||||
|
+ # LLVM 18 has an easily triggered internal compiler error in core
|
||||||
|
+ # networking code with '-march=native' on certain systems:
|
||||||
|
+ # https://github.com/llvm/llvm-project/issues/72026
|
||||||
|
+ # LLVM 19 introduces an optimization that resolves some high stack
|
||||||
|
+ # usage warnings that only appear wth '-march=native'.
|
||||||
|
+ depends on CC_IS_GCC || CLANG_VERSION >= 190100
|
||||||
|
+
|
||||||
|
+choice
|
||||||
|
+ prompt "x86_64 Compiler Build Optimization"
|
||||||
|
+ default GENERIC_CPU
|
||||||
|
+
|
||||||
|
+config X86_NATIVE_CPU
|
||||||
|
+ bool "Build and optimize for local/native CPU"
|
||||||
|
+ depends on X86_64
|
||||||
|
+ depends on CC_HAS_MARCH_NATIVE
|
||||||
|
+ help
|
||||||
|
+ Optimize for the current CPU used to compile the kernel.
|
||||||
|
+ Use this option if you intend to build the kernel for your
|
||||||
|
+ local machine.
|
||||||
|
+
|
||||||
|
+ Note that such a kernel might not work optimally on a
|
||||||
|
+ different x86 machine.
|
||||||
|
+
|
||||||
|
+ If unsure, say N.
|
||||||
|
+
|
||||||
|
+config GENERIC_CPU
|
||||||
|
+ bool "Generic-x86-64"
|
||||||
|
+ depends on X86_64
|
||||||
|
+ help
|
||||||
|
+ Generic x86-64 CPU.
|
||||||
|
+ Runs equally well on all x86-64 CPUs.
|
||||||
|
+
|
||||||
|
+config MNATIVE_INTEL
|
||||||
|
+ bool "Intel-Native optimizations autodetected by the compiler"
|
||||||
|
+ help
|
||||||
|
+
|
||||||
|
+ Clang 3.8, GCC 4.2 and above support -march=native, which automatically detects
|
||||||
|
+ the optimum settings to use based on your processor. Do NOT use this
|
||||||
|
+ for AMD CPUs. Intel Only!
|
||||||
|
+
|
||||||
|
+ Enables -march=native
|
||||||
|
+
|
||||||
|
+config MNATIVE_AMD
|
||||||
|
+ bool "AMD-Native optimizations autodetected by the compiler"
|
||||||
|
+ help
|
||||||
|
+
|
||||||
|
+ Clang 3.8, GCC 4.2 and above support -march=native, which automatically detects
|
||||||
|
+ the optimum settings to use based on your processor. Do NOT use this
|
||||||
|
+ for Intel CPUs. AMD Only!
|
||||||
|
+
|
||||||
|
+ Enables -march=native
|
||||||
|
+
|
||||||
|
+config MK8
|
||||||
+ bool "AMD Opteron/Athlon64/Hammer/K8"
|
+ bool "AMD Opteron/Athlon64/Hammer/K8"
|
||||||
help
|
+ help
|
||||||
Select this for an AMD Opteron or Athlon64 Hammer-family processor.
|
+ Select this for an AMD Opteron or Athlon64 Hammer-family processor.
|
||||||
Enables use of some extended instructions, and passes appropriate
|
+ Enables use of some extended instructions, and passes appropriate
|
||||||
optimization flags to GCC.
|
+ optimization flags to GCC.
|
||||||
|
+
|
||||||
+config MK8SSE3
|
+config MK8SSE3
|
||||||
+ bool "AMD Opteron/Athlon64/Hammer/K8 with SSE3"
|
+ bool "AMD Opteron/Athlon64/Hammer/K8 with SSE3"
|
||||||
+ help
|
+ help
|
||||||
@@ -226,21 +294,21 @@ REFERENCES
|
|||||||
+ Enables -march=bdver4
|
+ Enables -march=bdver4
|
||||||
+
|
+
|
||||||
+config MZEN
|
+config MZEN
|
||||||
+ bool "AMD Zen"
|
+ bool "AMD Ryzen"
|
||||||
+ help
|
+ help
|
||||||
+ Select this for AMD Family 17h Zen processors.
|
+ Select this for AMD Family 17h Zen processors.
|
||||||
+
|
+
|
||||||
+ Enables -march=znver1
|
+ Enables -march=znver1
|
||||||
+
|
+
|
||||||
+config MZEN2
|
+config MZEN2
|
||||||
+ bool "AMD Zen 2"
|
+ bool "AMD Ryzen 2"
|
||||||
+ help
|
+ help
|
||||||
+ Select this for AMD Family 17h Zen 2 processors.
|
+ Select this for AMD Family 17h Zen 2 processors.
|
||||||
+
|
+
|
||||||
+ Enables -march=znver2
|
+ Enables -march=znver2
|
||||||
+
|
+
|
||||||
+config MZEN3
|
+config MZEN3
|
||||||
+ bool "AMD Zen 3"
|
+ bool "AMD Ryzen 3"
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION >= 100300) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
+ depends on (CC_IS_GCC && GCC_VERSION >= 100300) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
||||||
+ help
|
+ help
|
||||||
+ Select this for AMD Family 19h Zen 3 processors.
|
+ Select this for AMD Family 19h Zen 3 processors.
|
||||||
@@ -248,7 +316,7 @@ REFERENCES
|
|||||||
+ Enables -march=znver3
|
+ Enables -march=znver3
|
||||||
+
|
+
|
||||||
+config MZEN4
|
+config MZEN4
|
||||||
+ bool "AMD Zen 4"
|
+ bool "AMD Ryzen 4"
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 160000)
|
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 160000)
|
||||||
+ help
|
+ help
|
||||||
+ Select this for AMD Family 19h Zen 4 processors.
|
+ Select this for AMD Family 19h Zen 4 processors.
|
||||||
@@ -256,57 +324,48 @@ REFERENCES
|
|||||||
+ Enables -march=znver4
|
+ Enables -march=znver4
|
||||||
+
|
+
|
||||||
+config MZEN5
|
+config MZEN5
|
||||||
+ bool "AMD Zen 5"
|
+ bool "AMD Ryzen 5"
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 140000) || (CC_IS_CLANG && CLANG_VERSION >= 190100)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 140000) || (CC_IS_CLANG && CLANG_VERSION >= 190100)
|
||||||
+ help
|
+ help
|
||||||
+ Select this for AMD Family 19h Zen 5 processors.
|
+ Select this for AMD Family 19h Zen 5 processors.
|
||||||
+
|
+
|
||||||
+ Enables -march=znver5
|
+ Enables -march=znver5
|
||||||
+
|
+
|
||||||
config MCRUSOE
|
+config MPSC
|
||||||
bool "Crusoe"
|
+ bool "Intel P4 / older Netburst based Xeon"
|
||||||
depends on X86_32
|
+ depends on X86_64
|
||||||
@@ -269,8 +370,17 @@ config MPSC
|
+ help
|
||||||
using the cpu family field
|
+ Optimize for Intel Pentium 4, Pentium D and older Nocona/Dempsey
|
||||||
in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
|
+ Xeon CPUs with Intel 64bit which is compatible with x86-64.
|
||||||
|
+ Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the
|
||||||
+config MATOM
|
+ Netburst core and shouldn't use this option. You can distinguish them
|
||||||
+ bool "Intel Atom"
|
+ using the cpu family field
|
||||||
|
+ in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one.
|
||||||
|
+
|
||||||
|
+config MCORE2
|
||||||
|
+ bool "Intel Core 2"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for the Intel Atom platform. Intel Atom CPUs have an
|
+ Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
|
||||||
+ in-order pipelining architecture and thus can benefit from
|
+ 53xx) CPUs. You can distinguish newer from older Xeons by the CPU
|
||||||
+ accordingly optimized code. Use a recent GCC with specific Atom
|
+ family in /proc/cpuinfo. Newer ones have 6 and older ones 15
|
||||||
+ support in order to fully benefit from selecting this option.
|
+ (not a typo)
|
||||||
+
|
+
|
||||||
config MCORE2
|
|
||||||
- bool "Core 2/newer Xeon"
|
|
||||||
+ bool "Intel Core 2"
|
|
||||||
help
|
|
||||||
|
|
||||||
Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
|
|
||||||
@@ -278,14 +388,199 @@ config MCORE2
|
|
||||||
family in /proc/cpuinfo. Newer ones have 6 and older ones 15
|
|
||||||
(not a typo)
|
|
||||||
|
|
||||||
-config MATOM
|
|
||||||
- bool "Intel Atom"
|
|
||||||
+ Enables -march=core2
|
+ Enables -march=core2
|
||||||
+
|
+
|
||||||
+config MNEHALEM
|
+config MNEHALEM
|
||||||
+ bool "Intel Nehalem"
|
+ bool "Intel Nehalem"
|
||||||
help
|
+ depends on X86_64
|
||||||
|
+ help
|
||||||
- Select this for the Intel Atom platform. Intel Atom CPUs have an
|
+
|
||||||
- in-order pipelining architecture and thus can benefit from
|
|
||||||
- accordingly optimized code. Use a recent GCC with specific Atom
|
|
||||||
- support in order to fully benefit from selecting this option.
|
|
||||||
+ Select this for 1st Gen Core processors in the Nehalem family.
|
+ Select this for 1st Gen Core processors in the Nehalem family.
|
||||||
+
|
+
|
||||||
+ Enables -march=nehalem
|
+ Enables -march=nehalem
|
||||||
+
|
+
|
||||||
+config MWESTMERE
|
+config MWESTMERE
|
||||||
+ bool "Intel Westmere"
|
+ bool "Intel Westmere"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for the Intel Westmere formerly Nehalem-C family.
|
+ Select this for the Intel Westmere formerly Nehalem-C family.
|
||||||
@@ -315,6 +374,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MSILVERMONT
|
+config MSILVERMONT
|
||||||
+ bool "Intel Silvermont"
|
+ bool "Intel Silvermont"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for the Intel Silvermont platform.
|
+ Select this for the Intel Silvermont platform.
|
||||||
@@ -323,6 +383,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MGOLDMONT
|
+config MGOLDMONT
|
||||||
+ bool "Intel Goldmont"
|
+ bool "Intel Goldmont"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for the Intel Goldmont platform including Apollo Lake and Denverton.
|
+ Select this for the Intel Goldmont platform including Apollo Lake and Denverton.
|
||||||
@@ -331,6 +392,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MGOLDMONTPLUS
|
+config MGOLDMONTPLUS
|
||||||
+ bool "Intel Goldmont Plus"
|
+ bool "Intel Goldmont Plus"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for the Intel Goldmont Plus platform including Gemini Lake.
|
+ Select this for the Intel Goldmont Plus platform including Gemini Lake.
|
||||||
@@ -339,6 +401,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MSANDYBRIDGE
|
+config MSANDYBRIDGE
|
||||||
+ bool "Intel Sandy Bridge"
|
+ bool "Intel Sandy Bridge"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 2nd Gen Core processors in the Sandy Bridge family.
|
+ Select this for 2nd Gen Core processors in the Sandy Bridge family.
|
||||||
@@ -347,6 +410,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MIVYBRIDGE
|
+config MIVYBRIDGE
|
||||||
+ bool "Intel Ivy Bridge"
|
+ bool "Intel Ivy Bridge"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 3rd Gen Core processors in the Ivy Bridge family.
|
+ Select this for 3rd Gen Core processors in the Ivy Bridge family.
|
||||||
@@ -355,6 +419,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MHASWELL
|
+config MHASWELL
|
||||||
+ bool "Intel Haswell"
|
+ bool "Intel Haswell"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 4th Gen Core processors in the Haswell family.
|
+ Select this for 4th Gen Core processors in the Haswell family.
|
||||||
@@ -363,6 +428,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MBROADWELL
|
+config MBROADWELL
|
||||||
+ bool "Intel Broadwell"
|
+ bool "Intel Broadwell"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 5th Gen Core processors in the Broadwell family.
|
+ Select this for 5th Gen Core processors in the Broadwell family.
|
||||||
@@ -371,6 +437,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MSKYLAKE
|
+config MSKYLAKE
|
||||||
+ bool "Intel Skylake"
|
+ bool "Intel Skylake"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 6th Gen Core processors in the Skylake family.
|
+ Select this for 6th Gen Core processors in the Skylake family.
|
||||||
@@ -379,6 +446,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MSKYLAKEX
|
+config MSKYLAKEX
|
||||||
+ bool "Intel Skylake X"
|
+ bool "Intel Skylake X"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 6th Gen Core processors in the Skylake X family.
|
+ Select this for 6th Gen Core processors in the Skylake X family.
|
||||||
@@ -387,6 +455,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MCANNONLAKE
|
+config MCANNONLAKE
|
||||||
+ bool "Intel Cannon Lake"
|
+ bool "Intel Cannon Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 8th Gen Core processors
|
+ Select this for 8th Gen Core processors
|
||||||
@@ -395,6 +464,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MICELAKE_CLIENT
|
+config MICELAKE_CLIENT
|
||||||
+ bool "Intel Ice Lake"
|
+ bool "Intel Ice Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 10th Gen Core client processors in the Ice Lake family.
|
+ Select this for 10th Gen Core client processors in the Ice Lake family.
|
||||||
@@ -403,22 +473,16 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MICELAKE_SERVER
|
+config MICELAKE_SERVER
|
||||||
+ bool "Intel Ice Lake Server"
|
+ bool "Intel Ice Lake Server"
|
||||||
|
+ depends on X86_64
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for 10th Gen Core server processors in the Ice Lake family.
|
+ Select this for 10th Gen Core server processors in the Ice Lake family.
|
||||||
+
|
+
|
||||||
+ Enables -march=icelake-server
|
+ Enables -march=icelake-server
|
||||||
+
|
+
|
||||||
+config MCASCADELAKE
|
|
||||||
+ bool "Intel Cascade Lake"
|
|
||||||
+ help
|
|
||||||
+
|
|
||||||
+ Select this for Xeon processors in the Cascade Lake family.
|
|
||||||
+
|
|
||||||
+ Enables -march=cascadelake
|
|
||||||
+
|
|
||||||
+config MCOOPERLAKE
|
+config MCOOPERLAKE
|
||||||
+ bool "Intel Cooper Lake"
|
+ bool "Intel Cooper Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 100100) || (CC_IS_CLANG && CLANG_VERSION >= 100000)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 100100) || (CC_IS_CLANG && CLANG_VERSION >= 100000)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -426,8 +490,19 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+ Enables -march=cooperlake
|
+ Enables -march=cooperlake
|
||||||
+
|
+
|
||||||
|
+config MCASCADELAKE
|
||||||
|
+ bool "Intel Cascade Lake"
|
||||||
|
+ depends on X86_64
|
||||||
|
+ depends on (CC_IS_GCC && GCC_VERSION > 100100) || (CC_IS_CLANG && CLANG_VERSION >= 100000)
|
||||||
|
+ help
|
||||||
|
+
|
||||||
|
+ Select this for Xeon processors in the Cascade Lake family.
|
||||||
|
+
|
||||||
|
+ Enables -march=cascadelake
|
||||||
|
+
|
||||||
+config MTIGERLAKE
|
+config MTIGERLAKE
|
||||||
+ bool "Intel Tiger Lake"
|
+ bool "Intel Tiger Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 100100) || (CC_IS_CLANG && CLANG_VERSION >= 100000)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 100100) || (CC_IS_CLANG && CLANG_VERSION >= 100000)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -437,6 +512,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MSAPPHIRERAPIDS
|
+config MSAPPHIRERAPIDS
|
||||||
+ bool "Intel Sapphire Rapids"
|
+ bool "Intel Sapphire Rapids"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -446,6 +522,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MROCKETLAKE
|
+config MROCKETLAKE
|
||||||
+ bool "Intel Rocket Lake"
|
+ bool "Intel Rocket Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -455,6 +532,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MALDERLAKE
|
+config MALDERLAKE
|
||||||
+ bool "Intel Alder Lake"
|
+ bool "Intel Alder Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 110000) || (CC_IS_CLANG && CLANG_VERSION >= 120000)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -464,6 +542,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MRAPTORLAKE
|
+config MRAPTORLAKE
|
||||||
+ bool "Intel Raptor Lake"
|
+ bool "Intel Raptor Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -473,6 +552,7 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MMETEORLAKE
|
+config MMETEORLAKE
|
||||||
+ bool "Intel Meteor Lake"
|
+ bool "Intel Meteor Lake"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
+ depends on (CC_IS_GCC && GCC_VERSION >= 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
@@ -482,46 +562,16 @@ REFERENCES
|
|||||||
+
|
+
|
||||||
+config MEMERALDRAPIDS
|
+config MEMERALDRAPIDS
|
||||||
+ bool "Intel Emerald Rapids"
|
+ bool "Intel Emerald Rapids"
|
||||||
|
+ depends on X86_64
|
||||||
+ depends on (CC_IS_GCC && GCC_VERSION > 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
+ depends on (CC_IS_GCC && GCC_VERSION > 130000) || (CC_IS_CLANG && CLANG_VERSION >= 150500)
|
||||||
+ help
|
+ help
|
||||||
+
|
+
|
||||||
+ Select this for fifth-generation 10 nm process processors in the Emerald Rapids family.
|
+ Select this for fifth-generation 10 nm process processors in the Emerald Rapids family.
|
||||||
+
|
+
|
||||||
+ Enables -march=emeraldrapids
|
+ Enables -march=emeraldrapids
|
||||||
|
|
||||||
config GENERIC_CPU
|
|
||||||
bool "Generic-x86-64"
|
|
||||||
@@ -294,6 +589,26 @@ config GENERIC_CPU
|
|
||||||
Generic x86-64 CPU.
|
|
||||||
Run equally well on all x86-64 CPUs.
|
|
||||||
|
|
||||||
+config MNATIVE_INTEL
|
|
||||||
+ bool "Intel-Native optimizations autodetected by the compiler"
|
|
||||||
+ help
|
|
||||||
+
|
+
|
||||||
+ Clang 3.8, GCC 4.2 and above support -march=native, which automatically detects
|
+endchoice
|
||||||
+ the optimum settings to use based on your processor. Do NOT use this
|
|
||||||
+ for AMD CPUs. Intel Only!
|
|
||||||
+
|
+
|
||||||
+ Enables -march=native
|
|
||||||
+
|
|
||||||
+config MNATIVE_AMD
|
|
||||||
+ bool "AMD-Native optimizations autodetected by the compiler"
|
|
||||||
+ help
|
|
||||||
+
|
|
||||||
+ Clang 3.8, GCC 4.2 and above support -march=native, which automatically detects
|
|
||||||
+ the optimum settings to use based on your processor. Do NOT use this
|
|
||||||
+ for Intel CPUs. AMD Only!
|
|
||||||
+
|
|
||||||
+ Enables -march=native
|
|
||||||
+
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config X86_GENERIC
|
|
||||||
@@ -308,6 +623,30 @@ config X86_GENERIC
|
|
||||||
This is really intended for distributors who need more
|
|
||||||
generic optimizations.
|
|
||||||
|
|
||||||
+config X86_64_VERSION
|
+config X86_64_VERSION
|
||||||
+ int "x86-64 compiler ISA level"
|
+ int "x86-64 compiler ISA level"
|
||||||
+ range 1 3
|
+ range 1 3
|
||||||
@@ -531,7 +581,7 @@ REFERENCES
|
|||||||
+ Specify a specific x86-64 compiler ISA level.
|
+ Specify a specific x86-64 compiler ISA level.
|
||||||
+
|
+
|
||||||
+ There are three x86-64 ISA levels that work on top of
|
+ There are three x86-64 ISA levels that work on top of
|
||||||
+ the x86-64 baseline, namely: x86-64-v2, x86-64-v3, and x86-64-v4.
|
+ the x86-64 baseline, namely: x86-64-v2 and x86-64-v3.
|
||||||
+
|
+
|
||||||
+ x86-64-v2 brings support for vector instructions up to Streaming SIMD
|
+ x86-64-v2 brings support for vector instructions up to Streaming SIMD
|
||||||
+ Extensions 4.2 (SSE4.2) and Supplemental Streaming SIMD Extensions 3
|
+ Extensions 4.2 (SSE4.2) and Supplemental Streaming SIMD Extensions 3
|
||||||
@@ -546,221 +596,291 @@ REFERENCES
|
|||||||
+ /lib/ld-linux-x86-64.so.2 --help | grep supported
|
+ /lib/ld-linux-x86-64.so.2 --help | grep supported
|
||||||
+ /lib64/ld-linux-x86-64.so.2 --help | grep supported
|
+ /lib64/ld-linux-x86-64.so.2 --help | grep supported
|
||||||
+
|
+
|
||||||
#
|
config X86_GENERIC
|
||||||
# Define implied options from the CPU selection here
|
bool "Generic x86 support"
|
||||||
config X86_INTERNODE_CACHE_SHIFT
|
depends on X86_32
|
||||||
@@ -318,7 +657,7 @@ config X86_INTERNODE_CACHE_SHIFT
|
@@ -266,8 +710,8 @@ config X86_INTERNODE_CACHE_SHIFT
|
||||||
|
|
||||||
config X86_L1_CACHE_SHIFT
|
config X86_L1_CACHE_SHIFT
|
||||||
int
|
int
|
||||||
default "7" if MPENTIUM4 || MPSC
|
- default "7" if MPENTIUM4
|
||||||
- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
- default "6" if MK7 || MPENTIUMM || MATOM || MVIAC7 || X86_GENERIC || X86_64
|
||||||
|
+ default "7" if MPENTIUM4 || MPSC
|
||||||
+ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
+ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
||||||
default "4" if MELAN || M486SX || M486 || MGEODEGX1
|
default "4" if MELAN || M486SX || M486 || MGEODEGX1
|
||||||
default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
|
default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
|
||||||
|
|
||||||
@@ -336,11 +675,11 @@ config X86_ALIGNMENT_16
|
@@ -285,19 +729,19 @@ config X86_ALIGNMENT_16
|
||||||
|
|
||||||
config X86_INTEL_USERCOPY
|
config X86_INTEL_USERCOPY
|
||||||
def_bool y
|
def_bool y
|
||||||
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
|
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK7 || MEFFICEON
|
||||||
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL
|
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL
|
||||||
|
|
||||||
config X86_USE_PPRO_CHECKSUM
|
config X86_USE_PPRO_CHECKSUM
|
||||||
def_bool y
|
def_bool y
|
||||||
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
|
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MATOM
|
||||||
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
||||||
|
|
||||||
#
|
config X86_TSC
|
||||||
# P6_NOPs are a relatively minor optimization that require a family >=
|
def_bool y
|
||||||
|
- depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MATOM) || X86_64
|
||||||
|
+ depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64
|
||||||
|
|
||||||
|
config X86_HAVE_PAE
|
||||||
|
def_bool y
|
||||||
|
- depends on MCRUSOE || MEFFICEON || MCYRIXIII || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC7 || MATOM || X86_64
|
||||||
|
+ depends on MCRUSOE || MEFFICEON || MCYRIXIII || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC7 || MCORE2 || MATOM || X86_64
|
||||||
|
|
||||||
|
config X86_CX8
|
||||||
|
def_bool y
|
||||||
|
@@ -307,13 +751,13 @@ config X86_CX8
|
||||||
|
# generates cmov.
|
||||||
|
config X86_CMOV
|
||||||
|
def_bool y
|
||||||
|
- depends on (MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || MATOM || MGEODE_LX || X86_64)
|
||||||
|
+ depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
|
||||||
|
|
||||||
|
config X86_MINIMUM_CPU_FAMILY
|
||||||
|
int
|
||||||
|
default "64" if X86_64
|
||||||
|
- default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MK7)
|
||||||
|
- default "5" if X86_32 && X86_CX8
|
||||||
|
+ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
|
||||||
|
+ default "5" if X86_32 && X86_CMPXCHG64
|
||||||
|
default "4"
|
||||||
|
|
||||||
|
config X86_DEBUGCTLMSR
|
||||||
--- a/arch/x86/Makefile
|
--- a/arch/x86/Makefile
|
||||||
+++ b/arch/x86/Makefile
|
+++ b/arch/x86/Makefile
|
||||||
@@ -182,15 +182,98 @@ else
|
@@ -173,8 +173,230 @@ else
|
||||||
cflags-$(CONFIG_MK8) += -march=k8
|
# Use -mskip-rax-setup if supported.
|
||||||
cflags-$(CONFIG_MPSC) += -march=nocona
|
KBUILD_CFLAGS += $(call cc-option,-mskip-rax-setup)
|
||||||
cflags-$(CONFIG_MCORE2) += -march=core2
|
|
||||||
- cflags-$(CONFIG_MATOM) += -march=atom
|
|
||||||
- cflags-$(CONFIG_GENERIC_CPU) += -mtune=generic
|
|
||||||
+ cflags-$(CONFIG_MATOM) += -march=bonnell
|
|
||||||
+ ifeq ($(CONFIG_X86_64_VERSION),1)
|
|
||||||
+ cflags-$(CONFIG_GENERIC_CPU) += -mtune=generic
|
|
||||||
+ rustflags-$(CONFIG_GENERIC_CPU) += -Ztune-cpu=generic
|
|
||||||
+ else
|
|
||||||
+ cflags-$(CONFIG_GENERIC_CPU) += -march=x86-64-v$(CONFIG_X86_64_VERSION)
|
|
||||||
+ rustflags-$(CONFIG_GENERIC_CPU) += -Ctarget-cpu=x86-64-v$(CONFIG_X86_64_VERSION)
|
|
||||||
+ endif
|
|
||||||
+ cflags-$(CONFIG_MK8SSE3) += -march=k8-sse3
|
|
||||||
+ cflags-$(CONFIG_MK10) += -march=amdfam10
|
|
||||||
+ cflags-$(CONFIG_MBARCELONA) += -march=barcelona
|
|
||||||
+ cflags-$(CONFIG_MBOBCAT) += -march=btver1
|
|
||||||
+ cflags-$(CONFIG_MJAGUAR) += -march=btver2
|
|
||||||
+ cflags-$(CONFIG_MBULLDOZER) += -march=bdver1
|
|
||||||
+ cflags-$(CONFIG_MPILEDRIVER) += -march=bdver2 -mno-tbm
|
|
||||||
+ cflags-$(CONFIG_MSTEAMROLLER) += -march=bdver3 -mno-tbm
|
|
||||||
+ cflags-$(CONFIG_MEXCAVATOR) += -march=bdver4 -mno-tbm
|
|
||||||
+ cflags-$(CONFIG_MZEN) += -march=znver1
|
|
||||||
+ cflags-$(CONFIG_MZEN2) += -march=znver2
|
|
||||||
+ cflags-$(CONFIG_MZEN3) += -march=znver3
|
|
||||||
+ cflags-$(CONFIG_MZEN4) += -march=znver4
|
|
||||||
+ cflags-$(CONFIG_MZEN5) += -march=znver5
|
|
||||||
+ cflags-$(CONFIG_MNATIVE_INTEL) += -march=native
|
|
||||||
+ cflags-$(CONFIG_MNATIVE_AMD) += -march=native -mno-tbm
|
|
||||||
+ cflags-$(CONFIG_MNEHALEM) += -march=nehalem
|
|
||||||
+ cflags-$(CONFIG_MWESTMERE) += -march=westmere
|
|
||||||
+ cflags-$(CONFIG_MSILVERMONT) += -march=silvermont
|
|
||||||
+ cflags-$(CONFIG_MGOLDMONT) += -march=goldmont
|
|
||||||
+ cflags-$(CONFIG_MGOLDMONTPLUS) += -march=goldmont-plus
|
|
||||||
+ cflags-$(CONFIG_MSANDYBRIDGE) += -march=sandybridge
|
|
||||||
+ cflags-$(CONFIG_MIVYBRIDGE) += -march=ivybridge
|
|
||||||
+ cflags-$(CONFIG_MHASWELL) += -march=haswell
|
|
||||||
+ cflags-$(CONFIG_MBROADWELL) += -march=broadwell
|
|
||||||
+ cflags-$(CONFIG_MSKYLAKE) += -march=skylake
|
|
||||||
+ cflags-$(CONFIG_MSKYLAKEX) += -march=skylake-avx512
|
|
||||||
+ cflags-$(CONFIG_MCANNONLAKE) += -march=cannonlake
|
|
||||||
+ cflags-$(CONFIG_MICELAKE_CLIENT) += -march=icelake-client
|
|
||||||
+ cflags-$(CONFIG_MICELAKE_SERVER) += -march=icelake-server
|
|
||||||
+ cflags-$(CONFIG_MCASCADELAKE) += -march=cascadelake
|
|
||||||
+ cflags-$(CONFIG_MCOOPERLAKE) += -march=cooperlake
|
|
||||||
+ cflags-$(CONFIG_MTIGERLAKE) += -march=tigerlake
|
|
||||||
+ cflags-$(CONFIG_MSAPPHIRERAPIDS) += -march=sapphirerapids
|
|
||||||
+ cflags-$(CONFIG_MROCKETLAKE) += -march=rocketlake
|
|
||||||
+ cflags-$(CONFIG_MALDERLAKE) += -march=alderlake
|
|
||||||
+ cflags-$(CONFIG_MRAPTORLAKE) += -march=raptorlake
|
|
||||||
+ cflags-$(CONFIG_MMETEORLAKE) += -march=meteorlake
|
|
||||||
+ cflags-$(CONFIG_MEMERALDRAPIDS) += -march=emeraldrapids
|
|
||||||
KBUILD_CFLAGS += $(cflags-y)
|
|
||||||
|
|
||||||
rustflags-$(CONFIG_MK8) += -Ctarget-cpu=k8
|
+ifdef CONFIG_X86_NATIVE_CPU
|
||||||
rustflags-$(CONFIG_MPSC) += -Ctarget-cpu=nocona
|
+ KBUILD_CFLAGS += -march=native
|
||||||
rustflags-$(CONFIG_MCORE2) += -Ctarget-cpu=core2
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=native
|
||||||
rustflags-$(CONFIG_MATOM) += -Ctarget-cpu=atom
|
+endif
|
||||||
- rustflags-$(CONFIG_GENERIC_CPU) += -Ztune-cpu=generic
|
+
|
||||||
+ rustflags-$(CONFIG_MK8SSE3) += -Ctarget-cpu=k8-sse3
|
+ifdef CONFIG_MNATIVE_INTEL
|
||||||
+ rustflags-$(CONFIG_MK10) += -Ctarget-cpu=amdfam10
|
+ KBUILD_CFLAGS += -march=native
|
||||||
+ rustflags-$(CONFIG_MBARCELONA) += -Ctarget-cpu=barcelona
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=native
|
||||||
+ rustflags-$(CONFIG_MBOBCAT) += -Ctarget-cpu=btver1
|
+endif
|
||||||
+ rustflags-$(CONFIG_MJAGUAR) += -Ctarget-cpu=btver2
|
+
|
||||||
+ rustflags-$(CONFIG_MBULLDOZER) += -Ctarget-cpu=bdver1
|
+ifdef CONFIG_MNATIVE_AMD
|
||||||
+ rustflags-$(CONFIG_MPILEDRIVER) += -Ctarget-cpu=bdver2
|
+ KBUILD_CFLAGS += -march=native
|
||||||
+ rustflags-$(CONFIG_MSTEAMROLLER) += -Ctarget-cpu=bdver3
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=native
|
||||||
+ rustflags-$(CONFIG_MEXCAVATOR) += -Ctarget-cpu=bdver4
|
+endif
|
||||||
+ rustflags-$(CONFIG_MZEN) += -Ctarget-cpu=znver1
|
+
|
||||||
+ rustflags-$(CONFIG_MZEN2) += -Ctarget-cpu=znver2
|
+ifdef CONFIG_MK8
|
||||||
+ rustflags-$(CONFIG_MZEN3) += -Ctarget-cpu=znver3
|
+ KBUILD_CFLAGS += -march=k8
|
||||||
+ rustflags-$(CONFIG_MZEN4) += -Ctarget-cpu=znver4
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=k8
|
||||||
+ rustflags-$(CONFIG_MZEN5) += -Ctarget-cpu=znver5
|
+endif
|
||||||
+ rustflags-$(CONFIG_MNATIVE_INTEL) += -Ctarget-cpu=native
|
+
|
||||||
+ rustflags-$(CONFIG_MNATIVE_AMD) += -Ctarget-cpu=native
|
+ifdef CONFIG_MK8SSE3
|
||||||
+ rustflags-$(CONFIG_MNEHALEM) += -Ctarget-cpu=nehalem
|
+ KBUILD_CFLAGS += -march=k8-sse3
|
||||||
+ rustflags-$(CONFIG_MWESTMERE) += -Ctarget-cpu=westmere
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=k8-sse3
|
||||||
+ rustflags-$(CONFIG_MSILVERMONT) += -Ctarget-cpu=silvermont
|
+endif
|
||||||
+ rustflags-$(CONFIG_MGOLDMONT) += -Ctarget-cpu=goldmont
|
+
|
||||||
+ rustflags-$(CONFIG_MGOLDMONTPLUS) += -Ctarget-cpu=goldmont-plus
|
+ifdef CONFIG_MK10
|
||||||
+ rustflags-$(CONFIG_MSANDYBRIDGE) += -Ctarget-cpu=sandybridge
|
+ KBUILD_CFLAGS += -march=amdfam10
|
||||||
+ rustflags-$(CONFIG_MIVYBRIDGE) += -Ctarget-cpu=ivybridge
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=amdfam10
|
||||||
+ rustflags-$(CONFIG_MHASWELL) += -Ctarget-cpu=haswell
|
+endif
|
||||||
+ rustflags-$(CONFIG_MBROADWELL) += -Ctarget-cpu=broadwell
|
+
|
||||||
+ rustflags-$(CONFIG_MSKYLAKE) += -Ctarget-cpu=skylake
|
+ifdef CONFIG_MBARCELONA
|
||||||
+ rustflags-$(CONFIG_MSKYLAKEX) += -Ctarget-cpu=skylake-avx512
|
+ KBUILD_CFLAGS += -march=barcelona
|
||||||
+ rustflags-$(CONFIG_MCANNONLAKE) += -Ctarget-cpu=cannonlake
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=barcelona
|
||||||
+ rustflags-$(CONFIG_MICELAKE_CLIENT) += -Ctarget-cpu=icelake-client
|
+endif
|
||||||
+ rustflags-$(CONFIG_MICELAKE_SERVER) += -Ctarget-cpu=icelake-server
|
+
|
||||||
+ rustflags-$(CONFIG_MCASCADELAKE) += -Ctarget-cpu=cascadelake
|
+ifdef CONFIG_MBOBCAT
|
||||||
+ rustflags-$(CONFIG_MCOOPERLAKE) += -Ctarget-cpu=cooperlake
|
+ KBUILD_CFLAGS += -march=btver1
|
||||||
+ rustflags-$(CONFIG_MTIGERLAKE) += -Ctarget-cpu=tigerlake
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=btver1
|
||||||
+ rustflags-$(CONFIG_MSAPPHIRERAPIDS) += -Ctarget-cpu=sapphirerapids
|
+endif
|
||||||
+ rustflags-$(CONFIG_MROCKETLAKE) += -Ctarget-cpu=rocketlake
|
+
|
||||||
+ rustflags-$(CONFIG_MALDERLAKE) += -Ctarget-cpu=alderlake
|
+ifdef CONFIG_MJAGUAR
|
||||||
+ rustflags-$(CONFIG_MRAPTORLAKE) += -Ctarget-cpu=raptorlake
|
+ KBUILD_CFLAGS += -march=btver2
|
||||||
+ rustflags-$(CONFIG_MMETEORLAKE) += -Ctarget-cpu=meteorlake
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=btver2
|
||||||
+ rustflags-$(CONFIG_MEMERALDRAPIDS) += -Ctarget-cpu=emeraldrapids
|
+endif
|
||||||
KBUILD_RUSTFLAGS += $(rustflags-y)
|
+
|
||||||
|
+ifdef CONFIG_MBULLDOZER
|
||||||
|
+ KBUILD_CFLAGS += -march=bdver1
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=bdver1
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MPILEDRIVER
|
||||||
|
+ KBUILD_CFLAGS += -march=bdver2 -mno-tbm
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=bdver2 -mno-tbm
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSTEAMROLLER
|
||||||
|
+ KBUILD_CFLAGS += -march=bdver3 -mno-tbm
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=bdver3 -mno-tbm
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MEXCAVATOR
|
||||||
|
+ KBUILD_CFLAGS += -march=bdver4 -mno-tbm
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=bdver4 -mno-tbm
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MZEN
|
||||||
|
+ KBUILD_CFLAGS += -march=znver1
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=znver1
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MZEN2
|
||||||
|
+ KBUILD_CFLAGS += -march=znver2
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=znver2
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MZEN3
|
||||||
|
+ KBUILD_CFLAGS += -march=znver3
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=znver3
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MZEN4
|
||||||
|
+ KBUILD_CFLAGS += -march=znver4
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=znver4
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MZEN5
|
||||||
|
+ KBUILD_CFLAGS += -march=znver5
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=znver5
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MPSC
|
||||||
|
+ KBUILD_CFLAGS += -march=nocona
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=nocona
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MCORE2
|
||||||
|
+ KBUILD_CFLAGS += -march=core2
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=core2
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MNEHALEM
|
||||||
|
+ KBUILD_CFLAGS += -march=nehalem
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=nehalem
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MWESTMERE
|
||||||
|
+ KBUILD_CFLAGS += -march=westmere
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=westmere
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSILVERMONT
|
||||||
|
+ KBUILD_CFLAGS += -march=silvermont
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=silvermont
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MGOLDMONT
|
||||||
|
+ KBUILD_CFLAGS += -march=goldmont
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=goldmont
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MGOLDMONTPLUS
|
||||||
|
+ KBUILD_CFLAGS += -march=goldmont-plus
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=goldmont-plus
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSANDYBRIDGE
|
||||||
|
+ KBUILD_CFLAGS += -march=sandybridge
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=sandybridge
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MIVYBRIDGE
|
||||||
|
+ KBUILD_CFLAGS += -march=ivybridge
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=ivybridge
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MHASWELL
|
||||||
|
+ KBUILD_CFLAGS += -march=haswell
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=haswell
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MBROADWELL
|
||||||
|
+ KBUILD_CFLAGS += -march=broadwell
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=broadwell
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSKYLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=skylake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=skylake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSKYLAKEX
|
||||||
|
+ KBUILD_CFLAGS += -march=skylake-avx512
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=skylake-avx512
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MCANNONLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=cannonlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=cannonlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MICELAKE_CLIENT
|
||||||
|
+ KBUILD_CFLAGS += -march=icelake-client
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=icelake-client
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MICELAKE_SERVER
|
||||||
|
+ KBUILD_CFLAGS += -march=icelake-server
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=icelake-server
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MCOOPERLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=cooperlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=cooperlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MCASCADELAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=cascadelake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=cascadelake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MTIGERLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=tigerlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=tigerlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MSAPPHIRERAPIDS
|
||||||
|
+ KBUILD_CFLAGS += -march=sapphirerapids
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=sapphirerapids
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MROCKETLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=rocketlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=rocketlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MALDERLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=alderlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=alderlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MRAPTORLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=raptorlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=raptorlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MMETEORLAKE
|
||||||
|
+ KBUILD_CFLAGS += -march=meteorlake
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=meteorlake
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_MEMERALDRAPIDS
|
||||||
|
+ KBUILD_CFLAGS += -march=emeraldrapids
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=emeraldrapids
|
||||||
|
+endif
|
||||||
|
+
|
||||||
|
+ifdef CONFIG_GENERIC_CPU
|
||||||
|
+ifeq ($(CONFIG_X86_64_VERSION),1)
|
||||||
|
KBUILD_CFLAGS += -march=x86-64 -mtune=generic
|
||||||
|
KBUILD_RUSTFLAGS += -Ctarget-cpu=x86-64 -Ztune-cpu=generic
|
||||||
|
+else
|
||||||
|
+ KBUILD_CFLAGS +=-march=x86-64-v$(CONFIG_X86_64_VERSION)
|
||||||
|
+ KBUILD_RUSTFLAGS += -Ctarget-cpu=x86-64-v$(CONFIG_X86_64_VERSION)
|
||||||
|
+endif # CONFIG_X86_64_VERSION
|
||||||
|
+endif # CONFIG_GENERIC_CPU
|
||||||
|
|
||||||
KBUILD_CFLAGS += -mno-red-zone
|
KBUILD_CFLAGS += -mno-red-zone
|
||||||
--- a/arch/x86/include/asm/vermagic.h
|
KBUILD_CFLAGS += -mcmodel=kernel
|
||||||
+++ b/arch/x86/include/asm/vermagic.h
|
|
||||||
@@ -17,6 +17,56 @@
|
|
||||||
#define MODULE_PROC_FAMILY "586MMX "
|
|
||||||
#elif defined CONFIG_MCORE2
|
|
||||||
#define MODULE_PROC_FAMILY "CORE2 "
|
|
||||||
+#elif defined CONFIG_MNATIVE_INTEL
|
|
||||||
+#define MODULE_PROC_FAMILY "NATIVE_INTEL "
|
|
||||||
+#elif defined CONFIG_MNATIVE_AMD
|
|
||||||
+#define MODULE_PROC_FAMILY "NATIVE_AMD "
|
|
||||||
+#elif defined CONFIG_MNEHALEM
|
|
||||||
+#define MODULE_PROC_FAMILY "NEHALEM "
|
|
||||||
+#elif defined CONFIG_MWESTMERE
|
|
||||||
+#define MODULE_PROC_FAMILY "WESTMERE "
|
|
||||||
+#elif defined CONFIG_MSILVERMONT
|
|
||||||
+#define MODULE_PROC_FAMILY "SILVERMONT "
|
|
||||||
+#elif defined CONFIG_MGOLDMONT
|
|
||||||
+#define MODULE_PROC_FAMILY "GOLDMONT "
|
|
||||||
+#elif defined CONFIG_MGOLDMONTPLUS
|
|
||||||
+#define MODULE_PROC_FAMILY "GOLDMONTPLUS "
|
|
||||||
+#elif defined CONFIG_MSANDYBRIDGE
|
|
||||||
+#define MODULE_PROC_FAMILY "SANDYBRIDGE "
|
|
||||||
+#elif defined CONFIG_MIVYBRIDGE
|
|
||||||
+#define MODULE_PROC_FAMILY "IVYBRIDGE "
|
|
||||||
+#elif defined CONFIG_MHASWELL
|
|
||||||
+#define MODULE_PROC_FAMILY "HASWELL "
|
|
||||||
+#elif defined CONFIG_MBROADWELL
|
|
||||||
+#define MODULE_PROC_FAMILY "BROADWELL "
|
|
||||||
+#elif defined CONFIG_MSKYLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "SKYLAKE "
|
|
||||||
+#elif defined CONFIG_MSKYLAKEX
|
|
||||||
+#define MODULE_PROC_FAMILY "SKYLAKEX "
|
|
||||||
+#elif defined CONFIG_MCANNONLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "CANNONLAKE "
|
|
||||||
+#elif defined CONFIG_MICELAKE_CLIENT
|
|
||||||
+#define MODULE_PROC_FAMILY "ICELAKE_CLIENT "
|
|
||||||
+#elif defined CONFIG_MICELAKE_SERVER
|
|
||||||
+#define MODULE_PROC_FAMILY "ICELAKE_SERVER "
|
|
||||||
+#elif defined CONFIG_MCASCADELAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "CASCADELAKE "
|
|
||||||
+#elif defined CONFIG_MCOOPERLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "COOPERLAKE "
|
|
||||||
+#elif defined CONFIG_MTIGERLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "TIGERLAKE "
|
|
||||||
+#elif defined CONFIG_MSAPPHIRERAPIDS
|
|
||||||
+#define MODULE_PROC_FAMILY "SAPPHIRERAPIDS "
|
|
||||||
+#elif defined CONFIG_ROCKETLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "ROCKETLAKE "
|
|
||||||
+#elif defined CONFIG_MALDERLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "ALDERLAKE "
|
|
||||||
+#elif defined CONFIG_MRAPTORLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "RAPTORLAKE "
|
|
||||||
+#elif defined CONFIG_MMETEORLAKE
|
|
||||||
+#define MODULE_PROC_FAMILY "METEORLAKE "
|
|
||||||
+#elif defined CONFIG_MEMERALDRAPIDS
|
|
||||||
+#define MODULE_PROC_FAMILY "EMERALDRAPIDS "
|
|
||||||
#elif defined CONFIG_MATOM
|
|
||||||
#define MODULE_PROC_FAMILY "ATOM "
|
|
||||||
#elif defined CONFIG_M686
|
|
||||||
@@ -35,6 +85,28 @@
|
|
||||||
#define MODULE_PROC_FAMILY "K7 "
|
|
||||||
#elif defined CONFIG_MK8
|
|
||||||
#define MODULE_PROC_FAMILY "K8 "
|
|
||||||
+#elif defined CONFIG_MK8SSE3
|
|
||||||
+#define MODULE_PROC_FAMILY "K8SSE3 "
|
|
||||||
+#elif defined CONFIG_MK10
|
|
||||||
+#define MODULE_PROC_FAMILY "K10 "
|
|
||||||
+#elif defined CONFIG_MBARCELONA
|
|
||||||
+#define MODULE_PROC_FAMILY "BARCELONA "
|
|
||||||
+#elif defined CONFIG_MBOBCAT
|
|
||||||
+#define MODULE_PROC_FAMILY "BOBCAT "
|
|
||||||
+#elif defined CONFIG_MBULLDOZER
|
|
||||||
+#define MODULE_PROC_FAMILY "BULLDOZER "
|
|
||||||
+#elif defined CONFIG_MPILEDRIVER
|
|
||||||
+#define MODULE_PROC_FAMILY "PILEDRIVER "
|
|
||||||
+#elif defined CONFIG_MSTEAMROLLER
|
|
||||||
+#define MODULE_PROC_FAMILY "STEAMROLLER "
|
|
||||||
+#elif defined CONFIG_MJAGUAR
|
|
||||||
+#define MODULE_PROC_FAMILY "JAGUAR "
|
|
||||||
+#elif defined CONFIG_MEXCAVATOR
|
|
||||||
+#define MODULE_PROC_FAMILY "EXCAVATOR "
|
|
||||||
+#elif defined CONFIG_MZEN
|
|
||||||
+#define MODULE_PROC_FAMILY "ZEN "
|
|
||||||
+#elif defined CONFIG_MZEN2
|
|
||||||
+#define MODULE_PROC_FAMILY "ZEN2 "
|
|
||||||
#elif defined CONFIG_MELAN
|
|
||||||
#define MODULE_PROC_FAMILY "ELAN "
|
|
||||||
#elif defined CONFIG_MCRUSOE
|
|
@@ -1,4 +1,4 @@
|
|||||||
From f4f448a305e9d705b9a0da102ddfd58bfaac5cc0 Mon Sep 17 00:00:00 2001
|
From 15db9c3419fd147812151d95fb34bbd70f2f9715 Mon Sep 17 00:00:00 2001
|
||||||
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
|
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
|
||||||
Date: Sun, 11 Dec 2022 23:51:16 +0100
|
Date: Sun, 11 Dec 2022 23:51:16 +0100
|
||||||
Subject: ZEN: Restore CONFIG_OPTIMIZE_FOR_PERFORMANCE_O3
|
Subject: ZEN: Restore CONFIG_OPTIMIZE_FOR_PERFORMANCE_O3
|
||||||
@@ -13,7 +13,7 @@ dependency on CONFIG_ARC and adds RUSTFLAGS.
|
|||||||
|
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -872,6 +872,9 @@ KBUILD_CFLAGS += -fno-delete-null-pointe
|
@@ -868,6 +868,9 @@ KBUILD_CFLAGS += -fno-delete-null-pointe
|
||||||
ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
||||||
KBUILD_CFLAGS += -O2
|
KBUILD_CFLAGS += -O2
|
||||||
KBUILD_RUSTFLAGS += -Copt-level=2
|
KBUILD_RUSTFLAGS += -Copt-level=2
|
||||||
@@ -25,7 +25,7 @@ dependency on CONFIG_ARC and adds RUSTFLAGS.
|
|||||||
KBUILD_RUSTFLAGS += -Copt-level=s
|
KBUILD_RUSTFLAGS += -Copt-level=s
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1465,6 +1465,12 @@ config CC_OPTIMIZE_FOR_PERFORMANCE
|
@@ -1479,6 +1479,12 @@ config CC_OPTIMIZE_FOR_PERFORMANCE
|
||||||
with the "-O2" compiler flag for best performance and most
|
with the "-O2" compiler flag for best performance and most
|
||||||
helpful compile-time warnings.
|
helpful compile-time warnings.
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -880,6 +880,10 @@ KBUILD_CFLAGS += -Os
|
@@ -876,6 +876,10 @@ KBUILD_CFLAGS += -Os
|
||||||
KBUILD_RUSTFLAGS += -Copt-level=s
|
KBUILD_RUSTFLAGS += -Copt-level=s
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@@ -1,24 +1,22 @@
|
|||||||
From 3ebc1fdf3e0ee9bff1efe20eb5791eba5c84a810 Mon Sep 17 00:00:00 2001
|
From 40f9fa82bb21a5e3f17f539897128a69824ad8ef Mon Sep 17 00:00:00 2001
|
||||||
From: Alexandre Frade <kernel@xanmod.org>
|
From: Alexandre Frade <kernel@xanmod.org>
|
||||||
Date: Thu, 3 Aug 2023 13:53:49 +0000
|
Date: Mon, 18 Nov 2024 20:17:44 +0000
|
||||||
Subject: XANMOD: x86/build: Prevent generating avx2 and avx512 floating-point code
|
Subject: [PATCH 1/4] XANMOD: x86/build: Prevent generating avx2 floating-point
|
||||||
|
code
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||||
---
|
---
|
||||||
arch/x86/Makefile | 4 ++--
|
arch/x86/Makefile | 2 +-
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
--- a/arch/x86/Makefile
|
--- a/arch/x86/Makefile
|
||||||
+++ b/arch/x86/Makefile
|
+++ b/arch/x86/Makefile
|
||||||
@@ -74,9 +74,9 @@ export BITS
|
@@ -74,7 +74,7 @@ export BITS
|
||||||
#
|
#
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
|
||||||
#
|
#
|
||||||
-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
|
-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
|
||||||
+KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2 -mno-avx512f
|
+KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2
|
||||||
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
|
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
|
||||||
-KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
|
KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
|
||||||
+KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,-avx512f
|
|
||||||
|
|
||||||
#
|
|
||||||
# CFLAGS for compiling floating point code inside the kernel.
|
|
||||||
|
@@ -4,8 +4,8 @@
|
|||||||
#
|
#
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
|
||||||
#
|
#
|
||||||
-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2 -mno-avx512f
|
-KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2
|
||||||
+KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2 -mno-avx512f -fno-tree-vectorize
|
+KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-avx2 -fno-tree-vectorize
|
||||||
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
|
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
|
||||||
KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,-avx512f
|
KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
|
||||||
|
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
From b1a99a2a9675f80b7c04a239a6b047373ccf3a17 Mon Sep 17 00:00:00 2001
|
From 7e45fca50a3151248266bca7058e1efa9b5233ca Mon Sep 17 00:00:00 2001
|
||||||
From: Alexandre Frade <kernel@xanmod.org>
|
From: Alexandre Frade <kernel@xanmod.org>
|
||||||
Date: Mon, 16 Sep 2024 00:55:35 +0000
|
Date: Mon, 16 Sep 2024 00:55:35 +0000
|
||||||
Subject: XANMOD: kbuild: Add GCC SMS-based modulo scheduling flags
|
Subject: [PATCH 02/19] XANMOD: kbuild: Add GCC SMS-based modulo scheduling
|
||||||
|
flags
|
||||||
|
|
||||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||||
---
|
---
|
||||||
@@ -10,7 +11,7 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
|||||||
|
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -884,6 +884,13 @@ ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
@@ -880,6 +880,13 @@ ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fivopts)
|
KBUILD_CFLAGS += $(call cc-option,-fivopts)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@@ -1,59 +0,0 @@
|
|||||||
From c8c9ab8ff5cc5c0809cd958679614ade200a6ab3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:14 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Modify the min_perf calculation in adjust_perf
|
|
||||||
callback
|
|
||||||
|
|
||||||
Instead of setting a fixed floor at lowest_nonlinear_perf, use the
|
|
||||||
min_limit_perf value, so that it gives the user the freedom to lower the
|
|
||||||
floor further.
|
|
||||||
|
|
||||||
There are two minimum frequency/perf limits that we need to consider in
|
|
||||||
the adjust_perf callback. One provided by schedutil i.e. the sg_cpu->bw_min
|
|
||||||
value passed in _min_perf arg, another is the effective value of
|
|
||||||
min_freq_qos request that is updated in cpudata->min_limit_perf. Modify the
|
|
||||||
code to use the bigger of these two values.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 12 ++++++------
|
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -672,7 +672,7 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
unsigned long capacity)
|
|
||||||
{
|
|
||||||
unsigned long max_perf, min_perf, des_perf,
|
|
||||||
- cap_perf, lowest_nonlinear_perf;
|
|
||||||
+ cap_perf, min_limit_perf;
|
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
@@ -684,20 +684,20 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
-
|
|
||||||
cap_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
- lowest_nonlinear_perf = READ_ONCE(cpudata->lowest_nonlinear_perf);
|
|
||||||
+ min_limit_perf = READ_ONCE(cpudata->min_limit_perf);
|
|
||||||
|
|
||||||
des_perf = cap_perf;
|
|
||||||
if (target_perf < capacity)
|
|
||||||
des_perf = DIV_ROUND_UP(cap_perf * target_perf, capacity);
|
|
||||||
|
|
||||||
- min_perf = READ_ONCE(cpudata->lowest_perf);
|
|
||||||
if (_min_perf < capacity)
|
|
||||||
min_perf = DIV_ROUND_UP(cap_perf * _min_perf, capacity);
|
|
||||||
+ else
|
|
||||||
+ min_perf = cap_perf;
|
|
||||||
|
|
||||||
- if (min_perf < lowest_nonlinear_perf)
|
|
||||||
- min_perf = lowest_nonlinear_perf;
|
|
||||||
+ if (min_perf < min_limit_perf)
|
|
||||||
+ min_perf = min_limit_perf;
|
|
||||||
|
|
||||||
max_perf = cpudata->max_limit_perf;
|
|
||||||
if (max_perf < min_perf)
|
|
@@ -1,27 +0,0 @@
|
|||||||
From 16466d169a187b4c650771234de119279346f523 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:15 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Remove the redundant des_perf clamping in
|
|
||||||
adjust_perf
|
|
||||||
|
|
||||||
des_perf is later on clamped between min_perf and max_perf in
|
|
||||||
amd_pstate_update. So, remove the redundant clamping from
|
|
||||||
amd_pstate_adjust_perf.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -703,8 +703,6 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
if (max_perf < min_perf)
|
|
||||||
max_perf = min_perf;
|
|
||||||
|
|
||||||
- des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf);
|
|
||||||
-
|
|
||||||
amd_pstate_update(cpudata, min_perf, des_perf, max_perf, true,
|
|
||||||
policy->governor->flags);
|
|
||||||
cpufreq_cpu_put(policy);
|
|
@@ -1,51 +0,0 @@
|
|||||||
From 0dfebf0094ea7c512cf3db1013cf82124d4bbc3a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:16 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Pass min/max_limit_perf as min/max_perf to
|
|
||||||
amd_pstate_update
|
|
||||||
|
|
||||||
Currently, amd_pstate_update_freq passes the hardware perf limits as
|
|
||||||
min/max_perf to amd_pstate_update, which eventually gets programmed into
|
|
||||||
the min/max_perf fields of the CPPC_REQ register.
|
|
||||||
|
|
||||||
Instead pass the effective perf limits i.e. min/max_limit_perf values to
|
|
||||||
amd_pstate_update as min/max_perf.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 9 ++++-----
|
|
||||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -615,7 +615,7 @@ static int amd_pstate_update_freq(struct
|
|
||||||
{
|
|
||||||
struct cpufreq_freqs freqs;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- unsigned long max_perf, min_perf, des_perf, cap_perf;
|
|
||||||
+ unsigned long des_perf, cap_perf;
|
|
||||||
|
|
||||||
if (!cpudata->max_freq)
|
|
||||||
return -ENODEV;
|
|
||||||
@@ -624,8 +624,6 @@ static int amd_pstate_update_freq(struct
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
cap_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
- min_perf = READ_ONCE(cpudata->lowest_perf);
|
|
||||||
- max_perf = cap_perf;
|
|
||||||
|
|
||||||
freqs.old = policy->cur;
|
|
||||||
freqs.new = target_freq;
|
|
||||||
@@ -642,8 +640,9 @@ static int amd_pstate_update_freq(struct
|
|
||||||
if (!fast_switch)
|
|
||||||
cpufreq_freq_transition_begin(policy, &freqs);
|
|
||||||
|
|
||||||
- amd_pstate_update(cpudata, min_perf, des_perf,
|
|
||||||
- max_perf, fast_switch, policy->governor->flags);
|
|
||||||
+ amd_pstate_update(cpudata, cpudata->min_limit_perf, des_perf,
|
|
||||||
+ cpudata->max_limit_perf, fast_switch,
|
|
||||||
+ policy->governor->flags);
|
|
||||||
|
|
||||||
if (!fast_switch)
|
|
||||||
cpufreq_freq_transition_end(policy, &freqs, false);
|
|
@@ -1,355 +0,0 @@
|
|||||||
From 3daf64b383bc41feb0bf23790939b4512ba9170d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:17 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Convert all perf values to u8
|
|
||||||
|
|
||||||
All perf values are always within 0-255 range, hence convert their
|
|
||||||
datatype to u8 everywhere.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-trace.h | 46 +++++++++++------------
|
|
||||||
drivers/cpufreq/amd-pstate.c | 60 +++++++++++++++---------------
|
|
||||||
drivers/cpufreq/amd-pstate.h | 18 ++++-----
|
|
||||||
3 files changed, 62 insertions(+), 62 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-trace.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-trace.h
|
|
||||||
@@ -24,9 +24,9 @@
|
|
||||||
|
|
||||||
TRACE_EVENT(amd_pstate_perf,
|
|
||||||
|
|
||||||
- TP_PROTO(unsigned long min_perf,
|
|
||||||
- unsigned long target_perf,
|
|
||||||
- unsigned long capacity,
|
|
||||||
+ TP_PROTO(u8 min_perf,
|
|
||||||
+ u8 target_perf,
|
|
||||||
+ u8 capacity,
|
|
||||||
u64 freq,
|
|
||||||
u64 mperf,
|
|
||||||
u64 aperf,
|
|
||||||
@@ -47,9 +47,9 @@ TRACE_EVENT(amd_pstate_perf,
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
|
||||||
- __field(unsigned long, min_perf)
|
|
||||||
- __field(unsigned long, target_perf)
|
|
||||||
- __field(unsigned long, capacity)
|
|
||||||
+ __field(u8, min_perf)
|
|
||||||
+ __field(u8, target_perf)
|
|
||||||
+ __field(u8, capacity)
|
|
||||||
__field(unsigned long long, freq)
|
|
||||||
__field(unsigned long long, mperf)
|
|
||||||
__field(unsigned long long, aperf)
|
|
||||||
@@ -70,10 +70,10 @@ TRACE_EVENT(amd_pstate_perf,
|
|
||||||
__entry->fast_switch = fast_switch;
|
|
||||||
),
|
|
||||||
|
|
||||||
- TP_printk("amd_min_perf=%lu amd_des_perf=%lu amd_max_perf=%lu freq=%llu mperf=%llu aperf=%llu tsc=%llu cpu_id=%u fast_switch=%s",
|
|
||||||
- (unsigned long)__entry->min_perf,
|
|
||||||
- (unsigned long)__entry->target_perf,
|
|
||||||
- (unsigned long)__entry->capacity,
|
|
||||||
+ TP_printk("amd_min_perf=%hhu amd_des_perf=%hhu amd_max_perf=%hhu freq=%llu mperf=%llu aperf=%llu tsc=%llu cpu_id=%u fast_switch=%s",
|
|
||||||
+ (u8)__entry->min_perf,
|
|
||||||
+ (u8)__entry->target_perf,
|
|
||||||
+ (u8)__entry->capacity,
|
|
||||||
(unsigned long long)__entry->freq,
|
|
||||||
(unsigned long long)__entry->mperf,
|
|
||||||
(unsigned long long)__entry->aperf,
|
|
||||||
@@ -86,10 +86,10 @@ TRACE_EVENT(amd_pstate_perf,
|
|
||||||
TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
|
|
||||||
TP_PROTO(unsigned int cpu_id,
|
|
||||||
- unsigned int highest_perf,
|
|
||||||
- unsigned int epp,
|
|
||||||
- unsigned int min_perf,
|
|
||||||
- unsigned int max_perf,
|
|
||||||
+ u8 highest_perf,
|
|
||||||
+ u8 epp,
|
|
||||||
+ u8 min_perf,
|
|
||||||
+ u8 max_perf,
|
|
||||||
bool boost
|
|
||||||
),
|
|
||||||
|
|
||||||
@@ -102,10 +102,10 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
|
||||||
__field(unsigned int, cpu_id)
|
|
||||||
- __field(unsigned int, highest_perf)
|
|
||||||
- __field(unsigned int, epp)
|
|
||||||
- __field(unsigned int, min_perf)
|
|
||||||
- __field(unsigned int, max_perf)
|
|
||||||
+ __field(u8, highest_perf)
|
|
||||||
+ __field(u8, epp)
|
|
||||||
+ __field(u8, min_perf)
|
|
||||||
+ __field(u8, max_perf)
|
|
||||||
__field(bool, boost)
|
|
||||||
),
|
|
||||||
|
|
||||||
@@ -118,12 +118,12 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
__entry->boost = boost;
|
|
||||||
),
|
|
||||||
|
|
||||||
- TP_printk("cpu%u: [%u<->%u]/%u, epp=%u, boost=%u",
|
|
||||||
+ TP_printk("cpu%u: [%hhu<->%hhu]/%hhu, epp=%hhu, boost=%u",
|
|
||||||
(unsigned int)__entry->cpu_id,
|
|
||||||
- (unsigned int)__entry->min_perf,
|
|
||||||
- (unsigned int)__entry->max_perf,
|
|
||||||
- (unsigned int)__entry->highest_perf,
|
|
||||||
- (unsigned int)__entry->epp,
|
|
||||||
+ (u8)__entry->min_perf,
|
|
||||||
+ (u8)__entry->max_perf,
|
|
||||||
+ (u8)__entry->highest_perf,
|
|
||||||
+ (u8)__entry->epp,
|
|
||||||
(bool)__entry->boost
|
|
||||||
)
|
|
||||||
);
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -186,7 +186,7 @@ static inline int get_mode_idx_from_str(
|
|
||||||
static DEFINE_MUTEX(amd_pstate_limits_lock);
|
|
||||||
static DEFINE_MUTEX(amd_pstate_driver_lock);
|
|
||||||
|
|
||||||
-static s16 msr_get_epp(struct amd_cpudata *cpudata)
|
|
||||||
+static u8 msr_get_epp(struct amd_cpudata *cpudata)
|
|
||||||
{
|
|
||||||
u64 value;
|
|
||||||
int ret;
|
|
||||||
@@ -207,7 +207,7 @@ static inline s16 amd_pstate_get_epp(str
|
|
||||||
return static_call(amd_pstate_get_epp)(cpudata);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static s16 shmem_get_epp(struct amd_cpudata *cpudata)
|
|
||||||
+static u8 shmem_get_epp(struct amd_cpudata *cpudata)
|
|
||||||
{
|
|
||||||
u64 epp;
|
|
||||||
int ret;
|
|
||||||
@@ -218,11 +218,11 @@ static s16 shmem_get_epp(struct amd_cpud
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
- return (s16)(epp & 0xff);
|
|
||||||
+ return FIELD_GET(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int msr_update_perf(struct amd_cpudata *cpudata, u32 min_perf,
|
|
||||||
- u32 des_perf, u32 max_perf, u32 epp, bool fast_switch)
|
|
||||||
+static int msr_update_perf(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
+ u8 des_perf, u8 max_perf, u8 epp, bool fast_switch)
|
|
||||||
{
|
|
||||||
u64 value, prev;
|
|
||||||
|
|
||||||
@@ -257,15 +257,15 @@ static int msr_update_perf(struct amd_cp
|
|
||||||
DEFINE_STATIC_CALL(amd_pstate_update_perf, msr_update_perf);
|
|
||||||
|
|
||||||
static inline int amd_pstate_update_perf(struct amd_cpudata *cpudata,
|
|
||||||
- u32 min_perf, u32 des_perf,
|
|
||||||
- u32 max_perf, u32 epp,
|
|
||||||
+ u8 min_perf, u8 des_perf,
|
|
||||||
+ u8 max_perf, u8 epp,
|
|
||||||
bool fast_switch)
|
|
||||||
{
|
|
||||||
return static_call(amd_pstate_update_perf)(cpudata, min_perf, des_perf,
|
|
||||||
max_perf, epp, fast_switch);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int msr_set_epp(struct amd_cpudata *cpudata, u32 epp)
|
|
||||||
+static int msr_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
{
|
|
||||||
u64 value, prev;
|
|
||||||
int ret;
|
|
||||||
@@ -292,12 +292,12 @@ static int msr_set_epp(struct amd_cpudat
|
|
||||||
|
|
||||||
DEFINE_STATIC_CALL(amd_pstate_set_epp, msr_set_epp);
|
|
||||||
|
|
||||||
-static inline int amd_pstate_set_epp(struct amd_cpudata *cpudata, u32 epp)
|
|
||||||
+static inline int amd_pstate_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
{
|
|
||||||
return static_call(amd_pstate_set_epp)(cpudata, epp);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int shmem_set_epp(struct amd_cpudata *cpudata, u32 epp)
|
|
||||||
+static int shmem_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
@@ -320,7 +320,7 @@ static int amd_pstate_set_energy_pref_in
|
|
||||||
int pref_index)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- int epp;
|
|
||||||
+ u8 epp;
|
|
||||||
|
|
||||||
if (!pref_index)
|
|
||||||
epp = cpudata->epp_default;
|
|
||||||
@@ -479,8 +479,8 @@ static inline int amd_pstate_init_perf(s
|
|
||||||
return static_call(amd_pstate_init_perf)(cpudata);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int shmem_update_perf(struct amd_cpudata *cpudata, u32 min_perf,
|
|
||||||
- u32 des_perf, u32 max_perf, u32 epp, bool fast_switch)
|
|
||||||
+static int shmem_update_perf(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
+ u8 des_perf, u8 max_perf, u8 epp, bool fast_switch)
|
|
||||||
{
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
|
|
||||||
@@ -531,14 +531,14 @@ static inline bool amd_pstate_sample(str
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void amd_pstate_update(struct amd_cpudata *cpudata, u32 min_perf,
|
|
||||||
- u32 des_perf, u32 max_perf, bool fast_switch, int gov_flags)
|
|
||||||
+static void amd_pstate_update(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
+ u8 des_perf, u8 max_perf, bool fast_switch, int gov_flags)
|
|
||||||
{
|
|
||||||
unsigned long max_freq;
|
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
- u32 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
+ u8 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
|
|
||||||
- des_perf = clamp_t(unsigned long, des_perf, min_perf, max_perf);
|
|
||||||
+ des_perf = clamp_t(u8, des_perf, min_perf, max_perf);
|
|
||||||
|
|
||||||
max_freq = READ_ONCE(cpudata->max_limit_freq);
|
|
||||||
policy->cur = div_u64(des_perf * max_freq, max_perf);
|
|
||||||
@@ -550,7 +550,7 @@ static void amd_pstate_update(struct amd
|
|
||||||
|
|
||||||
/* limit the max perf when core performance boost feature is disabled */
|
|
||||||
if (!cpudata->boost_supported)
|
|
||||||
- max_perf = min_t(unsigned long, nominal_perf, max_perf);
|
|
||||||
+ max_perf = min_t(u8, nominal_perf, max_perf);
|
|
||||||
|
|
||||||
if (trace_amd_pstate_perf_enabled() && amd_pstate_sample(cpudata)) {
|
|
||||||
trace_amd_pstate_perf(min_perf, des_perf, max_perf, cpudata->freq,
|
|
||||||
@@ -591,7 +591,8 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
|
|
||||||
static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- u32 max_limit_perf, min_limit_perf, max_perf, max_freq;
|
|
||||||
+ u8 max_limit_perf, min_limit_perf, max_perf;
|
|
||||||
+ u32 max_freq;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
max_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
@@ -615,7 +616,7 @@ static int amd_pstate_update_freq(struct
|
|
||||||
{
|
|
||||||
struct cpufreq_freqs freqs;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- unsigned long des_perf, cap_perf;
|
|
||||||
+ u8 des_perf, cap_perf;
|
|
||||||
|
|
||||||
if (!cpudata->max_freq)
|
|
||||||
return -ENODEV;
|
|
||||||
@@ -670,8 +671,7 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
unsigned long target_perf,
|
|
||||||
unsigned long capacity)
|
|
||||||
{
|
|
||||||
- unsigned long max_perf, min_perf, des_perf,
|
|
||||||
- cap_perf, min_limit_perf;
|
|
||||||
+ u8 max_perf, min_perf, des_perf, cap_perf, min_limit_perf;
|
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
@@ -905,8 +905,8 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
u32 min_freq, max_freq;
|
|
||||||
- u32 highest_perf, nominal_perf, nominal_freq;
|
|
||||||
- u32 lowest_nonlinear_perf, lowest_nonlinear_freq;
|
|
||||||
+ u8 highest_perf, nominal_perf, lowest_nonlinear_perf;
|
|
||||||
+ u32 nominal_freq, lowest_nonlinear_freq;
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
|
|
||||||
ret = cppc_get_perf_caps(cpudata->cpu, &cppc_perf);
|
|
||||||
@@ -1113,7 +1113,7 @@ static ssize_t show_amd_pstate_lowest_no
|
|
||||||
static ssize_t show_amd_pstate_highest_perf(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- u32 perf;
|
|
||||||
+ u8 perf;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
@@ -1124,7 +1124,7 @@ static ssize_t show_amd_pstate_highest_p
|
|
||||||
static ssize_t show_amd_pstate_prefcore_ranking(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- u32 perf;
|
|
||||||
+ u8 perf;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
perf = READ_ONCE(cpudata->prefcore_ranking);
|
|
||||||
@@ -1187,7 +1187,7 @@ static ssize_t show_energy_performance_p
|
|
||||||
struct cpufreq_policy *policy, char *buf)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- int preference;
|
|
||||||
+ u8 preference;
|
|
||||||
|
|
||||||
switch (cpudata->epp_cached) {
|
|
||||||
case AMD_CPPC_EPP_PERFORMANCE:
|
|
||||||
@@ -1549,7 +1549,7 @@ static void amd_pstate_epp_cpu_exit(stru
|
|
||||||
static int amd_pstate_epp_update_limit(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- u32 epp;
|
|
||||||
+ u8 epp;
|
|
||||||
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
@@ -1598,7 +1598,7 @@ static int amd_pstate_epp_set_policy(str
|
|
||||||
static int amd_pstate_epp_reenable(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- u64 max_perf;
|
|
||||||
+ u8 max_perf;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = amd_pstate_cppc_enable(true);
|
|
||||||
@@ -1635,7 +1635,7 @@ static int amd_pstate_epp_cpu_online(str
|
|
||||||
static int amd_pstate_epp_cpu_offline(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- int min_perf;
|
|
||||||
+ u8 min_perf;
|
|
||||||
|
|
||||||
if (cpudata->suspended)
|
|
||||||
return 0;
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.h
|
|
||||||
@@ -70,13 +70,13 @@ struct amd_cpudata {
|
|
||||||
struct freq_qos_request req[2];
|
|
||||||
u64 cppc_req_cached;
|
|
||||||
|
|
||||||
- u32 highest_perf;
|
|
||||||
- u32 nominal_perf;
|
|
||||||
- u32 lowest_nonlinear_perf;
|
|
||||||
- u32 lowest_perf;
|
|
||||||
- u32 prefcore_ranking;
|
|
||||||
- u32 min_limit_perf;
|
|
||||||
- u32 max_limit_perf;
|
|
||||||
+ u8 highest_perf;
|
|
||||||
+ u8 nominal_perf;
|
|
||||||
+ u8 lowest_nonlinear_perf;
|
|
||||||
+ u8 lowest_perf;
|
|
||||||
+ u8 prefcore_ranking;
|
|
||||||
+ u8 min_limit_perf;
|
|
||||||
+ u8 max_limit_perf;
|
|
||||||
u32 min_limit_freq;
|
|
||||||
u32 max_limit_freq;
|
|
||||||
|
|
||||||
@@ -93,11 +93,11 @@ struct amd_cpudata {
|
|
||||||
bool hw_prefcore;
|
|
||||||
|
|
||||||
/* EPP feature related attributes*/
|
|
||||||
- s16 epp_cached;
|
|
||||||
+ u8 epp_cached;
|
|
||||||
u32 policy;
|
|
||||||
u64 cppc_cap1_cached;
|
|
||||||
bool suspended;
|
|
||||||
- s16 epp_default;
|
|
||||||
+ u8 epp_default;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
@@ -1,131 +0,0 @@
|
|||||||
From b132b889dc7aa398a789e02dd6fbd5a512b4a9e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:18 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Modularize perf<->freq conversion
|
|
||||||
|
|
||||||
Delegate the perf<->frequency conversion to helper functions to reduce
|
|
||||||
code duplication, and improve readability.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 57 +++++++++++++++++++-----------------
|
|
||||||
1 file changed, 30 insertions(+), 27 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -142,6 +142,20 @@ static struct quirk_entry quirk_amd_7k62
|
|
||||||
.lowest_freq = 550,
|
|
||||||
};
|
|
||||||
|
|
||||||
+static inline u8 freq_to_perf(struct amd_cpudata *cpudata, unsigned int freq_val)
|
|
||||||
+{
|
|
||||||
+ u8 perf_val = DIV_ROUND_UP_ULL((u64)freq_val * cpudata->nominal_perf,
|
|
||||||
+ cpudata->nominal_freq);
|
|
||||||
+
|
|
||||||
+ return clamp_t(u8, perf_val, cpudata->lowest_perf, cpudata->highest_perf);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static inline u32 perf_to_freq(struct amd_cpudata *cpudata, u8 perf_val)
|
|
||||||
+{
|
|
||||||
+ return DIV_ROUND_UP_ULL((u64)cpudata->nominal_freq * perf_val,
|
|
||||||
+ cpudata->nominal_perf);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int __init dmi_matched_7k62_bios_bug(const struct dmi_system_id *dmi)
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
@@ -534,14 +548,12 @@ static inline bool amd_pstate_sample(str
|
|
||||||
static void amd_pstate_update(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
u8 des_perf, u8 max_perf, bool fast_switch, int gov_flags)
|
|
||||||
{
|
|
||||||
- unsigned long max_freq;
|
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
u8 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
|
|
||||||
des_perf = clamp_t(u8, des_perf, min_perf, max_perf);
|
|
||||||
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_limit_freq);
|
|
||||||
- policy->cur = div_u64(des_perf * max_freq, max_perf);
|
|
||||||
+ policy->cur = perf_to_freq(cpudata, des_perf);
|
|
||||||
|
|
||||||
if ((cppc_state == AMD_PSTATE_GUIDED) && (gov_flags & CPUFREQ_GOV_DYNAMIC_SWITCHING)) {
|
|
||||||
min_perf = des_perf;
|
|
||||||
@@ -591,14 +603,11 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
|
|
||||||
static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- u8 max_limit_perf, min_limit_perf, max_perf;
|
|
||||||
- u32 max_freq;
|
|
||||||
+ u8 max_limit_perf, min_limit_perf;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
- max_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_freq);
|
|
||||||
- max_limit_perf = div_u64(policy->max * max_perf, max_freq);
|
|
||||||
- min_limit_perf = div_u64(policy->min * max_perf, max_freq);
|
|
||||||
+ max_limit_perf = freq_to_perf(cpudata, policy->max);
|
|
||||||
+ min_limit_perf = freq_to_perf(cpudata, policy->min);
|
|
||||||
|
|
||||||
if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
|
|
||||||
min_limit_perf = min(cpudata->nominal_perf, max_limit_perf);
|
|
||||||
@@ -616,21 +625,15 @@ static int amd_pstate_update_freq(struct
|
|
||||||
{
|
|
||||||
struct cpufreq_freqs freqs;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- u8 des_perf, cap_perf;
|
|
||||||
-
|
|
||||||
- if (!cpudata->max_freq)
|
|
||||||
- return -ENODEV;
|
|
||||||
+ u8 des_perf;
|
|
||||||
|
|
||||||
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
- cap_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
-
|
|
||||||
freqs.old = policy->cur;
|
|
||||||
freqs.new = target_freq;
|
|
||||||
|
|
||||||
- des_perf = DIV_ROUND_CLOSEST(target_freq * cap_perf,
|
|
||||||
- cpudata->max_freq);
|
|
||||||
+ des_perf = freq_to_perf(cpudata, target_freq);
|
|
||||||
|
|
||||||
WARN_ON(fast_switch && !policy->fast_switch_enabled);
|
|
||||||
/*
|
|
||||||
@@ -905,7 +908,6 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
u32 min_freq, max_freq;
|
|
||||||
- u8 highest_perf, nominal_perf, lowest_nonlinear_perf;
|
|
||||||
u32 nominal_freq, lowest_nonlinear_freq;
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
|
|
||||||
@@ -923,16 +925,17 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
else
|
|
||||||
nominal_freq = cppc_perf.nominal_freq;
|
|
||||||
|
|
||||||
- highest_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
- nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
- max_freq = div_u64((u64)highest_perf * nominal_freq, nominal_perf);
|
|
||||||
-
|
|
||||||
- lowest_nonlinear_perf = READ_ONCE(cpudata->lowest_nonlinear_perf);
|
|
||||||
- lowest_nonlinear_freq = div_u64((u64)nominal_freq * lowest_nonlinear_perf, nominal_perf);
|
|
||||||
- WRITE_ONCE(cpudata->min_freq, min_freq * 1000);
|
|
||||||
- WRITE_ONCE(cpudata->lowest_nonlinear_freq, lowest_nonlinear_freq * 1000);
|
|
||||||
- WRITE_ONCE(cpudata->nominal_freq, nominal_freq * 1000);
|
|
||||||
- WRITE_ONCE(cpudata->max_freq, max_freq * 1000);
|
|
||||||
+ min_freq *= 1000;
|
|
||||||
+ nominal_freq *= 1000;
|
|
||||||
+
|
|
||||||
+ WRITE_ONCE(cpudata->nominal_freq, nominal_freq);
|
|
||||||
+ WRITE_ONCE(cpudata->min_freq, min_freq);
|
|
||||||
+
|
|
||||||
+ max_freq = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
+ lowest_nonlinear_freq = perf_to_freq(cpudata, cpudata->lowest_nonlinear_perf);
|
|
||||||
+
|
|
||||||
+ WRITE_ONCE(cpudata->lowest_nonlinear_freq, lowest_nonlinear_freq);
|
|
||||||
+ WRITE_ONCE(cpudata->max_freq, max_freq);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Below values need to be initialized correctly, otherwise driver will fail to load
|
|
@@ -1,37 +0,0 @@
|
|||||||
From 6c284985cc268da10f0e38f1f3b9af62ecfc3998 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:19 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Remove the unnecessary cpufreq_update_policy call
|
|
||||||
|
|
||||||
The update_limits callback is only called in two conditions.
|
|
||||||
|
|
||||||
* When the preferred core rankings change. In which case, we just need to
|
|
||||||
change the prefcore ranking in the cpudata struct. As there are no changes
|
|
||||||
to any of the perf values, there is no need to call cpufreq_update_policy()
|
|
||||||
|
|
||||||
* When the _PPC ACPI object changes, i.e. the highest allowed Pstate
|
|
||||||
changes. The _PPC object is only used for a table based cpufreq driver
|
|
||||||
like acpi-cpufreq, hence is irrelevant for CPPC based amd-pstate.
|
|
||||||
|
|
||||||
Hence, the cpufreq_update_policy() call becomes unnecessary and can be
|
|
||||||
removed.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 4 ----
|
|
||||||
1 file changed, 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -853,10 +853,6 @@ static void amd_pstate_update_limits(uns
|
|
||||||
sched_set_itmt_core_prio((int)cur_high, cpu);
|
|
||||||
}
|
|
||||||
cpufreq_cpu_put(policy);
|
|
||||||
-
|
|
||||||
- if (!highest_perf_changed)
|
|
||||||
- cpufreq_update_policy(cpu);
|
|
||||||
-
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
@@ -1,26 +0,0 @@
|
|||||||
From f50ac94149bc07092ecf5b68558f02920436f77c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:21 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Add missing NULL ptr check in amd_pstate_update
|
|
||||||
|
|
||||||
Check if policy is NULL before dereferencing it in amd_pstate_update.
|
|
||||||
|
|
||||||
Fixes: e8f555daacd3 ("cpufreq/amd-pstate: fix setting policy current frequency value")
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -551,6 +551,9 @@ static void amd_pstate_update(struct amd
|
|
||||||
struct cpufreq_policy *policy = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
u8 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
|
|
||||||
+ if (!policy)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
des_perf = clamp_t(u8, des_perf, min_perf, max_perf);
|
|
||||||
|
|
||||||
policy->cur = perf_to_freq(cpudata, des_perf);
|
|
@@ -1,124 +0,0 @@
|
|||||||
From b5b334f66595052e69ecaa501b8a6ebdb0fd6eed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:22 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Use scope based cleanup for cpufreq_policy refs
|
|
||||||
|
|
||||||
There have been instances in past where refcount decrementing is missed
|
|
||||||
while exiting a function. Use automatic scope based cleanup to avoid
|
|
||||||
such errors.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 25 ++++++++-----------------
|
|
||||||
include/linux/cpufreq.h | 3 +++
|
|
||||||
2 files changed, 11 insertions(+), 17 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -548,7 +548,7 @@ static inline bool amd_pstate_sample(str
|
|
||||||
static void amd_pstate_update(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
u8 des_perf, u8 max_perf, bool fast_switch, int gov_flags)
|
|
||||||
{
|
|
||||||
- struct cpufreq_policy *policy = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
u8 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
|
|
||||||
if (!policy)
|
|
||||||
@@ -574,8 +574,6 @@ static void amd_pstate_update(struct amd
|
|
||||||
}
|
|
||||||
|
|
||||||
amd_pstate_update_perf(cpudata, min_perf, des_perf, max_perf, 0, fast_switch);
|
|
||||||
-
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_verify(struct cpufreq_policy_data *policy_data)
|
|
||||||
@@ -587,7 +585,8 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
* amd-pstate qos_requests.
|
|
||||||
*/
|
|
||||||
if (policy_data->min == FREQ_QOS_MIN_DEFAULT_VALUE) {
|
|
||||||
- struct cpufreq_policy *policy = cpufreq_cpu_get(policy_data->cpu);
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) =
|
|
||||||
+ cpufreq_cpu_get(policy_data->cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
if (!policy)
|
|
||||||
@@ -595,7 +594,6 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
|
|
||||||
cpudata = policy->driver_data;
|
|
||||||
policy_data->min = cpudata->lowest_nonlinear_freq;
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
cpufreq_verify_within_cpu_limits(policy_data);
|
|
||||||
@@ -678,7 +676,7 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
unsigned long capacity)
|
|
||||||
{
|
|
||||||
u8 max_perf, min_perf, des_perf, cap_perf, min_limit_perf;
|
|
||||||
- struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
if (!policy)
|
|
||||||
@@ -710,7 +708,6 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
|
|
||||||
amd_pstate_update(cpudata, min_perf, des_perf, max_perf, true,
|
|
||||||
policy->governor->flags);
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_cpu_boost_update(struct cpufreq_policy *policy, bool on)
|
|
||||||
@@ -824,28 +821,23 @@ static void amd_pstate_init_prefcore(str
|
|
||||||
|
|
||||||
static void amd_pstate_update_limits(unsigned int cpu)
|
|
||||||
{
|
|
||||||
- struct cpufreq_policy *policy = NULL;
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
u32 prev_high = 0, cur_high = 0;
|
|
||||||
- int ret;
|
|
||||||
bool highest_perf_changed = false;
|
|
||||||
|
|
||||||
if (!amd_pstate_prefcore)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- cpudata = policy->driver_data;
|
|
||||||
-
|
|
||||||
guard(mutex)(&amd_pstate_driver_lock);
|
|
||||||
|
|
||||||
- ret = amd_get_highest_perf(cpu, &cur_high);
|
|
||||||
- if (ret) {
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
+ if (amd_get_highest_perf(cpu, &cur_high))
|
|
||||||
return;
|
|
||||||
- }
|
|
||||||
+
|
|
||||||
+ cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
prev_high = READ_ONCE(cpudata->prefcore_ranking);
|
|
||||||
highest_perf_changed = (prev_high != cur_high);
|
|
||||||
@@ -855,7 +847,6 @@ static void amd_pstate_update_limits(uns
|
|
||||||
if (cur_high < CPPC_MAX_PERF)
|
|
||||||
sched_set_itmt_core_prio((int)cur_high, cpu);
|
|
||||||
}
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
--- a/include/linux/cpufreq.h
|
|
||||||
+++ b/include/linux/cpufreq.h
|
|
||||||
@@ -210,6 +210,9 @@ static inline struct cpufreq_policy *cpu
|
|
||||||
static inline void cpufreq_cpu_put(struct cpufreq_policy *policy) { }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+/* Scope based cleanup macro for cpufreq_policy kobject reference counting */
|
|
||||||
+DEFINE_FREE(put_cpufreq_policy, struct cpufreq_policy *, if (_T) cpufreq_cpu_put(_T))
|
|
||||||
+
|
|
||||||
static inline bool policy_is_inactive(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
return cpumask_empty(policy->cpus);
|
|
@@ -1,26 +0,0 @@
|
|||||||
From eff2c5a3f292e822968919a9792010de65b417b5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Wed, 5 Feb 2025 11:25:23 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Remove the unncecessary driver_lock in
|
|
||||||
amd_pstate_update_limits
|
|
||||||
|
|
||||||
There is no need to take a driver wide lock while updating the
|
|
||||||
highest_perf value in the percpu cpudata struct. Hence remove it.
|
|
||||||
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 2 --
|
|
||||||
1 file changed, 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -832,8 +832,6 @@ static void amd_pstate_update_limits(uns
|
|
||||||
if (!policy)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- guard(mutex)(&amd_pstate_driver_lock);
|
|
||||||
-
|
|
||||||
if (amd_get_highest_perf(cpu, &cur_high))
|
|
||||||
return;
|
|
||||||
|
|
@@ -1,35 +0,0 @@
|
|||||||
From e836285ca35390d656adffee520d48cd7bedd5b3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Date: Sat, 22 Feb 2025 03:32:22 +0000
|
|
||||||
Subject: cpufreq/amd-pstate: Fix the clamping of perf values
|
|
||||||
|
|
||||||
The clamping in freq_to_perf() is broken right now, as we first typecast
|
|
||||||
(read wraparound) the overflowing value into a u8 and then clamp it down.
|
|
||||||
So, use a u32 to store the >255 value in certain edge cases and then clamp
|
|
||||||
it down into a u8.
|
|
||||||
|
|
||||||
Also, use a "explicit typecast + clamp" instead of just a "clamp_t" as the
|
|
||||||
latter typecasts first and then clamps between the limits, which defeats
|
|
||||||
our purpose.
|
|
||||||
|
|
||||||
Fixes: 305621eb6a8b ("cpufreq/amd-pstate: Modularize perf<->freq conversion")
|
|
||||||
Signed-off-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -144,10 +144,10 @@ static struct quirk_entry quirk_amd_7k62
|
|
||||||
|
|
||||||
static inline u8 freq_to_perf(struct amd_cpudata *cpudata, unsigned int freq_val)
|
|
||||||
{
|
|
||||||
- u8 perf_val = DIV_ROUND_UP_ULL((u64)freq_val * cpudata->nominal_perf,
|
|
||||||
+ u32 perf_val = DIV_ROUND_UP_ULL((u64)freq_val * cpudata->nominal_perf,
|
|
||||||
cpudata->nominal_freq);
|
|
||||||
|
|
||||||
- return clamp_t(u8, perf_val, cpudata->lowest_perf, cpudata->highest_perf);
|
|
||||||
+ return (u8)clamp(perf_val, cpudata->lowest_perf, cpudata->highest_perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline u32 perf_to_freq(struct amd_cpudata *cpudata, u8 perf_val)
|
|
@@ -1,42 +0,0 @@
|
|||||||
From 0a417434299b27aebbb444e7545a7d668c40d288 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:16 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Invalidate cppc_req_cached during suspend
|
|
||||||
|
|
||||||
During resume it's possible the firmware didn't restore the CPPC request
|
|
||||||
MSR but the kernel thinks the values line up. This leads to incorrect
|
|
||||||
performance after resume from suspend.
|
|
||||||
|
|
||||||
To fix the issue invalidate the cached value at suspend. During resume use
|
|
||||||
the saved values programmed as cached limits.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reported-by: Miroslav Pavleski <miroslav@pavleski.net>
|
|
||||||
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217931
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 5 ++++-
|
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -1605,7 +1605,7 @@ static int amd_pstate_epp_reenable(struc
|
|
||||||
max_perf, policy->boost_enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
- return amd_pstate_update_perf(cpudata, 0, 0, max_perf, cpudata->epp_cached, false);
|
|
||||||
+ return amd_pstate_epp_update_limit(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_epp_cpu_online(struct cpufreq_policy *policy)
|
|
||||||
@@ -1654,6 +1654,9 @@ static int amd_pstate_epp_suspend(struct
|
|
||||||
if (cppc_state != AMD_PSTATE_ACTIVE)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
+ /* invalidate to ensure it's rewritten during resume */
|
|
||||||
+ cpudata->cppc_req_cached = 0;
|
|
||||||
+
|
|
||||||
/* set this flag to avoid setting core offline*/
|
|
||||||
cpudata->suspended = true;
|
|
||||||
|
|
@@ -1,35 +0,0 @@
|
|||||||
From ea1821eae465dfff9a9ef90662c2ce79e5abfe6e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:17 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Show a warning when a CPU fails to setup
|
|
||||||
|
|
||||||
I came across a system that MSR_AMD_CPPC_CAP1 for some CPUs isn't
|
|
||||||
populated. This is an unexpected behavior that is most likely a
|
|
||||||
BIOS bug. In the event it happens I'd like users to report bugs
|
|
||||||
to properly root cause and get this fixed.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -1028,6 +1028,7 @@ static int amd_pstate_cpu_init(struct cp
|
|
||||||
free_cpudata2:
|
|
||||||
freq_qos_remove_request(&cpudata->req[0]);
|
|
||||||
free_cpudata1:
|
|
||||||
+ pr_warn("Failed to initialize CPU %d: %d\n", policy->cpu, ret);
|
|
||||||
kfree(cpudata);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
@@ -1521,6 +1522,7 @@ static int amd_pstate_epp_cpu_init(struc
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
free_cpudata1:
|
|
||||||
+ pr_warn("Failed to initialize CPU %d: %d\n", policy->cpu, ret);
|
|
||||||
kfree(cpudata);
|
|
||||||
return ret;
|
|
||||||
}
|
|
@@ -1,209 +0,0 @@
|
|||||||
From 72016df62985637e59f075e25233d8ca942eb391 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:18 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Drop min and max cached frequencies
|
|
||||||
|
|
||||||
Use the perf_to_freq helpers to calculate this on the fly.
|
|
||||||
As the members are no longer cached add an extra check into
|
|
||||||
amd_pstate_epp_update_limit() to avoid unnecessary calls in
|
|
||||||
amd_pstate_update_min_max_limit().
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 14 +++++------
|
|
||||||
drivers/cpufreq/amd-pstate.c | 43 +++++++++------------------------
|
|
||||||
drivers/cpufreq/amd-pstate.h | 9 ++-----
|
|
||||||
3 files changed, 20 insertions(+), 46 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -214,14 +214,14 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
break;
|
|
||||||
cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
- if (!((cpudata->max_freq >= cpudata->nominal_freq) &&
|
|
||||||
+ if (!((policy->cpuinfo.max_freq >= cpudata->nominal_freq) &&
|
|
||||||
(cpudata->nominal_freq > cpudata->lowest_nonlinear_freq) &&
|
|
||||||
- (cpudata->lowest_nonlinear_freq > cpudata->min_freq) &&
|
|
||||||
- (cpudata->min_freq > 0))) {
|
|
||||||
+ (cpudata->lowest_nonlinear_freq > policy->cpuinfo.min_freq) &&
|
|
||||||
+ (policy->cpuinfo.min_freq > 0))) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d max=%d >= nominal=%d > lowest_nonlinear=%d > min=%d > 0, the formula is incorrect!\n",
|
|
||||||
- __func__, cpu, cpudata->max_freq, cpudata->nominal_freq,
|
|
||||||
- cpudata->lowest_nonlinear_freq, cpudata->min_freq);
|
|
||||||
+ __func__, cpu, policy->cpuinfo.max_freq, cpudata->nominal_freq,
|
|
||||||
+ cpudata->lowest_nonlinear_freq, policy->cpuinfo.min_freq);
|
|
||||||
goto skip_test;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -233,13 +233,13 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpudata->boost_supported) {
|
|
||||||
- if ((policy->max == cpudata->max_freq) ||
|
|
||||||
+ if ((policy->max == policy->cpuinfo.max_freq) ||
|
|
||||||
(policy->max == cpudata->nominal_freq))
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
else {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d policy_max=%d should be equal cpu_max=%d or cpu_nominal=%d !\n",
|
|
||||||
- __func__, cpu, policy->max, cpudata->max_freq,
|
|
||||||
+ __func__, cpu, policy->max, policy->cpuinfo.max_freq,
|
|
||||||
cpudata->nominal_freq);
|
|
||||||
goto skip_test;
|
|
||||||
}
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -717,7 +717,7 @@ static int amd_pstate_cpu_boost_update(s
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
nominal_freq = READ_ONCE(cpudata->nominal_freq);
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_freq);
|
|
||||||
+ max_freq = perf_to_freq(cpudata, READ_ONCE(cpudata->highest_perf));
|
|
||||||
|
|
||||||
if (on)
|
|
||||||
policy->cpuinfo.max_freq = max_freq;
|
|
||||||
@@ -917,13 +917,10 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
nominal_freq *= 1000;
|
|
||||||
|
|
||||||
WRITE_ONCE(cpudata->nominal_freq, nominal_freq);
|
|
||||||
- WRITE_ONCE(cpudata->min_freq, min_freq);
|
|
||||||
|
|
||||||
max_freq = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
lowest_nonlinear_freq = perf_to_freq(cpudata, cpudata->lowest_nonlinear_perf);
|
|
||||||
-
|
|
||||||
WRITE_ONCE(cpudata->lowest_nonlinear_freq, lowest_nonlinear_freq);
|
|
||||||
- WRITE_ONCE(cpudata->max_freq, max_freq);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Below values need to be initialized correctly, otherwise driver will fail to load
|
|
||||||
@@ -948,9 +945,9 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
|
|
||||||
static int amd_pstate_cpu_init(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- int min_freq, max_freq, ret;
|
|
||||||
- struct device *dev;
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
+ struct device *dev;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Resetting PERF_CTL_MSR will put the CPU in P0 frequency,
|
|
||||||
@@ -981,17 +978,11 @@ static int amd_pstate_cpu_init(struct cp
|
|
||||||
if (ret)
|
|
||||||
goto free_cpudata1;
|
|
||||||
|
|
||||||
- min_freq = READ_ONCE(cpudata->min_freq);
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_freq);
|
|
||||||
-
|
|
||||||
policy->cpuinfo.transition_latency = amd_pstate_get_transition_latency(policy->cpu);
|
|
||||||
policy->transition_delay_us = amd_pstate_get_transition_delay_us(policy->cpu);
|
|
||||||
|
|
||||||
- policy->min = min_freq;
|
|
||||||
- policy->max = max_freq;
|
|
||||||
-
|
|
||||||
- policy->cpuinfo.min_freq = min_freq;
|
|
||||||
- policy->cpuinfo.max_freq = max_freq;
|
|
||||||
+ policy->cpuinfo.min_freq = policy->min = perf_to_freq(cpudata, cpudata->lowest_perf);
|
|
||||||
+ policy->cpuinfo.max_freq = policy->max = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
|
|
||||||
policy->boost_enabled = READ_ONCE(cpudata->boost_supported);
|
|
||||||
|
|
||||||
@@ -1015,9 +1006,6 @@ static int amd_pstate_cpu_init(struct cp
|
|
||||||
goto free_cpudata2;
|
|
||||||
}
|
|
||||||
|
|
||||||
- cpudata->max_limit_freq = max_freq;
|
|
||||||
- cpudata->min_limit_freq = min_freq;
|
|
||||||
-
|
|
||||||
policy->driver_data = cpudata;
|
|
||||||
|
|
||||||
if (!current_pstate_driver->adjust_perf)
|
|
||||||
@@ -1075,14 +1063,10 @@ static int amd_pstate_cpu_suspend(struct
|
|
||||||
static ssize_t show_amd_pstate_max_freq(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- int max_freq;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_freq);
|
|
||||||
- if (max_freq < 0)
|
|
||||||
- return max_freq;
|
|
||||||
|
|
||||||
- return sysfs_emit(buf, "%u\n", max_freq);
|
|
||||||
+ return sysfs_emit(buf, "%u\n", perf_to_freq(cpudata, READ_ONCE(cpudata->highest_perf)));
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t show_amd_pstate_lowest_nonlinear_freq(struct cpufreq_policy *policy,
|
|
||||||
@@ -1440,10 +1424,10 @@ static bool amd_pstate_acpi_pm_profile_u
|
|
||||||
|
|
||||||
static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- int min_freq, max_freq, ret;
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
struct device *dev;
|
|
||||||
u64 value;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Resetting PERF_CTL_MSR will put the CPU in P0 frequency,
|
|
||||||
@@ -1474,19 +1458,13 @@ static int amd_pstate_epp_cpu_init(struc
|
|
||||||
if (ret)
|
|
||||||
goto free_cpudata1;
|
|
||||||
|
|
||||||
- min_freq = READ_ONCE(cpudata->min_freq);
|
|
||||||
- max_freq = READ_ONCE(cpudata->max_freq);
|
|
||||||
-
|
|
||||||
- policy->cpuinfo.min_freq = min_freq;
|
|
||||||
- policy->cpuinfo.max_freq = max_freq;
|
|
||||||
+ policy->cpuinfo.min_freq = policy->min = perf_to_freq(cpudata, cpudata->lowest_perf);
|
|
||||||
+ policy->cpuinfo.max_freq = policy->max = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
/* It will be updated by governor */
|
|
||||||
policy->cur = policy->cpuinfo.min_freq;
|
|
||||||
|
|
||||||
policy->driver_data = cpudata;
|
|
||||||
|
|
||||||
- policy->min = policy->cpuinfo.min_freq;
|
|
||||||
- policy->max = policy->cpuinfo.max_freq;
|
|
||||||
-
|
|
||||||
policy->boost_enabled = READ_ONCE(cpudata->boost_supported);
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -1544,7 +1522,8 @@ static int amd_pstate_epp_update_limit(s
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
u8 epp;
|
|
||||||
|
|
||||||
- amd_pstate_update_min_max_limit(policy);
|
|
||||||
+ if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
+ amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
|
|
||||||
epp = 0;
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.h
|
|
||||||
@@ -46,8 +46,6 @@ struct amd_aperf_mperf {
|
|
||||||
* @max_limit_perf: Cached value of the performance corresponding to policy->max
|
|
||||||
* @min_limit_freq: Cached value of policy->min (in khz)
|
|
||||||
* @max_limit_freq: Cached value of policy->max (in khz)
|
|
||||||
- * @max_freq: the frequency (in khz) that mapped to highest_perf
|
|
||||||
- * @min_freq: the frequency (in khz) that mapped to lowest_perf
|
|
||||||
* @nominal_freq: the frequency (in khz) that mapped to nominal_perf
|
|
||||||
* @lowest_nonlinear_freq: the frequency (in khz) that mapped to lowest_nonlinear_perf
|
|
||||||
* @cur: Difference of Aperf/Mperf/tsc count between last and current sample
|
|
||||||
@@ -77,11 +75,8 @@ struct amd_cpudata {
|
|
||||||
u8 prefcore_ranking;
|
|
||||||
u8 min_limit_perf;
|
|
||||||
u8 max_limit_perf;
|
|
||||||
- u32 min_limit_freq;
|
|
||||||
- u32 max_limit_freq;
|
|
||||||
-
|
|
||||||
- u32 max_freq;
|
|
||||||
- u32 min_freq;
|
|
||||||
+ u32 min_limit_freq;
|
|
||||||
+ u32 max_limit_freq;
|
|
||||||
u32 nominal_freq;
|
|
||||||
u32 lowest_nonlinear_freq;
|
|
||||||
|
|
@@ -1,611 +0,0 @@
|
|||||||
From 289c4432443c54497bfe75410a516ca24475504d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:19 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Move perf values into a union
|
|
||||||
|
|
||||||
By storing perf values in a union all the writes and reads can
|
|
||||||
be done atomically, removing the need for some concurrency protections.
|
|
||||||
|
|
||||||
While making this change, also drop the cached frequency values,
|
|
||||||
using inline helpers to calculate them on demand from perf value.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 18 +--
|
|
||||||
drivers/cpufreq/amd-pstate.c | 205 ++++++++++++++++++--------------
|
|
||||||
drivers/cpufreq/amd-pstate.h | 51 +++++---
|
|
||||||
3 files changed, 158 insertions(+), 116 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -129,6 +129,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
struct cpufreq_policy *policy = NULL;
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
+ union perf_cached cur_perf;
|
|
||||||
|
|
||||||
for_each_possible_cpu(cpu) {
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
@@ -162,19 +163,20 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
lowest_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (highest_perf != READ_ONCE(cpudata->highest_perf) && !cpudata->hw_prefcore) {
|
|
||||||
+ cur_perf = READ_ONCE(cpudata->perf);
|
|
||||||
+ if (highest_perf != cur_perf.highest_perf && !cpudata->hw_prefcore) {
|
|
||||||
pr_err("%s cpu%d highest=%d %d highest perf doesn't match\n",
|
|
||||||
- __func__, cpu, highest_perf, cpudata->highest_perf);
|
|
||||||
+ __func__, cpu, highest_perf, cur_perf.highest_perf);
|
|
||||||
goto skip_test;
|
|
||||||
}
|
|
||||||
- if ((nominal_perf != READ_ONCE(cpudata->nominal_perf)) ||
|
|
||||||
- (lowest_nonlinear_perf != READ_ONCE(cpudata->lowest_nonlinear_perf)) ||
|
|
||||||
- (lowest_perf != READ_ONCE(cpudata->lowest_perf))) {
|
|
||||||
+ if (nominal_perf != cur_perf.nominal_perf ||
|
|
||||||
+ (lowest_nonlinear_perf != cur_perf.lowest_nonlinear_perf) ||
|
|
||||||
+ (lowest_perf != cur_perf.lowest_perf)) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d nominal=%d %d lowest_nonlinear=%d %d lowest=%d %d, they should be equal!\n",
|
|
||||||
- __func__, cpu, nominal_perf, cpudata->nominal_perf,
|
|
||||||
- lowest_nonlinear_perf, cpudata->lowest_nonlinear_perf,
|
|
||||||
- lowest_perf, cpudata->lowest_perf);
|
|
||||||
+ __func__, cpu, nominal_perf, cur_perf.nominal_perf,
|
|
||||||
+ lowest_nonlinear_perf, cur_perf.lowest_nonlinear_perf,
|
|
||||||
+ lowest_perf, cur_perf.lowest_perf);
|
|
||||||
goto skip_test;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -142,18 +142,17 @@ static struct quirk_entry quirk_amd_7k62
|
|
||||||
.lowest_freq = 550,
|
|
||||||
};
|
|
||||||
|
|
||||||
-static inline u8 freq_to_perf(struct amd_cpudata *cpudata, unsigned int freq_val)
|
|
||||||
+static inline u8 freq_to_perf(union perf_cached perf, u32 nominal_freq, unsigned int freq_val)
|
|
||||||
{
|
|
||||||
- u32 perf_val = DIV_ROUND_UP_ULL((u64)freq_val * cpudata->nominal_perf,
|
|
||||||
- cpudata->nominal_freq);
|
|
||||||
+ u32 perf_val = DIV_ROUND_UP_ULL((u64)freq_val * perf.nominal_perf, nominal_freq);
|
|
||||||
|
|
||||||
- return (u8)clamp(perf_val, cpudata->lowest_perf, cpudata->highest_perf);
|
|
||||||
+ return (u8)clamp(perf_val, perf.lowest_perf, perf.highest_perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline u32 perf_to_freq(struct amd_cpudata *cpudata, u8 perf_val)
|
|
||||||
+static inline u32 perf_to_freq(union perf_cached perf, u32 nominal_freq, u8 perf_val)
|
|
||||||
{
|
|
||||||
- return DIV_ROUND_UP_ULL((u64)cpudata->nominal_freq * perf_val,
|
|
||||||
- cpudata->nominal_perf);
|
|
||||||
+ return DIV_ROUND_UP_ULL((u64)nominal_freq * perf_val,
|
|
||||||
+ perf.nominal_perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int __init dmi_matched_7k62_bios_bug(const struct dmi_system_id *dmi)
|
|
||||||
@@ -347,7 +346,9 @@ static int amd_pstate_set_energy_pref_in
|
|
||||||
}
|
|
||||||
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, cpudata->highest_perf,
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
epp,
|
|
||||||
FIELD_GET(AMD_CPPC_MIN_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
FIELD_GET(AMD_CPPC_MAX_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
@@ -425,6 +426,7 @@ static inline int amd_pstate_cppc_enable
|
|
||||||
|
|
||||||
static int msr_init_perf(struct amd_cpudata *cpudata)
|
|
||||||
{
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
u64 cap1, numerator;
|
|
||||||
|
|
||||||
int ret = rdmsrl_safe_on_cpu(cpudata->cpu, MSR_AMD_CPPC_CAP1,
|
|
||||||
@@ -436,19 +438,21 @@ static int msr_init_perf(struct amd_cpud
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
- WRITE_ONCE(cpudata->highest_perf, numerator);
|
|
||||||
- WRITE_ONCE(cpudata->max_limit_perf, numerator);
|
|
||||||
- WRITE_ONCE(cpudata->nominal_perf, AMD_CPPC_NOMINAL_PERF(cap1));
|
|
||||||
- WRITE_ONCE(cpudata->lowest_nonlinear_perf, AMD_CPPC_LOWNONLIN_PERF(cap1));
|
|
||||||
- WRITE_ONCE(cpudata->lowest_perf, AMD_CPPC_LOWEST_PERF(cap1));
|
|
||||||
+ perf.highest_perf = numerator;
|
|
||||||
+ perf.max_limit_perf = numerator;
|
|
||||||
+ perf.min_limit_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
+ perf.nominal_perf = AMD_CPPC_NOMINAL_PERF(cap1);
|
|
||||||
+ perf.lowest_nonlinear_perf = AMD_CPPC_LOWNONLIN_PERF(cap1);
|
|
||||||
+ perf.lowest_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
+ WRITE_ONCE(cpudata->perf, perf);
|
|
||||||
WRITE_ONCE(cpudata->prefcore_ranking, AMD_CPPC_HIGHEST_PERF(cap1));
|
|
||||||
- WRITE_ONCE(cpudata->min_limit_perf, AMD_CPPC_LOWEST_PERF(cap1));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int shmem_init_perf(struct amd_cpudata *cpudata)
|
|
||||||
{
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
u64 numerator;
|
|
||||||
|
|
||||||
int ret = cppc_get_perf_caps(cpudata->cpu, &cppc_perf);
|
|
||||||
@@ -459,14 +463,14 @@ static int shmem_init_perf(struct amd_cp
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
- WRITE_ONCE(cpudata->highest_perf, numerator);
|
|
||||||
- WRITE_ONCE(cpudata->max_limit_perf, numerator);
|
|
||||||
- WRITE_ONCE(cpudata->nominal_perf, cppc_perf.nominal_perf);
|
|
||||||
- WRITE_ONCE(cpudata->lowest_nonlinear_perf,
|
|
||||||
- cppc_perf.lowest_nonlinear_perf);
|
|
||||||
- WRITE_ONCE(cpudata->lowest_perf, cppc_perf.lowest_perf);
|
|
||||||
+ perf.highest_perf = numerator;
|
|
||||||
+ perf.max_limit_perf = numerator;
|
|
||||||
+ perf.min_limit_perf = cppc_perf.lowest_perf;
|
|
||||||
+ perf.nominal_perf = cppc_perf.nominal_perf;
|
|
||||||
+ perf.lowest_nonlinear_perf = cppc_perf.lowest_nonlinear_perf;
|
|
||||||
+ perf.lowest_perf = cppc_perf.lowest_perf;
|
|
||||||
+ WRITE_ONCE(cpudata->perf, perf);
|
|
||||||
WRITE_ONCE(cpudata->prefcore_ranking, cppc_perf.highest_perf);
|
|
||||||
- WRITE_ONCE(cpudata->min_limit_perf, cppc_perf.lowest_perf);
|
|
||||||
|
|
||||||
if (cppc_state == AMD_PSTATE_ACTIVE)
|
|
||||||
return 0;
|
|
||||||
@@ -549,14 +553,14 @@ static void amd_pstate_update(struct amd
|
|
||||||
u8 des_perf, u8 max_perf, bool fast_switch, int gov_flags)
|
|
||||||
{
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpudata->cpu);
|
|
||||||
- u8 nominal_perf = READ_ONCE(cpudata->nominal_perf);
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
if (!policy)
|
|
||||||
return;
|
|
||||||
|
|
||||||
des_perf = clamp_t(u8, des_perf, min_perf, max_perf);
|
|
||||||
|
|
||||||
- policy->cur = perf_to_freq(cpudata, des_perf);
|
|
||||||
+ policy->cur = perf_to_freq(perf, cpudata->nominal_freq, des_perf);
|
|
||||||
|
|
||||||
if ((cppc_state == AMD_PSTATE_GUIDED) && (gov_flags & CPUFREQ_GOV_DYNAMIC_SWITCHING)) {
|
|
||||||
min_perf = des_perf;
|
|
||||||
@@ -565,7 +569,7 @@ static void amd_pstate_update(struct amd
|
|
||||||
|
|
||||||
/* limit the max perf when core performance boost feature is disabled */
|
|
||||||
if (!cpudata->boost_supported)
|
|
||||||
- max_perf = min_t(u8, nominal_perf, max_perf);
|
|
||||||
+ max_perf = min_t(u8, perf.nominal_perf, max_perf);
|
|
||||||
|
|
||||||
if (trace_amd_pstate_perf_enabled() && amd_pstate_sample(cpudata)) {
|
|
||||||
trace_amd_pstate_perf(min_perf, des_perf, max_perf, cpudata->freq,
|
|
||||||
@@ -602,39 +606,41 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
|
|
||||||
+static void amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- u8 max_limit_perf, min_limit_perf;
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
- max_limit_perf = freq_to_perf(cpudata, policy->max);
|
|
||||||
- min_limit_perf = freq_to_perf(cpudata, policy->min);
|
|
||||||
+ perf.max_limit_perf = freq_to_perf(perf, cpudata->nominal_freq, policy->max);
|
|
||||||
+ perf.min_limit_perf = freq_to_perf(perf, cpudata->nominal_freq, policy->min);
|
|
||||||
|
|
||||||
if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE)
|
|
||||||
- min_limit_perf = min(cpudata->nominal_perf, max_limit_perf);
|
|
||||||
+ perf.min_limit_perf = min(perf.nominal_perf, perf.max_limit_perf);
|
|
||||||
|
|
||||||
- WRITE_ONCE(cpudata->max_limit_perf, max_limit_perf);
|
|
||||||
- WRITE_ONCE(cpudata->min_limit_perf, min_limit_perf);
|
|
||||||
WRITE_ONCE(cpudata->max_limit_freq, policy->max);
|
|
||||||
WRITE_ONCE(cpudata->min_limit_freq, policy->min);
|
|
||||||
-
|
|
||||||
- return 0;
|
|
||||||
+ WRITE_ONCE(cpudata->perf, perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_update_freq(struct cpufreq_policy *policy,
|
|
||||||
unsigned int target_freq, bool fast_switch)
|
|
||||||
{
|
|
||||||
struct cpufreq_freqs freqs;
|
|
||||||
- struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
u8 des_perf;
|
|
||||||
|
|
||||||
+ cpudata = policy->driver_data;
|
|
||||||
+
|
|
||||||
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
freqs.old = policy->cur;
|
|
||||||
freqs.new = target_freq;
|
|
||||||
|
|
||||||
- des_perf = freq_to_perf(cpudata, target_freq);
|
|
||||||
+ des_perf = freq_to_perf(perf, cpudata->nominal_freq, target_freq);
|
|
||||||
|
|
||||||
WARN_ON(fast_switch && !policy->fast_switch_enabled);
|
|
||||||
/*
|
|
||||||
@@ -645,8 +651,8 @@ static int amd_pstate_update_freq(struct
|
|
||||||
if (!fast_switch)
|
|
||||||
cpufreq_freq_transition_begin(policy, &freqs);
|
|
||||||
|
|
||||||
- amd_pstate_update(cpudata, cpudata->min_limit_perf, des_perf,
|
|
||||||
- cpudata->max_limit_perf, fast_switch,
|
|
||||||
+ amd_pstate_update(cpudata, perf.min_limit_perf, des_perf,
|
|
||||||
+ perf.max_limit_perf, fast_switch,
|
|
||||||
policy->governor->flags);
|
|
||||||
|
|
||||||
if (!fast_switch)
|
|
||||||
@@ -675,9 +681,10 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
unsigned long target_perf,
|
|
||||||
unsigned long capacity)
|
|
||||||
{
|
|
||||||
- u8 max_perf, min_perf, des_perf, cap_perf, min_limit_perf;
|
|
||||||
+ u8 max_perf, min_perf, des_perf, cap_perf;
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = cpufreq_cpu_get(cpu);
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
|
|
||||||
if (!policy)
|
|
||||||
return;
|
|
||||||
@@ -687,8 +694,8 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
amd_pstate_update_min_max_limit(policy);
|
|
||||||
|
|
||||||
- cap_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
- min_limit_perf = READ_ONCE(cpudata->min_limit_perf);
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
+ cap_perf = perf.highest_perf;
|
|
||||||
|
|
||||||
des_perf = cap_perf;
|
|
||||||
if (target_perf < capacity)
|
|
||||||
@@ -699,10 +706,10 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
else
|
|
||||||
min_perf = cap_perf;
|
|
||||||
|
|
||||||
- if (min_perf < min_limit_perf)
|
|
||||||
- min_perf = min_limit_perf;
|
|
||||||
+ if (min_perf < perf.min_limit_perf)
|
|
||||||
+ min_perf = perf.min_limit_perf;
|
|
||||||
|
|
||||||
- max_perf = cpudata->max_limit_perf;
|
|
||||||
+ max_perf = perf.max_limit_perf;
|
|
||||||
if (max_perf < min_perf)
|
|
||||||
max_perf = min_perf;
|
|
||||||
|
|
||||||
@@ -713,11 +720,12 @@ static void amd_pstate_adjust_perf(unsig
|
|
||||||
static int amd_pstate_cpu_boost_update(struct cpufreq_policy *policy, bool on)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
u32 nominal_freq, max_freq;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
nominal_freq = READ_ONCE(cpudata->nominal_freq);
|
|
||||||
- max_freq = perf_to_freq(cpudata, READ_ONCE(cpudata->highest_perf));
|
|
||||||
+ max_freq = perf_to_freq(perf, cpudata->nominal_freq, perf.highest_perf);
|
|
||||||
|
|
||||||
if (on)
|
|
||||||
policy->cpuinfo.max_freq = max_freq;
|
|
||||||
@@ -882,30 +890,30 @@ static u32 amd_pstate_get_transition_lat
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
- * amd_pstate_init_freq: Initialize the max_freq, min_freq,
|
|
||||||
- * nominal_freq and lowest_nonlinear_freq for
|
|
||||||
- * the @cpudata object.
|
|
||||||
+ * amd_pstate_init_freq: Initialize the nominal_freq and lowest_nonlinear_freq
|
|
||||||
+ * for the @cpudata object.
|
|
||||||
*
|
|
||||||
- * Requires: highest_perf, lowest_perf, nominal_perf and
|
|
||||||
- * lowest_nonlinear_perf members of @cpudata to be
|
|
||||||
- * initialized.
|
|
||||||
+ * Requires: all perf members of @cpudata to be initialized.
|
|
||||||
*
|
|
||||||
- * Returns 0 on success, non-zero value on failure.
|
|
||||||
+ * Returns 0 on success, non-zero value on failure.
|
|
||||||
*/
|
|
||||||
static int amd_pstate_init_freq(struct amd_cpudata *cpudata)
|
|
||||||
{
|
|
||||||
- int ret;
|
|
||||||
- u32 min_freq, max_freq;
|
|
||||||
- u32 nominal_freq, lowest_nonlinear_freq;
|
|
||||||
+ u32 min_freq, max_freq, nominal_freq, lowest_nonlinear_freq;
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
ret = cppc_get_perf_caps(cpudata->cpu, &cppc_perf);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
- if (quirks && quirks->lowest_freq)
|
|
||||||
+ if (quirks && quirks->lowest_freq) {
|
|
||||||
min_freq = quirks->lowest_freq;
|
|
||||||
- else
|
|
||||||
+ perf.lowest_perf = freq_to_perf(perf, nominal_freq, min_freq);
|
|
||||||
+ WRITE_ONCE(cpudata->perf, perf);
|
|
||||||
+ } else
|
|
||||||
min_freq = cppc_perf.lowest_freq;
|
|
||||||
|
|
||||||
if (quirks && quirks->nominal_freq)
|
|
||||||
@@ -918,8 +926,8 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
|
|
||||||
WRITE_ONCE(cpudata->nominal_freq, nominal_freq);
|
|
||||||
|
|
||||||
- max_freq = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
- lowest_nonlinear_freq = perf_to_freq(cpudata, cpudata->lowest_nonlinear_perf);
|
|
||||||
+ max_freq = perf_to_freq(perf, nominal_freq, perf.highest_perf);
|
|
||||||
+ lowest_nonlinear_freq = perf_to_freq(perf, nominal_freq, perf.lowest_nonlinear_perf);
|
|
||||||
WRITE_ONCE(cpudata->lowest_nonlinear_freq, lowest_nonlinear_freq);
|
|
||||||
|
|
||||||
/**
|
|
||||||
@@ -946,6 +954,7 @@ static int amd_pstate_init_freq(struct a
|
|
||||||
static int amd_pstate_cpu_init(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
struct device *dev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
@@ -981,8 +990,14 @@ static int amd_pstate_cpu_init(struct cp
|
|
||||||
policy->cpuinfo.transition_latency = amd_pstate_get_transition_latency(policy->cpu);
|
|
||||||
policy->transition_delay_us = amd_pstate_get_transition_delay_us(policy->cpu);
|
|
||||||
|
|
||||||
- policy->cpuinfo.min_freq = policy->min = perf_to_freq(cpudata, cpudata->lowest_perf);
|
|
||||||
- policy->cpuinfo.max_freq = policy->max = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
+ policy->cpuinfo.min_freq = policy->min = perf_to_freq(perf,
|
|
||||||
+ cpudata->nominal_freq,
|
|
||||||
+ perf.lowest_perf);
|
|
||||||
+ policy->cpuinfo.max_freq = policy->max = perf_to_freq(perf,
|
|
||||||
+ cpudata->nominal_freq,
|
|
||||||
+ perf.highest_perf);
|
|
||||||
|
|
||||||
policy->boost_enabled = READ_ONCE(cpudata->boost_supported);
|
|
||||||
|
|
||||||
@@ -1063,23 +1078,27 @@ static int amd_pstate_cpu_suspend(struct
|
|
||||||
static ssize_t show_amd_pstate_max_freq(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
|
|
||||||
+ cpudata = policy->driver_data;
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
- return sysfs_emit(buf, "%u\n", perf_to_freq(cpudata, READ_ONCE(cpudata->highest_perf)));
|
|
||||||
+ return sysfs_emit(buf, "%u\n",
|
|
||||||
+ perf_to_freq(perf, cpudata->nominal_freq, perf.highest_perf));
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t show_amd_pstate_lowest_nonlinear_freq(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- int freq;
|
|
||||||
- struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
|
|
||||||
- freq = READ_ONCE(cpudata->lowest_nonlinear_freq);
|
|
||||||
- if (freq < 0)
|
|
||||||
- return freq;
|
|
||||||
+ cpudata = policy->driver_data;
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
- return sysfs_emit(buf, "%u\n", freq);
|
|
||||||
+ return sysfs_emit(buf, "%u\n",
|
|
||||||
+ perf_to_freq(perf, cpudata->nominal_freq, perf.lowest_nonlinear_perf));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -1089,12 +1108,11 @@ static ssize_t show_amd_pstate_lowest_no
|
|
||||||
static ssize_t show_amd_pstate_highest_perf(struct cpufreq_policy *policy,
|
|
||||||
char *buf)
|
|
||||||
{
|
|
||||||
- u8 perf;
|
|
||||||
- struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
- perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
+ cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
- return sysfs_emit(buf, "%u\n", perf);
|
|
||||||
+ return sysfs_emit(buf, "%u\n", cpudata->perf.highest_perf);
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t show_amd_pstate_prefcore_ranking(struct cpufreq_policy *policy,
|
|
||||||
@@ -1425,6 +1443,7 @@ static bool amd_pstate_acpi_pm_profile_u
|
|
||||||
static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
struct device *dev;
|
|
||||||
u64 value;
|
|
||||||
int ret;
|
|
||||||
@@ -1458,8 +1477,15 @@ static int amd_pstate_epp_cpu_init(struc
|
|
||||||
if (ret)
|
|
||||||
goto free_cpudata1;
|
|
||||||
|
|
||||||
- policy->cpuinfo.min_freq = policy->min = perf_to_freq(cpudata, cpudata->lowest_perf);
|
|
||||||
- policy->cpuinfo.max_freq = policy->max = perf_to_freq(cpudata, cpudata->highest_perf);
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
+ policy->cpuinfo.min_freq = policy->min = perf_to_freq(perf,
|
|
||||||
+ cpudata->nominal_freq,
|
|
||||||
+ perf.lowest_perf);
|
|
||||||
+ policy->cpuinfo.max_freq = policy->max = perf_to_freq(perf,
|
|
||||||
+ cpudata->nominal_freq,
|
|
||||||
+ perf.highest_perf);
|
|
||||||
+
|
|
||||||
/* It will be updated by governor */
|
|
||||||
policy->cur = policy->cpuinfo.min_freq;
|
|
||||||
|
|
||||||
@@ -1520,6 +1546,7 @@ static void amd_pstate_epp_cpu_exit(stru
|
|
||||||
static int amd_pstate_epp_update_limit(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
u8 epp;
|
|
||||||
|
|
||||||
if (policy->min != cpudata->min_limit_freq || policy->max != cpudata->max_limit_freq)
|
|
||||||
@@ -1530,15 +1557,16 @@ static int amd_pstate_epp_update_limit(s
|
|
||||||
else
|
|
||||||
epp = READ_ONCE(cpudata->epp_cached);
|
|
||||||
|
|
||||||
+ perf = READ_ONCE(cpudata->perf);
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, cpudata->highest_perf, epp,
|
|
||||||
- cpudata->min_limit_perf,
|
|
||||||
- cpudata->max_limit_perf,
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf, epp,
|
|
||||||
+ perf.min_limit_perf,
|
|
||||||
+ perf.max_limit_perf,
|
|
||||||
policy->boost_enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
- return amd_pstate_update_perf(cpudata, cpudata->min_limit_perf, 0U,
|
|
||||||
- cpudata->max_limit_perf, epp, false);
|
|
||||||
+ return amd_pstate_update_perf(cpudata, perf.min_limit_perf, 0U,
|
|
||||||
+ perf.max_limit_perf, epp, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_epp_set_policy(struct cpufreq_policy *policy)
|
|
||||||
@@ -1570,20 +1598,18 @@ static int amd_pstate_epp_set_policy(str
|
|
||||||
static int amd_pstate_epp_reenable(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- u8 max_perf;
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = amd_pstate_cppc_enable(true);
|
|
||||||
if (ret)
|
|
||||||
pr_err("failed to enable amd pstate during resume, return %d\n", ret);
|
|
||||||
|
|
||||||
- max_perf = READ_ONCE(cpudata->highest_perf);
|
|
||||||
-
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, cpudata->highest_perf,
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
cpudata->epp_cached,
|
|
||||||
FIELD_GET(AMD_CPPC_MIN_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
- max_perf, policy->boost_enabled);
|
|
||||||
+ perf.highest_perf, policy->boost_enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
return amd_pstate_epp_update_limit(policy);
|
|
||||||
@@ -1607,22 +1633,21 @@ static int amd_pstate_epp_cpu_online(str
|
|
||||||
static int amd_pstate_epp_cpu_offline(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- u8 min_perf;
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
|
|
||||||
if (cpudata->suspended)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- min_perf = READ_ONCE(cpudata->lowest_perf);
|
|
||||||
-
|
|
||||||
guard(mutex)(&amd_pstate_limits_lock);
|
|
||||||
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, cpudata->highest_perf,
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
AMD_CPPC_EPP_BALANCE_POWERSAVE,
|
|
||||||
- min_perf, min_perf, policy->boost_enabled);
|
|
||||||
+ perf.lowest_perf, perf.lowest_perf,
|
|
||||||
+ policy->boost_enabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
- return amd_pstate_update_perf(cpudata, min_perf, 0, min_perf,
|
|
||||||
+ return amd_pstate_update_perf(cpudata, perf.lowest_perf, 0, perf.lowest_perf,
|
|
||||||
AMD_CPPC_EPP_BALANCE_POWERSAVE, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.h
|
|
||||||
@@ -13,6 +13,36 @@
|
|
||||||
/*********************************************************************
|
|
||||||
* AMD P-state INTERFACE *
|
|
||||||
*********************************************************************/
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * union perf_cached - A union to cache performance-related data.
|
|
||||||
+ * @highest_perf: the maximum performance an individual processor may reach,
|
|
||||||
+ * assuming ideal conditions
|
|
||||||
+ * For platforms that support the preferred core feature, the highest_perf value maybe
|
|
||||||
+ * configured to any value in the range 166-255 by the firmware (because the preferred
|
|
||||||
+ * core ranking is encoded in the highest_perf value). To maintain consistency across
|
|
||||||
+ * all platforms, we split the highest_perf and preferred core ranking values into
|
|
||||||
+ * cpudata->perf.highest_perf and cpudata->prefcore_ranking.
|
|
||||||
+ * @nominal_perf: the maximum sustained performance level of the processor,
|
|
||||||
+ * assuming ideal operating conditions
|
|
||||||
+ * @lowest_nonlinear_perf: the lowest performance level at which nonlinear power
|
|
||||||
+ * savings are achieved
|
|
||||||
+ * @lowest_perf: the absolute lowest performance level of the processor
|
|
||||||
+ * @min_limit_perf: Cached value of the performance corresponding to policy->min
|
|
||||||
+ * @max_limit_perf: Cached value of the performance corresponding to policy->max
|
|
||||||
+ */
|
|
||||||
+union perf_cached {
|
|
||||||
+ struct {
|
|
||||||
+ u8 highest_perf;
|
|
||||||
+ u8 nominal_perf;
|
|
||||||
+ u8 lowest_nonlinear_perf;
|
|
||||||
+ u8 lowest_perf;
|
|
||||||
+ u8 min_limit_perf;
|
|
||||||
+ u8 max_limit_perf;
|
|
||||||
+ };
|
|
||||||
+ u64 val;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
/**
|
|
||||||
* struct amd_aperf_mperf
|
|
||||||
* @aperf: actual performance frequency clock count
|
|
||||||
@@ -30,20 +60,9 @@ struct amd_aperf_mperf {
|
|
||||||
* @cpu: CPU number
|
|
||||||
* @req: constraint request to apply
|
|
||||||
* @cppc_req_cached: cached performance request hints
|
|
||||||
- * @highest_perf: the maximum performance an individual processor may reach,
|
|
||||||
- * assuming ideal conditions
|
|
||||||
- * For platforms that do not support the preferred core feature, the
|
|
||||||
- * highest_pef may be configured with 166 or 255, to avoid max frequency
|
|
||||||
- * calculated wrongly. we take the fixed value as the highest_perf.
|
|
||||||
- * @nominal_perf: the maximum sustained performance level of the processor,
|
|
||||||
- * assuming ideal operating conditions
|
|
||||||
- * @lowest_nonlinear_perf: the lowest performance level at which nonlinear power
|
|
||||||
- * savings are achieved
|
|
||||||
- * @lowest_perf: the absolute lowest performance level of the processor
|
|
||||||
+ * @perf: cached performance-related data
|
|
||||||
* @prefcore_ranking: the preferred core ranking, the higher value indicates a higher
|
|
||||||
* priority.
|
|
||||||
- * @min_limit_perf: Cached value of the performance corresponding to policy->min
|
|
||||||
- * @max_limit_perf: Cached value of the performance corresponding to policy->max
|
|
||||||
* @min_limit_freq: Cached value of policy->min (in khz)
|
|
||||||
* @max_limit_freq: Cached value of policy->max (in khz)
|
|
||||||
* @nominal_freq: the frequency (in khz) that mapped to nominal_perf
|
|
||||||
@@ -68,13 +87,9 @@ struct amd_cpudata {
|
|
||||||
struct freq_qos_request req[2];
|
|
||||||
u64 cppc_req_cached;
|
|
||||||
|
|
||||||
- u8 highest_perf;
|
|
||||||
- u8 nominal_perf;
|
|
||||||
- u8 lowest_nonlinear_perf;
|
|
||||||
- u8 lowest_perf;
|
|
||||||
+ union perf_cached perf;
|
|
||||||
+
|
|
||||||
u8 prefcore_ranking;
|
|
||||||
- u8 min_limit_perf;
|
|
||||||
- u8 max_limit_perf;
|
|
||||||
u32 min_limit_freq;
|
|
||||||
u32 max_limit_freq;
|
|
||||||
u32 nominal_freq;
|
|
@@ -1,89 +0,0 @@
|
|||||||
From 34925ac1038d19197f0a2ac8574496e77645fdf5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:20 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Overhaul locking
|
|
||||||
|
|
||||||
amd_pstate_cpu_boost_update() and refresh_frequency_limits() both
|
|
||||||
update the policy state and have nothing to do with the amd-pstate
|
|
||||||
driver itself.
|
|
||||||
|
|
||||||
A global "limits" lock doesn't make sense because each CPU can have
|
|
||||||
policies changed independently. Each time a CPU changes values they
|
|
||||||
will atomically be written to the per-CPU perf member. Drop per CPU
|
|
||||||
locking cases.
|
|
||||||
|
|
||||||
The remaining "global" driver lock is used to ensure that only one
|
|
||||||
entity can change driver modes at a given time.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 13 +++----------
|
|
||||||
1 file changed, 3 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -196,7 +196,6 @@ static inline int get_mode_idx_from_str(
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static DEFINE_MUTEX(amd_pstate_limits_lock);
|
|
||||||
static DEFINE_MUTEX(amd_pstate_driver_lock);
|
|
||||||
|
|
||||||
static u8 msr_get_epp(struct amd_cpudata *cpudata)
|
|
||||||
@@ -752,7 +751,6 @@ static int amd_pstate_set_boost(struct c
|
|
||||||
pr_err("Boost mode is not supported by this processor or SBIOS\n");
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
}
|
|
||||||
- guard(mutex)(&amd_pstate_driver_lock);
|
|
||||||
|
|
||||||
ret = amd_pstate_cpu_boost_update(policy, state);
|
|
||||||
refresh_frequency_limits(policy);
|
|
||||||
@@ -1170,8 +1168,6 @@ static ssize_t store_energy_performance_
|
|
||||||
if (ret < 0)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
- guard(mutex)(&amd_pstate_limits_lock);
|
|
||||||
-
|
|
||||||
ret = amd_pstate_set_energy_pref_index(policy, ret);
|
|
||||||
|
|
||||||
return ret ? ret : count;
|
|
||||||
@@ -1344,8 +1340,10 @@ int amd_pstate_update_status(const char
|
|
||||||
if (mode_idx < 0 || mode_idx >= AMD_PSTATE_MAX)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
- if (mode_state_machine[cppc_state][mode_idx])
|
|
||||||
+ if (mode_state_machine[cppc_state][mode_idx]) {
|
|
||||||
+ guard(mutex)(&amd_pstate_driver_lock);
|
|
||||||
return mode_state_machine[cppc_state][mode_idx](mode_idx);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1366,7 +1364,6 @@ static ssize_t status_store(struct devic
|
|
||||||
char *p = memchr(buf, '\n', count);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
- guard(mutex)(&amd_pstate_driver_lock);
|
|
||||||
ret = amd_pstate_update_status(buf, p ? p - buf : count);
|
|
||||||
|
|
||||||
return ret < 0 ? ret : count;
|
|
||||||
@@ -1638,8 +1635,6 @@ static int amd_pstate_epp_cpu_offline(st
|
|
||||||
if (cpudata->suspended)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- guard(mutex)(&amd_pstate_limits_lock);
|
|
||||||
-
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
AMD_CPPC_EPP_BALANCE_POWERSAVE,
|
|
||||||
@@ -1679,8 +1674,6 @@ static int amd_pstate_epp_resume(struct
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
if (cpudata->suspended) {
|
|
||||||
- guard(mutex)(&amd_pstate_limits_lock);
|
|
||||||
-
|
|
||||||
/* enable amd pstate from suspend state*/
|
|
||||||
amd_pstate_epp_reenable(policy);
|
|
||||||
|
|
@@ -1,48 +0,0 @@
|
|||||||
From 33c2b6f10f140e35f44d2be9bd8dc9eb459fb29a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:21 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Drop `cppc_cap1_cached`
|
|
||||||
|
|
||||||
The `cppc_cap1_cached` variable isn't used at all, there is no
|
|
||||||
need to read it at initialization for each CPU.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 5 -----
|
|
||||||
drivers/cpufreq/amd-pstate.h | 2 --
|
|
||||||
2 files changed, 7 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -1508,11 +1508,6 @@ static int amd_pstate_epp_cpu_init(struc
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
||||||
-
|
|
||||||
- ret = rdmsrl_on_cpu(cpudata->cpu, MSR_AMD_CPPC_CAP1, &value);
|
|
||||||
- if (ret)
|
|
||||||
- return ret;
|
|
||||||
- WRITE_ONCE(cpudata->cppc_cap1_cached, value);
|
|
||||||
}
|
|
||||||
ret = amd_pstate_set_epp(cpudata, cpudata->epp_default);
|
|
||||||
if (ret)
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.h
|
|
||||||
@@ -76,7 +76,6 @@ struct amd_aperf_mperf {
|
|
||||||
* AMD P-State driver supports preferred core featue.
|
|
||||||
* @epp_cached: Cached CPPC energy-performance preference value
|
|
||||||
* @policy: Cpufreq policy value
|
|
||||||
- * @cppc_cap1_cached Cached MSR_AMD_CPPC_CAP1 register value
|
|
||||||
*
|
|
||||||
* The amd_cpudata is key private data for each CPU thread in AMD P-State, and
|
|
||||||
* represents all the attributes and goals that AMD P-State requests at runtime.
|
|
||||||
@@ -105,7 +104,6 @@ struct amd_cpudata {
|
|
||||||
/* EPP feature related attributes*/
|
|
||||||
u8 epp_cached;
|
|
||||||
u32 policy;
|
|
||||||
- u64 cppc_cap1_cached;
|
|
||||||
bool suspended;
|
|
||||||
u8 epp_default;
|
|
||||||
};
|
|
@@ -1,144 +0,0 @@
|
|||||||
From 22a3d411de53a42057ab0dc45bb00306fd855807 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:22 -0600
|
|
||||||
Subject: cpufreq/amd-pstate-ut: Use _free macro to free put policy
|
|
||||||
|
|
||||||
Using a scoped cleanup macro simplifies cleanup code.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 33 ++++++++++++++-------------------
|
|
||||||
1 file changed, 14 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -26,6 +26,7 @@
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/moduleparam.h>
|
|
||||||
#include <linux/fs.h>
|
|
||||||
+#include <linux/cleanup.h>
|
|
||||||
|
|
||||||
#include <acpi/cppc_acpi.h>
|
|
||||||
|
|
||||||
@@ -127,11 +128,12 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
u32 highest_perf = 0, nominal_perf = 0, lowest_nonlinear_perf = 0, lowest_perf = 0;
|
|
||||||
u64 cap1 = 0;
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
- struct cpufreq_policy *policy = NULL;
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
union perf_cached cur_perf;
|
|
||||||
|
|
||||||
for_each_possible_cpu(cpu) {
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
+
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
break;
|
|
||||||
@@ -142,7 +144,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
if (ret) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cppc_get_perf_caps ret=%d error!\n", __func__, ret);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
highest_perf = cppc_perf.highest_perf;
|
|
||||||
@@ -154,7 +156,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
if (ret) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s read CPPC_CAP1 ret=%d error!\n", __func__, ret);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
highest_perf = AMD_CPPC_HIGHEST_PERF(cap1);
|
|
||||||
@@ -167,7 +169,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
if (highest_perf != cur_perf.highest_perf && !cpudata->hw_prefcore) {
|
|
||||||
pr_err("%s cpu%d highest=%d %d highest perf doesn't match\n",
|
|
||||||
__func__, cpu, highest_perf, cur_perf.highest_perf);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
if (nominal_perf != cur_perf.nominal_perf ||
|
|
||||||
(lowest_nonlinear_perf != cur_perf.lowest_nonlinear_perf) ||
|
|
||||||
@@ -177,7 +179,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
__func__, cpu, nominal_perf, cur_perf.nominal_perf,
|
|
||||||
lowest_nonlinear_perf, cur_perf.lowest_nonlinear_perf,
|
|
||||||
lowest_perf, cur_perf.lowest_perf);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!((highest_perf >= nominal_perf) &&
|
|
||||||
@@ -188,15 +190,11 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
pr_err("%s cpu%d highest=%d >= nominal=%d > lowest_nonlinear=%d > lowest=%d > 0, the formula is incorrect!\n",
|
|
||||||
__func__, cpu, highest_perf, nominal_perf,
|
|
||||||
lowest_nonlinear_perf, lowest_perf);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- return;
|
|
||||||
-skip_test:
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -207,10 +205,11 @@ skip_test:
|
|
||||||
static void amd_pstate_ut_check_freq(u32 index)
|
|
||||||
{
|
|
||||||
int cpu = 0;
|
|
||||||
- struct cpufreq_policy *policy = NULL;
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
|
|
||||||
for_each_possible_cpu(cpu) {
|
|
||||||
+ struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
+
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
break;
|
|
||||||
@@ -224,14 +223,14 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
pr_err("%s cpu%d max=%d >= nominal=%d > lowest_nonlinear=%d > min=%d > 0, the formula is incorrect!\n",
|
|
||||||
__func__, cpu, policy->cpuinfo.max_freq, cpudata->nominal_freq,
|
|
||||||
cpudata->lowest_nonlinear_freq, policy->cpuinfo.min_freq);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpudata->lowest_nonlinear_freq != policy->min) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d cpudata_lowest_nonlinear_freq=%d policy_min=%d, they should be equal!\n",
|
|
||||||
__func__, cpu, cpudata->lowest_nonlinear_freq, policy->min);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpudata->boost_supported) {
|
|
||||||
@@ -243,20 +242,16 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
pr_err("%s cpu%d policy_max=%d should be equal cpu_max=%d or cpu_nominal=%d !\n",
|
|
||||||
__func__, cpu, policy->max, policy->cpuinfo.max_freq,
|
|
||||||
cpudata->nominal_freq);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d must support boost!\n", __func__, cpu);
|
|
||||||
- goto skip_test;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- return;
|
|
||||||
-skip_test:
|
|
||||||
- cpufreq_cpu_put(policy);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_set_mode(enum amd_pstate_mode mode)
|
|
@@ -1,37 +0,0 @@
|
|||||||
From e42e4d9ee2e953137488e531be82c4d2d1c10d1c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:23 -0600
|
|
||||||
Subject: cpufreq/amd-pstate-ut: Allow lowest nonlinear and lowest to be the
|
|
||||||
same
|
|
||||||
|
|
||||||
Several Ryzen AI processors support the exact same value for lowest
|
|
||||||
nonlinear perf and lowest perf. Loosen up the unit tests to allow this
|
|
||||||
scenario.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -184,7 +184,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
|
|
||||||
if (!((highest_perf >= nominal_perf) &&
|
|
||||||
(nominal_perf > lowest_nonlinear_perf) &&
|
|
||||||
- (lowest_nonlinear_perf > lowest_perf) &&
|
|
||||||
+ (lowest_nonlinear_perf >= lowest_perf) &&
|
|
||||||
(lowest_perf > 0))) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d highest=%d >= nominal=%d > lowest_nonlinear=%d > lowest=%d > 0, the formula is incorrect!\n",
|
|
||||||
@@ -217,7 +217,7 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
|
|
||||||
if (!((policy->cpuinfo.max_freq >= cpudata->nominal_freq) &&
|
|
||||||
(cpudata->nominal_freq > cpudata->lowest_nonlinear_freq) &&
|
|
||||||
- (cpudata->lowest_nonlinear_freq > policy->cpuinfo.min_freq) &&
|
|
||||||
+ (cpudata->lowest_nonlinear_freq >= policy->cpuinfo.min_freq) &&
|
|
||||||
(policy->cpuinfo.min_freq > 0))) {
|
|
||||||
amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d max=%d >= nominal=%d > lowest_nonlinear=%d > min=%d > 0, the formula is incorrect!\n",
|
|
@@ -1,309 +0,0 @@
|
|||||||
From 141c02d0bbbca11a1fceae703a6b7dbfe6315b18 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:24 -0600
|
|
||||||
Subject: cpufreq/amd-pstate-ut: Drop SUCCESS and FAIL enums
|
|
||||||
|
|
||||||
Enums are effectively used as a boolean and don't show
|
|
||||||
the return value of the failing call.
|
|
||||||
|
|
||||||
Instead of using enums switch to returning the actual return
|
|
||||||
code from the unit test.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 143 ++++++++++++--------------------
|
|
||||||
1 file changed, 55 insertions(+), 88 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -32,30 +32,20 @@
|
|
||||||
|
|
||||||
#include "amd-pstate.h"
|
|
||||||
|
|
||||||
-/*
|
|
||||||
- * Abbreviations:
|
|
||||||
- * amd_pstate_ut: used as a shortform for AMD P-State unit test.
|
|
||||||
- * It helps to keep variable names smaller, simpler
|
|
||||||
- */
|
|
||||||
-enum amd_pstate_ut_result {
|
|
||||||
- AMD_PSTATE_UT_RESULT_PASS,
|
|
||||||
- AMD_PSTATE_UT_RESULT_FAIL,
|
|
||||||
-};
|
|
||||||
|
|
||||||
struct amd_pstate_ut_struct {
|
|
||||||
const char *name;
|
|
||||||
- void (*func)(u32 index);
|
|
||||||
- enum amd_pstate_ut_result result;
|
|
||||||
+ int (*func)(u32 index);
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Kernel module for testing the AMD P-State unit test
|
|
||||||
*/
|
|
||||||
-static void amd_pstate_ut_acpi_cpc_valid(u32 index);
|
|
||||||
-static void amd_pstate_ut_check_enabled(u32 index);
|
|
||||||
-static void amd_pstate_ut_check_perf(u32 index);
|
|
||||||
-static void amd_pstate_ut_check_freq(u32 index);
|
|
||||||
-static void amd_pstate_ut_check_driver(u32 index);
|
|
||||||
+static int amd_pstate_ut_acpi_cpc_valid(u32 index);
|
|
||||||
+static int amd_pstate_ut_check_enabled(u32 index);
|
|
||||||
+static int amd_pstate_ut_check_perf(u32 index);
|
|
||||||
+static int amd_pstate_ut_check_freq(u32 index);
|
|
||||||
+static int amd_pstate_ut_check_driver(u32 index);
|
|
||||||
|
|
||||||
static struct amd_pstate_ut_struct amd_pstate_ut_cases[] = {
|
|
||||||
{"amd_pstate_ut_acpi_cpc_valid", amd_pstate_ut_acpi_cpc_valid },
|
|
||||||
@@ -78,51 +68,46 @@ static bool get_shared_mem(void)
|
|
||||||
/*
|
|
||||||
* check the _CPC object is present in SBIOS.
|
|
||||||
*/
|
|
||||||
-static void amd_pstate_ut_acpi_cpc_valid(u32 index)
|
|
||||||
+static int amd_pstate_ut_acpi_cpc_valid(u32 index)
|
|
||||||
{
|
|
||||||
- if (acpi_cpc_valid())
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- else {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
+ if (!acpi_cpc_valid()) {
|
|
||||||
pr_err("%s the _CPC object is not present in SBIOS!\n", __func__);
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void amd_pstate_ut_pstate_enable(u32 index)
|
|
||||||
+/*
|
|
||||||
+ * check if amd pstate is enabled
|
|
||||||
+ */
|
|
||||||
+static int amd_pstate_ut_check_enabled(u32 index)
|
|
||||||
{
|
|
||||||
- int ret = 0;
|
|
||||||
u64 cppc_enable = 0;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ if (get_shared_mem())
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
ret = rdmsrl_safe(MSR_AMD_CPPC_ENABLE, &cppc_enable);
|
|
||||||
if (ret) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s rdmsrl_safe MSR_AMD_CPPC_ENABLE ret=%d error!\n", __func__, ret);
|
|
||||||
- return;
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
- if (cppc_enable)
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- else {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
+
|
|
||||||
+ if (!cppc_enable) {
|
|
||||||
pr_err("%s amd pstate must be enabled!\n", __func__);
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
-}
|
|
||||||
|
|
||||||
-/*
|
|
||||||
- * check if amd pstate is enabled
|
|
||||||
- */
|
|
||||||
-static void amd_pstate_ut_check_enabled(u32 index)
|
|
||||||
-{
|
|
||||||
- if (get_shared_mem())
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- else
|
|
||||||
- amd_pstate_ut_pstate_enable(index);
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* check if performance values are reasonable.
|
|
||||||
* highest_perf >= nominal_perf > lowest_nonlinear_perf > lowest_perf > 0
|
|
||||||
*/
|
|
||||||
-static void amd_pstate_ut_check_perf(u32 index)
|
|
||||||
+static int amd_pstate_ut_check_perf(u32 index)
|
|
||||||
{
|
|
||||||
int cpu = 0, ret = 0;
|
|
||||||
u32 highest_perf = 0, nominal_perf = 0, lowest_nonlinear_perf = 0, lowest_perf = 0;
|
|
||||||
@@ -142,9 +127,8 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
if (get_shared_mem()) {
|
|
||||||
ret = cppc_get_perf_caps(cpu, &cppc_perf);
|
|
||||||
if (ret) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cppc_get_perf_caps ret=%d error!\n", __func__, ret);
|
|
||||||
- return;
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
highest_perf = cppc_perf.highest_perf;
|
|
||||||
@@ -154,9 +138,8 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
} else {
|
|
||||||
ret = rdmsrl_safe_on_cpu(cpu, MSR_AMD_CPPC_CAP1, &cap1);
|
|
||||||
if (ret) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s read CPPC_CAP1 ret=%d error!\n", __func__, ret);
|
|
||||||
- return;
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
highest_perf = AMD_CPPC_HIGHEST_PERF(cap1);
|
|
||||||
@@ -169,32 +152,30 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
if (highest_perf != cur_perf.highest_perf && !cpudata->hw_prefcore) {
|
|
||||||
pr_err("%s cpu%d highest=%d %d highest perf doesn't match\n",
|
|
||||||
__func__, cpu, highest_perf, cur_perf.highest_perf);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
if (nominal_perf != cur_perf.nominal_perf ||
|
|
||||||
(lowest_nonlinear_perf != cur_perf.lowest_nonlinear_perf) ||
|
|
||||||
(lowest_perf != cur_perf.lowest_perf)) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d nominal=%d %d lowest_nonlinear=%d %d lowest=%d %d, they should be equal!\n",
|
|
||||||
__func__, cpu, nominal_perf, cur_perf.nominal_perf,
|
|
||||||
lowest_nonlinear_perf, cur_perf.lowest_nonlinear_perf,
|
|
||||||
lowest_perf, cur_perf.lowest_perf);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!((highest_perf >= nominal_perf) &&
|
|
||||||
(nominal_perf > lowest_nonlinear_perf) &&
|
|
||||||
(lowest_nonlinear_perf >= lowest_perf) &&
|
|
||||||
(lowest_perf > 0))) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d highest=%d >= nominal=%d > lowest_nonlinear=%d > lowest=%d > 0, the formula is incorrect!\n",
|
|
||||||
__func__, cpu, highest_perf, nominal_perf,
|
|
||||||
lowest_nonlinear_perf, lowest_perf);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -202,7 +183,7 @@ static void amd_pstate_ut_check_perf(u32
|
|
||||||
* max_freq >= nominal_freq > lowest_nonlinear_freq > min_freq > 0
|
|
||||||
* check max freq when set support boost mode.
|
|
||||||
*/
|
|
||||||
-static void amd_pstate_ut_check_freq(u32 index)
|
|
||||||
+static int amd_pstate_ut_check_freq(u32 index)
|
|
||||||
{
|
|
||||||
int cpu = 0;
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
@@ -219,39 +200,33 @@ static void amd_pstate_ut_check_freq(u32
|
|
||||||
(cpudata->nominal_freq > cpudata->lowest_nonlinear_freq) &&
|
|
||||||
(cpudata->lowest_nonlinear_freq >= policy->cpuinfo.min_freq) &&
|
|
||||||
(policy->cpuinfo.min_freq > 0))) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d max=%d >= nominal=%d > lowest_nonlinear=%d > min=%d > 0, the formula is incorrect!\n",
|
|
||||||
__func__, cpu, policy->cpuinfo.max_freq, cpudata->nominal_freq,
|
|
||||||
cpudata->lowest_nonlinear_freq, policy->cpuinfo.min_freq);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpudata->lowest_nonlinear_freq != policy->min) {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d cpudata_lowest_nonlinear_freq=%d policy_min=%d, they should be equal!\n",
|
|
||||||
__func__, cpu, cpudata->lowest_nonlinear_freq, policy->min);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cpudata->boost_supported) {
|
|
||||||
- if ((policy->max == policy->cpuinfo.max_freq) ||
|
|
||||||
- (policy->max == cpudata->nominal_freq))
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
- else {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
+ if ((policy->max != policy->cpuinfo.max_freq) &&
|
|
||||||
+ (policy->max != cpudata->nominal_freq)) {
|
|
||||||
pr_err("%s cpu%d policy_max=%d should be equal cpu_max=%d or cpu_nominal=%d !\n",
|
|
||||||
__func__, cpu, policy->max, policy->cpuinfo.max_freq,
|
|
||||||
cpudata->nominal_freq);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_FAIL;
|
|
||||||
pr_err("%s cpu%d must support boost!\n", __func__, cpu);
|
|
||||||
- return;
|
|
||||||
+ return -EINVAL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- amd_pstate_ut_cases[index].result = AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_set_mode(enum amd_pstate_mode mode)
|
|
||||||
@@ -263,32 +238,28 @@ static int amd_pstate_set_mode(enum amd_
|
|
||||||
return amd_pstate_update_status(mode_str, strlen(mode_str));
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void amd_pstate_ut_check_driver(u32 index)
|
|
||||||
+static int amd_pstate_ut_check_driver(u32 index)
|
|
||||||
{
|
|
||||||
enum amd_pstate_mode mode1, mode2 = AMD_PSTATE_DISABLE;
|
|
||||||
- int ret;
|
|
||||||
|
|
||||||
for (mode1 = AMD_PSTATE_DISABLE; mode1 < AMD_PSTATE_MAX; mode1++) {
|
|
||||||
- ret = amd_pstate_set_mode(mode1);
|
|
||||||
+ int ret = amd_pstate_set_mode(mode1);
|
|
||||||
if (ret)
|
|
||||||
- goto out;
|
|
||||||
+ return ret;
|
|
||||||
for (mode2 = AMD_PSTATE_DISABLE; mode2 < AMD_PSTATE_MAX; mode2++) {
|
|
||||||
if (mode1 == mode2)
|
|
||||||
continue;
|
|
||||||
ret = amd_pstate_set_mode(mode2);
|
|
||||||
- if (ret)
|
|
||||||
- goto out;
|
|
||||||
+ if (ret) {
|
|
||||||
+ pr_err("%s: failed to update status for %s->%s\n", __func__,
|
|
||||||
+ amd_pstate_get_mode_string(mode1),
|
|
||||||
+ amd_pstate_get_mode_string(mode2));
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-out:
|
|
||||||
- if (ret)
|
|
||||||
- pr_warn("%s: failed to update status for %s->%s: %d\n", __func__,
|
|
||||||
- amd_pstate_get_mode_string(mode1),
|
|
||||||
- amd_pstate_get_mode_string(mode2), ret);
|
|
||||||
-
|
|
||||||
- amd_pstate_ut_cases[index].result = ret ?
|
|
||||||
- AMD_PSTATE_UT_RESULT_FAIL :
|
|
||||||
- AMD_PSTATE_UT_RESULT_PASS;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int __init amd_pstate_ut_init(void)
|
|
||||||
@@ -296,16 +267,12 @@ static int __init amd_pstate_ut_init(voi
|
|
||||||
u32 i = 0, arr_size = ARRAY_SIZE(amd_pstate_ut_cases);
|
|
||||||
|
|
||||||
for (i = 0; i < arr_size; i++) {
|
|
||||||
- amd_pstate_ut_cases[i].func(i);
|
|
||||||
- switch (amd_pstate_ut_cases[i].result) {
|
|
||||||
- case AMD_PSTATE_UT_RESULT_PASS:
|
|
||||||
+ int ret = amd_pstate_ut_cases[i].func(i);
|
|
||||||
+
|
|
||||||
+ if (ret)
|
|
||||||
+ pr_err("%-4d %-20s\t fail: %d!\n", i+1, amd_pstate_ut_cases[i].name, ret);
|
|
||||||
+ else
|
|
||||||
pr_info("%-4d %-20s\t success!\n", i+1, amd_pstate_ut_cases[i].name);
|
|
||||||
- break;
|
|
||||||
- case AMD_PSTATE_UT_RESULT_FAIL:
|
|
||||||
- default:
|
|
||||||
- pr_info("%-4d %-20s\t fail!\n", i+1, amd_pstate_ut_cases[i].name);
|
|
||||||
- break;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
@@ -1,50 +0,0 @@
|
|||||||
From 2fe00ce7f79ef57185bdd84e736d8bf47286eb8f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:25 -0600
|
|
||||||
Subject: cpufreq/amd-pstate-ut: Run on all of the correct CPUs
|
|
||||||
|
|
||||||
If a CPU is missing a policy or one has been offlined then the unit test
|
|
||||||
is skipped for the rest of the CPUs on the system.
|
|
||||||
|
|
||||||
Instead; iterate online CPUs and skip any missing policies to allow
|
|
||||||
continuing to test the rest of them.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -116,12 +116,12 @@ static int amd_pstate_ut_check_perf(u32
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
union perf_cached cur_perf;
|
|
||||||
|
|
||||||
- for_each_possible_cpu(cpu) {
|
|
||||||
+ for_each_online_cpu(cpu) {
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
- break;
|
|
||||||
+ continue;
|
|
||||||
cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
if (get_shared_mem()) {
|
|
||||||
@@ -188,12 +188,12 @@ static int amd_pstate_ut_check_freq(u32
|
|
||||||
int cpu = 0;
|
|
||||||
struct amd_cpudata *cpudata = NULL;
|
|
||||||
|
|
||||||
- for_each_possible_cpu(cpu) {
|
|
||||||
+ for_each_online_cpu(cpu) {
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
- break;
|
|
||||||
+ continue;
|
|
||||||
cpudata = policy->driver_data;
|
|
||||||
|
|
||||||
if (!((policy->cpuinfo.max_freq >= cpudata->nominal_freq) &&
|
|
@@ -1,42 +0,0 @@
|
|||||||
From 95bbcd16b467dceea295dbd97c7347e7dd15dabc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:26 -0600
|
|
||||||
Subject: cpufreq/amd-pstate-ut: Adjust variable scope
|
|
||||||
|
|
||||||
In amd_pstate_ut_check_freq() and amd_pstate_ut_check_perf() the cpudata
|
|
||||||
variable is only needed in the scope of the for loop. Move it there.
|
|
||||||
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -113,11 +113,11 @@ static int amd_pstate_ut_check_perf(u32
|
|
||||||
u32 highest_perf = 0, nominal_perf = 0, lowest_nonlinear_perf = 0, lowest_perf = 0;
|
|
||||||
u64 cap1 = 0;
|
|
||||||
struct cppc_perf_caps cppc_perf;
|
|
||||||
- struct amd_cpudata *cpudata = NULL;
|
|
||||||
union perf_cached cur_perf;
|
|
||||||
|
|
||||||
for_each_online_cpu(cpu) {
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
||||||
@@ -186,10 +186,10 @@ static int amd_pstate_ut_check_perf(u32
|
|
||||||
static int amd_pstate_ut_check_freq(u32 index)
|
|
||||||
{
|
|
||||||
int cpu = 0;
|
|
||||||
- struct amd_cpudata *cpudata = NULL;
|
|
||||||
|
|
||||||
for_each_online_cpu(cpu) {
|
|
||||||
struct cpufreq_policy *policy __free(put_cpufreq_policy) = NULL;
|
|
||||||
+ struct amd_cpudata *cpudata;
|
|
||||||
|
|
||||||
policy = cpufreq_cpu_get(cpu);
|
|
||||||
if (!policy)
|
|
@@ -1,123 +0,0 @@
|
|||||||
From 98519671cd3691a45f23a7de4862ec0642b5921e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:27 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Replace all AMD_CPPC_* macros with masks
|
|
||||||
|
|
||||||
Bitfield masks are easier to follow and less error prone.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
arch/x86/include/asm/msr-index.h | 20 +++++++++++---------
|
|
||||||
arch/x86/kernel/acpi/cppc.c | 4 +++-
|
|
||||||
drivers/cpufreq/amd-pstate-ut.c | 9 +++++----
|
|
||||||
drivers/cpufreq/amd-pstate.c | 16 ++++++----------
|
|
||||||
4 files changed, 25 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/x86/include/asm/msr-index.h
|
|
||||||
+++ b/arch/x86/include/asm/msr-index.h
|
|
||||||
@@ -701,15 +701,17 @@
|
|
||||||
#define MSR_AMD_CPPC_REQ 0xc00102b3
|
|
||||||
#define MSR_AMD_CPPC_STATUS 0xc00102b4
|
|
||||||
|
|
||||||
-#define AMD_CPPC_LOWEST_PERF(x) (((x) >> 0) & 0xff)
|
|
||||||
-#define AMD_CPPC_LOWNONLIN_PERF(x) (((x) >> 8) & 0xff)
|
|
||||||
-#define AMD_CPPC_NOMINAL_PERF(x) (((x) >> 16) & 0xff)
|
|
||||||
-#define AMD_CPPC_HIGHEST_PERF(x) (((x) >> 24) & 0xff)
|
|
||||||
+/* Masks for use with MSR_AMD_CPPC_CAP1 */
|
|
||||||
+#define AMD_CPPC_LOWEST_PERF_MASK GENMASK(7, 0)
|
|
||||||
+#define AMD_CPPC_LOWNONLIN_PERF_MASK GENMASK(15, 8)
|
|
||||||
+#define AMD_CPPC_NOMINAL_PERF_MASK GENMASK(23, 16)
|
|
||||||
+#define AMD_CPPC_HIGHEST_PERF_MASK GENMASK(31, 24)
|
|
||||||
|
|
||||||
-#define AMD_CPPC_MAX_PERF(x) (((x) & 0xff) << 0)
|
|
||||||
-#define AMD_CPPC_MIN_PERF(x) (((x) & 0xff) << 8)
|
|
||||||
-#define AMD_CPPC_DES_PERF(x) (((x) & 0xff) << 16)
|
|
||||||
-#define AMD_CPPC_ENERGY_PERF_PREF(x) (((x) & 0xff) << 24)
|
|
||||||
+/* Masks for use with MSR_AMD_CPPC_REQ */
|
|
||||||
+#define AMD_CPPC_MAX_PERF_MASK GENMASK(7, 0)
|
|
||||||
+#define AMD_CPPC_MIN_PERF_MASK GENMASK(15, 8)
|
|
||||||
+#define AMD_CPPC_DES_PERF_MASK GENMASK(23, 16)
|
|
||||||
+#define AMD_CPPC_EPP_PERF_MASK GENMASK(31, 24)
|
|
||||||
|
|
||||||
/* AMD Performance Counter Global Status and Control MSRs */
|
|
||||||
#define MSR_AMD64_PERF_CNTR_GLOBAL_STATUS 0xc0000300
|
|
||||||
--- a/arch/x86/kernel/acpi/cppc.c
|
|
||||||
+++ b/arch/x86/kernel/acpi/cppc.c
|
|
||||||
@@ -4,6 +4,8 @@
|
|
||||||
* Copyright (c) 2016, Intel Corporation.
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#include <linux/bitfield.h>
|
|
||||||
+
|
|
||||||
#include <acpi/cppc_acpi.h>
|
|
||||||
#include <asm/msr.h>
|
|
||||||
#include <asm/processor.h>
|
|
||||||
@@ -149,7 +151,7 @@ int amd_get_highest_perf(unsigned int cp
|
|
||||||
if (ret)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
- val = AMD_CPPC_HIGHEST_PERF(val);
|
|
||||||
+ val = FIELD_GET(AMD_CPPC_HIGHEST_PERF_MASK, val);
|
|
||||||
} else {
|
|
||||||
ret = cppc_get_highest_perf(cpu, &val);
|
|
||||||
if (ret)
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-ut.c
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
|
|
||||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
|
||||||
|
|
||||||
+#include <linux/bitfield.h>
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/moduleparam.h>
|
|
||||||
@@ -142,10 +143,10 @@ static int amd_pstate_ut_check_perf(u32
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
- highest_perf = AMD_CPPC_HIGHEST_PERF(cap1);
|
|
||||||
- nominal_perf = AMD_CPPC_NOMINAL_PERF(cap1);
|
|
||||||
- lowest_nonlinear_perf = AMD_CPPC_LOWNONLIN_PERF(cap1);
|
|
||||||
- lowest_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
+ highest_perf = FIELD_GET(AMD_CPPC_HIGHEST_PERF_MASK, cap1);
|
|
||||||
+ nominal_perf = FIELD_GET(AMD_CPPC_NOMINAL_PERF_MASK, cap1);
|
|
||||||
+ lowest_nonlinear_perf = FIELD_GET(AMD_CPPC_LOWNONLIN_PERF_MASK, cap1);
|
|
||||||
+ lowest_perf = FIELD_GET(AMD_CPPC_LOWEST_PERF_MASK, cap1);
|
|
||||||
}
|
|
||||||
|
|
||||||
cur_perf = READ_ONCE(cpudata->perf);
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -89,11 +89,6 @@ static bool cppc_enabled;
|
|
||||||
static bool amd_pstate_prefcore = true;
|
|
||||||
static struct quirk_entry *quirks;
|
|
||||||
|
|
||||||
-#define AMD_CPPC_MAX_PERF_MASK GENMASK(7, 0)
|
|
||||||
-#define AMD_CPPC_MIN_PERF_MASK GENMASK(15, 8)
|
|
||||||
-#define AMD_CPPC_DES_PERF_MASK GENMASK(23, 16)
|
|
||||||
-#define AMD_CPPC_EPP_PERF_MASK GENMASK(31, 24)
|
|
||||||
-
|
|
||||||
/*
|
|
||||||
* AMD Energy Preference Performance (EPP)
|
|
||||||
* The EPP is used in the CCLK DPM controller to drive
|
|
||||||
@@ -439,12 +434,13 @@ static int msr_init_perf(struct amd_cpud
|
|
||||||
|
|
||||||
perf.highest_perf = numerator;
|
|
||||||
perf.max_limit_perf = numerator;
|
|
||||||
- perf.min_limit_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
- perf.nominal_perf = AMD_CPPC_NOMINAL_PERF(cap1);
|
|
||||||
- perf.lowest_nonlinear_perf = AMD_CPPC_LOWNONLIN_PERF(cap1);
|
|
||||||
- perf.lowest_perf = AMD_CPPC_LOWEST_PERF(cap1);
|
|
||||||
+ perf.min_limit_perf = FIELD_GET(AMD_CPPC_LOWEST_PERF_MASK, cap1);
|
|
||||||
+ perf.nominal_perf = FIELD_GET(AMD_CPPC_NOMINAL_PERF_MASK, cap1);
|
|
||||||
+ perf.lowest_nonlinear_perf = FIELD_GET(AMD_CPPC_LOWNONLIN_PERF_MASK, cap1);
|
|
||||||
+ perf.lowest_perf = FIELD_GET(AMD_CPPC_LOWEST_PERF_MASK, cap1);
|
|
||||||
WRITE_ONCE(cpudata->perf, perf);
|
|
||||||
- WRITE_ONCE(cpudata->prefcore_ranking, AMD_CPPC_HIGHEST_PERF(cap1));
|
|
||||||
+ WRITE_ONCE(cpudata->prefcore_ranking, FIELD_GET(AMD_CPPC_HIGHEST_PERF_MASK, cap1));
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,60 +0,0 @@
|
|||||||
From fc5fe86b4f63ed2ff8230c48e737185451e9c3a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:28 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Cache CPPC request in shared mem case too
|
|
||||||
|
|
||||||
In order to prevent a potential write for shmem_update_perf()
|
|
||||||
cache the request into the cppc_req_cached variable normally only
|
|
||||||
used for the MSR case.
|
|
||||||
|
|
||||||
This adds symmetry into the code and potentially avoids extra writes.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 22 +++++++++++++++++++++-
|
|
||||||
1 file changed, 21 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -496,6 +496,8 @@ static int shmem_update_perf(struct amd_
|
|
||||||
u8 des_perf, u8 max_perf, u8 epp, bool fast_switch)
|
|
||||||
{
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
+ u64 value, prev;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
if (cppc_state == AMD_PSTATE_ACTIVE) {
|
|
||||||
int ret = shmem_set_epp(cpudata, epp);
|
|
||||||
@@ -504,11 +506,29 @@ static int shmem_update_perf(struct amd_
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ value = prev = READ_ONCE(cpudata->cppc_req_cached);
|
|
||||||
+
|
|
||||||
+ value &= ~(AMD_CPPC_MAX_PERF_MASK | AMD_CPPC_MIN_PERF_MASK |
|
|
||||||
+ AMD_CPPC_DES_PERF_MASK | AMD_CPPC_EPP_PERF_MASK);
|
|
||||||
+ value |= FIELD_PREP(AMD_CPPC_MAX_PERF_MASK, max_perf);
|
|
||||||
+ value |= FIELD_PREP(AMD_CPPC_DES_PERF_MASK, des_perf);
|
|
||||||
+ value |= FIELD_PREP(AMD_CPPC_MIN_PERF_MASK, min_perf);
|
|
||||||
+ value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
+
|
|
||||||
+ if (value == prev)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
perf_ctrls.max_perf = max_perf;
|
|
||||||
perf_ctrls.min_perf = min_perf;
|
|
||||||
perf_ctrls.desired_perf = des_perf;
|
|
||||||
|
|
||||||
- return cppc_set_perf(cpudata->cpu, &perf_ctrls);
|
|
||||||
+ ret = cppc_set_perf(cpudata->cpu, &perf_ctrls);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool amd_pstate_sample(struct amd_cpudata *cpudata)
|
|
@@ -1,318 +0,0 @@
|
|||||||
From e1b5c43aa7bf8d75d2043809ff38fee0b7d26259 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:29 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Move all EPP tracing into *_update_perf and
|
|
||||||
*_set_epp functions
|
|
||||||
|
|
||||||
The EPP tracing is done by the caller today, but this precludes the
|
|
||||||
information about whether the CPPC request has changed.
|
|
||||||
|
|
||||||
Move it into the update_perf and set_epp functions and include information
|
|
||||||
about whether the request has changed from the last one.
|
|
||||||
amd_pstate_update_perf() and amd_pstate_set_epp() now require the policy
|
|
||||||
as an argument instead of the cpudata.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate-trace.h | 13 +++-
|
|
||||||
drivers/cpufreq/amd-pstate.c | 118 +++++++++++++++++------------
|
|
||||||
2 files changed, 80 insertions(+), 51 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate-trace.h
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate-trace.h
|
|
||||||
@@ -90,7 +90,8 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
u8 epp,
|
|
||||||
u8 min_perf,
|
|
||||||
u8 max_perf,
|
|
||||||
- bool boost
|
|
||||||
+ bool boost,
|
|
||||||
+ bool changed
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_ARGS(cpu_id,
|
|
||||||
@@ -98,7 +99,8 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
epp,
|
|
||||||
min_perf,
|
|
||||||
max_perf,
|
|
||||||
- boost),
|
|
||||||
+ boost,
|
|
||||||
+ changed),
|
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
|
||||||
__field(unsigned int, cpu_id)
|
|
||||||
@@ -107,6 +109,7 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
__field(u8, min_perf)
|
|
||||||
__field(u8, max_perf)
|
|
||||||
__field(bool, boost)
|
|
||||||
+ __field(bool, changed)
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_fast_assign(
|
|
||||||
@@ -116,15 +119,17 @@ TRACE_EVENT(amd_pstate_epp_perf,
|
|
||||||
__entry->min_perf = min_perf;
|
|
||||||
__entry->max_perf = max_perf;
|
|
||||||
__entry->boost = boost;
|
|
||||||
+ __entry->changed = changed;
|
|
||||||
),
|
|
||||||
|
|
||||||
- TP_printk("cpu%u: [%hhu<->%hhu]/%hhu, epp=%hhu, boost=%u",
|
|
||||||
+ TP_printk("cpu%u: [%hhu<->%hhu]/%hhu, epp=%hhu, boost=%u, changed=%u",
|
|
||||||
(unsigned int)__entry->cpu_id,
|
|
||||||
(u8)__entry->min_perf,
|
|
||||||
(u8)__entry->max_perf,
|
|
||||||
(u8)__entry->highest_perf,
|
|
||||||
(u8)__entry->epp,
|
|
||||||
- (bool)__entry->boost
|
|
||||||
+ (bool)__entry->boost,
|
|
||||||
+ (bool)__entry->changed
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -228,9 +228,10 @@ static u8 shmem_get_epp(struct amd_cpuda
|
|
||||||
return FIELD_GET(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int msr_update_perf(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
+static int msr_update_perf(struct cpufreq_policy *policy, u8 min_perf,
|
|
||||||
u8 des_perf, u8 max_perf, u8 epp, bool fast_switch)
|
|
||||||
{
|
|
||||||
+ struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
u64 value, prev;
|
|
||||||
|
|
||||||
value = prev = READ_ONCE(cpudata->cppc_req_cached);
|
|
||||||
@@ -242,6 +243,18 @@ static int msr_update_perf(struct amd_cp
|
|
||||||
value |= FIELD_PREP(AMD_CPPC_MIN_PERF_MASK, min_perf);
|
|
||||||
value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
|
|
||||||
+ if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu,
|
|
||||||
+ perf.highest_perf,
|
|
||||||
+ epp,
|
|
||||||
+ min_perf,
|
|
||||||
+ max_perf,
|
|
||||||
+ policy->boost_enabled,
|
|
||||||
+ value != prev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (value == prev)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
@@ -256,24 +269,26 @@ static int msr_update_perf(struct amd_cp
|
|
||||||
}
|
|
||||||
|
|
||||||
WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
||||||
- WRITE_ONCE(cpudata->epp_cached, epp);
|
|
||||||
+ if (epp != cpudata->epp_cached)
|
|
||||||
+ WRITE_ONCE(cpudata->epp_cached, epp);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
DEFINE_STATIC_CALL(amd_pstate_update_perf, msr_update_perf);
|
|
||||||
|
|
||||||
-static inline int amd_pstate_update_perf(struct amd_cpudata *cpudata,
|
|
||||||
+static inline int amd_pstate_update_perf(struct cpufreq_policy *policy,
|
|
||||||
u8 min_perf, u8 des_perf,
|
|
||||||
u8 max_perf, u8 epp,
|
|
||||||
bool fast_switch)
|
|
||||||
{
|
|
||||||
- return static_call(amd_pstate_update_perf)(cpudata, min_perf, des_perf,
|
|
||||||
+ return static_call(amd_pstate_update_perf)(policy, min_perf, des_perf,
|
|
||||||
max_perf, epp, fast_switch);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int msr_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
+static int msr_set_epp(struct cpufreq_policy *policy, u8 epp)
|
|
||||||
{
|
|
||||||
+ struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
u64 value, prev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
@@ -281,6 +296,19 @@ static int msr_set_epp(struct amd_cpudat
|
|
||||||
value &= ~AMD_CPPC_EPP_PERF_MASK;
|
|
||||||
value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
|
|
||||||
+ if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
+ union perf_cached perf = cpudata->perf;
|
|
||||||
+
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
+ epp,
|
|
||||||
+ FIELD_GET(AMD_CPPC_MIN_PERF_MASK,
|
|
||||||
+ cpudata->cppc_req_cached),
|
|
||||||
+ FIELD_GET(AMD_CPPC_MAX_PERF_MASK,
|
|
||||||
+ cpudata->cppc_req_cached),
|
|
||||||
+ policy->boost_enabled,
|
|
||||||
+ value != prev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (value == prev)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
@@ -299,15 +327,29 @@ static int msr_set_epp(struct amd_cpudat
|
|
||||||
|
|
||||||
DEFINE_STATIC_CALL(amd_pstate_set_epp, msr_set_epp);
|
|
||||||
|
|
||||||
-static inline int amd_pstate_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
+static inline int amd_pstate_set_epp(struct cpufreq_policy *policy, u8 epp)
|
|
||||||
{
|
|
||||||
- return static_call(amd_pstate_set_epp)(cpudata, epp);
|
|
||||||
+ return static_call(amd_pstate_set_epp)(policy, epp);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int shmem_set_epp(struct amd_cpudata *cpudata, u8 epp)
|
|
||||||
+static int shmem_set_epp(struct cpufreq_policy *policy, u8 epp)
|
|
||||||
{
|
|
||||||
- int ret;
|
|
||||||
+ struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
+ union perf_cached perf = cpudata->perf;
|
|
||||||
+
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
+ epp,
|
|
||||||
+ FIELD_GET(AMD_CPPC_MIN_PERF_MASK,
|
|
||||||
+ cpudata->cppc_req_cached),
|
|
||||||
+ FIELD_GET(AMD_CPPC_MAX_PERF_MASK,
|
|
||||||
+ cpudata->cppc_req_cached),
|
|
||||||
+ policy->boost_enabled,
|
|
||||||
+ epp != cpudata->epp_cached);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (epp == cpudata->epp_cached)
|
|
||||||
return 0;
|
|
||||||
@@ -339,17 +381,7 @@ static int amd_pstate_set_energy_pref_in
|
|
||||||
return -EBUSY;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
-
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
- epp,
|
|
||||||
- FIELD_GET(AMD_CPPC_MIN_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
- FIELD_GET(AMD_CPPC_MAX_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
- policy->boost_enabled);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return amd_pstate_set_epp(cpudata, epp);
|
|
||||||
+ return amd_pstate_set_epp(policy, epp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int msr_cppc_enable(bool enable)
|
|
||||||
@@ -492,15 +524,16 @@ static inline int amd_pstate_init_perf(s
|
|
||||||
return static_call(amd_pstate_init_perf)(cpudata);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static int shmem_update_perf(struct amd_cpudata *cpudata, u8 min_perf,
|
|
||||||
+static int shmem_update_perf(struct cpufreq_policy *policy, u8 min_perf,
|
|
||||||
u8 des_perf, u8 max_perf, u8 epp, bool fast_switch)
|
|
||||||
{
|
|
||||||
+ struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
u64 value, prev;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (cppc_state == AMD_PSTATE_ACTIVE) {
|
|
||||||
- int ret = shmem_set_epp(cpudata, epp);
|
|
||||||
+ int ret = shmem_set_epp(policy, epp);
|
|
||||||
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
@@ -515,6 +548,18 @@ static int shmem_update_perf(struct amd_
|
|
||||||
value |= FIELD_PREP(AMD_CPPC_MIN_PERF_MASK, min_perf);
|
|
||||||
value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
|
|
||||||
+ if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
+ union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
+
|
|
||||||
+ trace_amd_pstate_epp_perf(cpudata->cpu,
|
|
||||||
+ perf.highest_perf,
|
|
||||||
+ epp,
|
|
||||||
+ min_perf,
|
|
||||||
+ max_perf,
|
|
||||||
+ policy->boost_enabled,
|
|
||||||
+ value != prev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (value == prev)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
@@ -592,7 +637,7 @@ static void amd_pstate_update(struct amd
|
|
||||||
cpudata->cpu, fast_switch);
|
|
||||||
}
|
|
||||||
|
|
||||||
- amd_pstate_update_perf(cpudata, min_perf, des_perf, max_perf, 0, fast_switch);
|
|
||||||
+ amd_pstate_update_perf(policy, min_perf, des_perf, max_perf, 0, fast_switch);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int amd_pstate_verify(struct cpufreq_policy_data *policy_data)
|
|
||||||
@@ -1525,7 +1570,7 @@ static int amd_pstate_epp_cpu_init(struc
|
|
||||||
return ret;
|
|
||||||
WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
||||||
}
|
|
||||||
- ret = amd_pstate_set_epp(cpudata, cpudata->epp_default);
|
|
||||||
+ ret = amd_pstate_set_epp(policy, cpudata->epp_default);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
@@ -1566,14 +1611,8 @@ static int amd_pstate_epp_update_limit(s
|
|
||||||
epp = READ_ONCE(cpudata->epp_cached);
|
|
||||||
|
|
||||||
perf = READ_ONCE(cpudata->perf);
|
|
||||||
- if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf, epp,
|
|
||||||
- perf.min_limit_perf,
|
|
||||||
- perf.max_limit_perf,
|
|
||||||
- policy->boost_enabled);
|
|
||||||
- }
|
|
||||||
|
|
||||||
- return amd_pstate_update_perf(cpudata, perf.min_limit_perf, 0U,
|
|
||||||
+ return amd_pstate_update_perf(policy, perf.min_limit_perf, 0U,
|
|
||||||
perf.max_limit_perf, epp, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1605,20 +1644,12 @@ static int amd_pstate_epp_set_policy(str
|
|
||||||
|
|
||||||
static int amd_pstate_epp_reenable(struct cpufreq_policy *policy)
|
|
||||||
{
|
|
||||||
- struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
- union perf_cached perf = READ_ONCE(cpudata->perf);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = amd_pstate_cppc_enable(true);
|
|
||||||
if (ret)
|
|
||||||
pr_err("failed to enable amd pstate during resume, return %d\n", ret);
|
|
||||||
|
|
||||||
- if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
- cpudata->epp_cached,
|
|
||||||
- FIELD_GET(AMD_CPPC_MIN_PERF_MASK, cpudata->cppc_req_cached),
|
|
||||||
- perf.highest_perf, policy->boost_enabled);
|
|
||||||
- }
|
|
||||||
|
|
||||||
return amd_pstate_epp_update_limit(policy);
|
|
||||||
}
|
|
||||||
@@ -1646,14 +1677,7 @@ static int amd_pstate_epp_cpu_offline(st
|
|
||||||
if (cpudata->suspended)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
- trace_amd_pstate_epp_perf(cpudata->cpu, perf.highest_perf,
|
|
||||||
- AMD_CPPC_EPP_BALANCE_POWERSAVE,
|
|
||||||
- perf.lowest_perf, perf.lowest_perf,
|
|
||||||
- policy->boost_enabled);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return amd_pstate_update_perf(cpudata, perf.lowest_perf, 0, perf.lowest_perf,
|
|
||||||
+ return amd_pstate_update_perf(policy, perf.lowest_perf, 0, perf.lowest_perf,
|
|
||||||
AMD_CPPC_EPP_BALANCE_POWERSAVE, false);
|
|
||||||
}
|
|
||||||
|
|
@@ -1,37 +0,0 @@
|
|||||||
From d53216c4c9f67163c9dec656862f1135d6f4af63 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:30 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Update cppc_req_cached for shared mem EPP writes
|
|
||||||
|
|
||||||
On EPP only writes update the cached variable so that the min/max
|
|
||||||
performance controls don't need to be updated again.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 6 ++++++
|
|
||||||
1 file changed, 6 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -336,6 +336,7 @@ static int shmem_set_epp(struct cpufreq_
|
|
||||||
{
|
|
||||||
struct amd_cpudata *cpudata = policy->driver_data;
|
|
||||||
struct cppc_perf_ctrls perf_ctrls;
|
|
||||||
+ u64 value;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (trace_amd_pstate_epp_perf_enabled()) {
|
|
||||||
@@ -362,6 +363,11 @@ static int shmem_set_epp(struct cpufreq_
|
|
||||||
}
|
|
||||||
WRITE_ONCE(cpudata->epp_cached, epp);
|
|
||||||
|
|
||||||
+ value = READ_ONCE(cpudata->cppc_req_cached);
|
|
||||||
+ value &= ~AMD_CPPC_EPP_PERF_MASK;
|
|
||||||
+ value |= FIELD_PREP(AMD_CPPC_EPP_PERF_MASK, epp);
|
|
||||||
+ WRITE_ONCE(cpudata->cppc_req_cached, value);
|
|
||||||
+
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,38 +0,0 @@
|
|||||||
From cecd79d237f4b5d19adac7fb9d57c59c77e40547 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
Date: Wed, 26 Feb 2025 01:49:31 -0600
|
|
||||||
Subject: cpufreq/amd-pstate: Drop debug statements for policy setting
|
|
||||||
|
|
||||||
There are trace events that exist now for all amd-pstate modes that
|
|
||||||
will output information right before programming to the hardware.
|
|
||||||
|
|
||||||
This makes the existing debug statements unnecessary remaining
|
|
||||||
overhead. Drop them.
|
|
||||||
|
|
||||||
Reviewed-by: Dhananjay Ugwekar <dhananjay.ugwekar@amd.com>
|
|
||||||
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
|
|
||||||
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
|
|
||||||
---
|
|
||||||
drivers/cpufreq/amd-pstate.c | 4 ----
|
|
||||||
1 file changed, 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/cpufreq/amd-pstate.c
|
|
||||||
+++ b/drivers/cpufreq/amd-pstate.c
|
|
||||||
@@ -667,7 +667,6 @@ static int amd_pstate_verify(struct cpuf
|
|
||||||
}
|
|
||||||
|
|
||||||
cpufreq_verify_within_cpu_limits(policy_data);
|
|
||||||
- pr_debug("policy_max =%d, policy_min=%d\n", policy_data->max, policy_data->min);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1630,9 +1629,6 @@ static int amd_pstate_epp_set_policy(str
|
|
||||||
if (!policy->cpuinfo.max_freq)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
- pr_debug("set_policy: cpuinfo.max %u policy->max %u\n",
|
|
||||||
- policy->cpuinfo.max_freq, policy->max);
|
|
||||||
-
|
|
||||||
cpudata->policy = policy->policy;
|
|
||||||
|
|
||||||
ret = amd_pstate_epp_update_limit(policy);
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user