diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-12-01 04:58:47 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-12-01 18:27:18 +0300 |
commit | 6ce62a20847b1bd500386c842cf8b801b678bd1c (patch) | |
tree | 69d169c5d109b03251c4300f39cce5a575194e6f /poky/meta/recipes-kernel | |
parent | f31b8bdb5991e0570aeaf04a9bc50f41d55bccbe (diff) | |
download | openbmc-6ce62a20847b1bd500386c842cf8b801b678bd1c.tar.xz |
poky: subtree update:7231c10430..0ac99625bf
Alban Bedel (1):
systemd: Fix systemd when used with busybox less
Alejandro Hernandez Samaniego (3):
poky-tiny: Reduce busybox size by 13%
poky-tiny: Enable size optimization by default
python3: Update manifest
Alexander Kamensky (1):
kexec: arm64: disabled check if kaslr-seed dtb property was wiped
Alexander Kanavin (128):
systemd-boot: upgrade 246.2 -> 246.6
glib-2.0: upgrade 2.64.5 -> 2.66.1
cmake: update 3.18.2 -> 3.18.4
python3-pygobject: upgrade 3.36.1 -> 3.38.0
libdazzle: upgrade 3.36.0 -> 3.38.0
gobject-introspection: upgrade 1.64.1 -> 1.66.1
json-glib: upgrade 1.4.4 -> 1.6.0
ovmf: update edk2-stable202005 -> edk2-stable202008
gnu-config: update to latest revision
file: enable all built-in compression checkers
rpm: update 4.15.1 -> 4.16.0
elfutils: update 0.180 -> 0.181
ghostscript: update 9.52 -> 9.53.3
ltp: update 20200515 -> 20200930
gsettings-desktop-schemas: update 3.36.1 -> 3.38.0
libsecret: update 0.20.3 -> 0.20.4
mesa: update 20.1.8 -> 20.2.1
xf86-video-vesa: update 2.4.0 -> 2.5.0
lttng-modules: update 2.12.2 -> 2.12.3
webkitgtk: update 2.28.4 -> 2.30.1
dos2unix: update 7.4.1 -> 7.4.2
gnutls: update 3.16.4 -> 3.16.5
libcap: update 2.43 -> 2.44
vte: update 0.60.3 -> 0.62.1
libhandy: upgrade 0.0.13 -> 1.0.0
libportal: add a recipe
epiphany: upgrade 3.36.4 -> 3.38.1
gtk-doc: upgrade 1.32 -> 1.33.0
rpm: adjust MIPS64 N32 support
apt: remove host contamination with gtest
opkg-utils: correct priority matching in update-alternatives
libxml2: add a patch to fix python 3.9 support
python: update 3.8.5 -> 3.9.0
glib-2.0: update 2.66.1 -> 2.66.2
json-glib: fix reproducibility
spirv-tools: correctly set PV
spirv-tools: upgrade 2019.5 -> 2020.5
glslang: fix upstream version check
glslang: upgrade 8.13.3559 -> 8.13.3743
glslang: bump to a newer commit
shaderc: upgrade 2019.0 -> 2020.3
vulkan: update 1.2.135 -> 1.2.154
vulkan-samples: replace vulkan-demos
piglit: upgrade to latest revision
acpica: upgrade 20200717 -> 20200925
adwaita-icon-theme: upgrade 3.36.1 -> 3.38.0
at-spi2-atk: upgrade 2.34.2 -> 2.38.0
at-spi2-core: upgrade 2.36.1 -> 2.38.0
bison: upgrade 3.7.2 -> 3.7.3
createrepo-c: upgrade 0.16.0 -> 0.16.1
curl: upgrade 7.72.0 -> 7.73.0
debianutils: upgrade 4.11.1 -> 4.11.2
dhcpcd: upgrade 9.2.0 -> 9.3.1
dmidecode: upgrade 3.2 -> 3.3
dnf: upgrade 4.2.23 -> 4.4.0
ethtool: upgrade 5.8 -> 5.9
expat: upgrade 2.2.9 -> 2.2.10
gcr: upgrade 3.36.0 -> 3.38.0
glib-networking: upgrade 2.64.3 -> 2.66.0
gtk+3: upgrade 3.24.22 -> 3.24.23
help2man: upgrade 1.47.15 -> 1.47.16
i2c-tools: upgrade 4.1 -> 4.2
iw: upgrade 5.8 -> 5.9
kmscube: upgrade to latest revision
less: upgrade 562 -> 563
libdnf: upgrade 0.48.0 -> 0.54.2
libgudev: upgrade 233 -> 234
libinput: upgrade 1.16.1 -> 1.16.2
libuv: upgrade 1.39.0 -> 1.40.0
libva: upgrade 2.8.0 -> 2.9.0
libva-utils: update 2.8.0 -> 2.9.1
libwpe: upgrade 1.7.1 -> 1.8.0
libxkbcommon: upgrade 0.10.0 -> 1.0.1
openssh: upgrade 8.3p1 -> 8.4p1
openssl: upgrade 1.1.1g -> 1.1.1h
strace: upgrade 5.8 -> 5.9
sudo: upgrade 1.9.3 -> 1.9.3p1
vala: upgrade 0.48.9 -> 0.50.1
wpebackend-fdo: upgrade 1.7.1 -> 1.8.0
xkeyboard-config: upgrade 2.30 -> 2.31
u-boot: upgrade 2020.07 -> 2020.10
usbutils: upgrade 012 -> 013
nfs-utils: upgrade 2.5.1 -> 2.5.2
dropbear: upgrade 2020.80 -> 2020.81
btrfs-tools: upgrade 5.7 -> 5.9
git: upgrade 2.28.0 -> 2.29.2
go: upgrade 1.15.2 -> 1.15.3
mtools: upgrade 4.0.24 -> 4.0.25
python3-numpy: upgrade 1.19.1 -> 1.19.3
python3-git: upgrade 3.1.7 -> 3.1.11
python3-pyelftools: upgrade 0.26 -> 0.27
python3-pygments: upgrade 2.6.1 -> 2.7.2
python3-setuptools: upgrade 49.6.0 -> 50.3.2
asciidoc: upgrade 9.0.2 -> 9.0.4
iptables: upgrade 1.8.5 -> 1.8.6
libsolv: upgrade 0.7.14 -> 0.7.16
stress-ng: upgrade 0.11.21 -> 0.11.23
libhandy: upgrade 1.0.0 -> 1.0.1
freetype: upgrade 2.10.2 -> 2.10.4
linux-firmware: upgrade 20200817 -> 20201022
alsa: upgrade 1.2.3 -> 1.2.4
gstreamer1.0: upgrade 1.18.0 -> 1.18.1
x264: upgrade to latest revision
rt-tests/hwlatdetect: upgrade 1.8 -> 1.9
webkitgtk: upgrade 2.30.1 -> 2.30.2
diffoscope: upgrade 160 -> 161
enchant2: upgrade 2.2.9 -> 2.2.12
libassuan: upgrade 2.5.3 -> 2.5.4
libcap-ng: upgrade 0.7.11 -> 0.8
libevdev: upgrade 1.9.1 -> 1.10.0
libgcrypt: upgrade 1.8.6 -> 1.8.7
libmpc: upgrade 1.2.0 -> 1.2.1
libsoup-2.4: upgrade 2.70.0 -> 2.72.0
numactl: upgrade 2.0.13 -> 2.0.14
kea: use odd-even version scheme for updates
mesa: fix a build race
clutter-gst-3.0: do not call out to host gstreamer plugin scanner
conf-notes.txt: mention more important images than just sato
weston-init: correctly start under systemd
weston-init: fall back to fbdev under x32
wayland-utils: introduce a recipe
poky/conf-notes.txt: mention more important images than just sato
python3: split python target configuration into own class
python3-pycairo: use python3targetconfig
distutils3-base.bbclass: use python3targetconfig
meta: drop _PYTHON_SYSCONFIGDATA_NAME hacks
gpgme: use python3targetconfig
bitbake: lib/bb/fetch2/__init__.py: drop _PYTHON_SYSCONFIGDATA_NAME unsetting
Alexander Vickberg (1):
socat: make building with OpenSSL support optional
Alistair (1):
weston-init: Fix incorrect idle-time setting
Andrej Valek (1):
autotools: CONFIG_SHELL defaults
Andrey Zhizhikin (1):
insane: add GitLab /archive/ tests
Anibal Limon (1):
recipes-graphics: libxkbcommon disable build of libxkbregistry
Anuj Mittal (2):
glib-2.0: RDEPEND on dbusmock only when GI_DATA_ENABLED is True
distutils-common-base: fix LINKSHARED expansion
Bruce Ashfield (17):
kernel: provide module.lds for out of tree builds in v5.10+
linux-yocto/5.8: update to v5.8.15
linux-yocto/5.4: update to v5.4.71
linux-yocto/5.8: update to v5.8.16
linux-yocto/5.4: update to v5.4.72
linux-yocto/5.8: update to v5.8.17
linux-yocto/5.4: update to v5.4.73
linux-yocto-dev: move to v5.10-rc
linux-yocto/5.4: config cleanup / warnings
linux-yocto/5.8: config cleanup / warnings
linux-yocto/5.8: update to v5.8.18
linux-yocto/5.4: update to v5.4.75
kernel: relocate copy of module.lds to module compilation task
linux-yocto/5.4: perf: Alias SYS_futex with SYS_futex_time64 on 32-bit arches with 64bit time_t
linux-yocto/5.8: perf: Alias SYS_futex with SYS_futex_time64 on 32-bit arches with 64bit time_t
linux-yocto/5.8: ext4/tipc warning fixups
linux-yocto/5.4: update to v5.4.78
Chaitanya Vadrevu (1):
isoimage-isohybrid.py: Support adding files/dirs
Changqing Li (2):
timezone: upgrade to 2020d
vulkan-samples: fix do_compile failure
Chee Yang Lee (2):
bluez5: update to 5.55
ruby: update to 2.7.2
Chris Laplante (4):
bitbake: main: extract creation of argument parser into function so it can be utilized externally, e.g. by unit tests
bitbake: bb.ui: delete __init__.py to make bb.ui a namespace package
bitbake: cookerdata: tweak to avoid mutable default argument
cases/bbtests.py: ensure PACKAGE_CLASSES is set to RPM for bbtests.BitbakeTests.test_force_task_1
Dan Callaghan (1):
gdb: add PACKAGECONFIG for xz (lzma) compression support
Denys Dmytriyenko (1):
grep: upgrade 3.4 -> 3.5
Denys Zagorui (1):
binutils: reproducibility: reuse debug-prefix-map for stabs
Federico Pellegrin (1):
openssl: Add c_rehash to misc package and add perl runtime dependency
Fedor Ross (2):
sysvinit: remove bashism to be compatible with dash
eudev: remove bashism to be compatible with dash
Fredrik Gustafsson (1):
package management: Allow dynamic loading of PM
Gratian Crisan (1):
kernel-module-split.bbclass: identify kernel modconf files as configuration files
He Zhe (1):
lttng-modules: Backport a patch to fix btrfs build failure
Hombourger, Cedric (1):
bitbake: fetch2: use relative symlinks for anything pulled from PREMIRRORS
Hongxu Jia (1):
bitbake: Revert "bb.ui: delete __init__.py to make bb.ui a namespace package"
INC@Cisco) (1):
kernel-devsrc: improve reproducibility for arm64
Jason Wessel (2):
base-files/profile: Add universal resize function
systemd-serialgetty: Switch to TERM=linux
Jose Quaresma (31):
spirv-tools: import from meta-oe to OE core
spirv-tools: enable native build and install more header files
glslang: add receipe
shaderc: add receipe
spirv-tools: fix identation and cleanup install append
maintainers.inc: Add Jose Quaresma
gstreamer1.0: Fix reproducibility issue around libcap
gstreamer1.0: upgrade to version 1.18.0
gstreamer1.0-plugins-base: upgrade to version 1.18.0
gstreamer1.0-plugins-base: add new meson option as PACKAGECONFIG
gstreamer1.0-plugins-good: upgrade to version 1.18.0
gstreamer1.0-plugins-good: disable new meson options
gstreamer1.0-plugins-good: add new meson option as PACKAGECONFIG
gstreamer1.0-plugins-bad: upgrade to version 1.18.0
gstreamer1.0-plugins-bad: disable new meson options
gstreamer1.0-plugins-bad: add new meson options as PACKAGECONFIG
gstreamer1.0-plugins-ugly: upgrade to version 1.18.0
gstreamer1.0-python: upgrade to version 1.18.0
gstreamer1.0-python: install append is not need any more
gstreamer1.0-rtsp-server: upgrade to version 1.18.0
gstreamer1.0-vaapi: upgrade to version 1.18.0
gst-examples: upgrade to version 1.18.0
gstreamer1.0-omx: upgrade to version 1.18.0
gstreamer1.0-libav: upgrade to version 1.18.0
gst-devtools: add version 1.18.0 (gst-validate -> gst-devtools)
orc: Upgrade 0.4.31 -> 0.4.32
gstreamer1.0-plugins-good: on wayland qt5 needs qtwayland
gstreamer1.0-libav: add comercial license flags as ffmpeg needs this
gstreamer1.0-plugins-bad: add srt package config knob
ffmpeg: add srt package config knob
gstreamer1.0-plugins-good: add package config knob for the Raspberry Pi
Joseph Reynolds (1):
add new extrausers command passwd-expire
Joshua Watt (8):
documentation: Add Pipenv support
systemd: Re-enable chvt as non-root user without polkit
python3-pycryptodomex: upgrade 3.9.8 -> 3.9.9
weston-init: Stop running weston as root
python3-pycryptodome: upgrade 3.9.8 -> 3.9.9
bitbake: bitbake: hashserve: Add async client
bitbake: bitbake: hashserve: Add support for readonly upstream
bitbake: bitbake: cache: Remove bad keys() function
Kai Kang (1):
sudo: fix multilib conflict
Khasim Mohammed (1):
grub: add grub-nativesdk
Khem Raj (34):
webkitgtk: Disable gold linker and JIT on riscv
init-ifupdown: Define interfaces file for riscv emulators
init-ifupdown: Merge all interface files for differnet qemus
musl: Update to latest master
qemuboot.bbclass: Fix a typo
musl: Add .file directive in crt assembly files
musl: Update to latest
rpm: Fix error.h handing properly on musl
gdb: Update to 10.x release
numactl: Link with libatomic on rv64/rv32
gstreamer: Fix build on 32bit arches with 64bit time_t
rt-tests: Enable only for x86/ppc64 architectures
lto: Add global LTO distro policy file
python3: Enable lto if its in DISTRO_FEATURES
lto.inc: Add -ffat-lto-objects and -fuse-linker-plugin
lto: Introduce LTOEXTRA variable
libaio: Disable LTO
weston: Fix linking with LTO
lto.inc: Disable LTO for xserver-xorg
gcc: Do no parameterize LTO configuration flags
puzzles: Check for excessive constant arguments
lto.inc: Disable LTO for perf
gcc: Handle duplicate names for variables
musl: Update to latest master
lrzsz: Use Cross AR during compile
gawk: Avoid using host ar during cross compile
lto.inc: Disable LTO for webkit
python-numpy: Add support for riscv32
arch-riscv: Enable qemu-usermode on rv32
python3targetconfig.bbclass: Make py3 dep and tasks only for target recipes
go: Update to 1.15.5
binutils: Fix linker errors on chromium/ffmpeg on aarch64
python3-numpy: Upgrade to 1.19.4
python3-numpy: Add ptest
Konrad Weihmann (3):
oeqa/core/context: expose results as variable
oeqa/core/context: initialize _run_end_time
testimage: print results for interrupted runs
Lee Chee Yang (5):
bitbake: BBHandler: prompt error when task name contain expression
libproxy: fix CVE-2020-26154
python3: fix CVE-2020-27619
python3: whitelist CVE-2020-15523
qemu: fix CVE-2020-24352
Loic Domaigne (1):
roofs_*.bbclass: fix missing vardeps for do_rootfs
Luca Boccassi (1):
dbus: split -common and -tools out of main package
Mark Jonas (4):
libsdl2: Fix directfb syntax error
libsdl2: Fix directfb SDL_RenderFillRect
libbsd: Remove BSD-4-Clause from main package
libsdl2: Add directfb to PACKAGECONFIG rdepends
Martin Jansa (5):
tune-arm9tdmi.inc: include arm9tdmi in PACKAGE_ARCHS
gnutls: explicitly set --with-librt-prefix
webkitgtk: fix opengl PACKAGECONFIG
webkitgtk: fix build with x11 enabled
weston: add pam to REQUIRED_DISTRO_FEATURES
Matt Madison (1):
layer.conf: fix syntax error in PATH setting
Max Krummenacher (1):
linux-firmware: rdepend on license for all nvidia packages
Maxime Roussin-BĂ©langer (3):
meta: fix some unresponsive homepages and bugtracker links
bitbake: cache: remove unused variables.
bitbake: monitordisk: remove unused function parameter
Mert Kirpici (2):
bitbake: fetch2: add zstd support to unpack
bitbake: doc/conf.py: add missing import sys
Mingli Yu (2):
bitbake.conf: Exclude ${CCACHE_DIR} from pseudo database
update_udev_hwdb: clean hwdb.bin
Nathan Rossi (4):
vim: add nativesdk to BBCLASSEXTEND
rsync: add nativesdk to BBCLASSEXTEND
diffstat: add nativesdk to BBCLASSEXTEND
cml1.bbclass: Handle ncurses-native being available via pkg-config
Nicolas Dechesne (17):
conf: update for release 3.2
poky.yaml: remove unused variables
poky.yaml: updates for 3.2
sphinx: releases: add link to 3.1.3
what-i-wish-id-known: replace labels with references to section title
sdk-manual: replace labels with references to section title
ref-manual: replace labels with references to section title
dev-manual: replace labels with references to section title
kernel-dev: replace labels with references to section title
test-manual: remove unused labels
bsp-guide: remove unused labels
kernel-dev: remove unused labels
profile-manual: remove unused labels
sdk-manual: remove unused labels
toaster-manual: remove unused labels
Makefile: enable parallel build
bitbake: docs: Makefile: enable parallel build
Norbert Kaminski (1):
grub: Add support for RISC-V
Paul Barker (11):
conf.py: Improve TOC and Outline depth in PDF output
conf.py: Add oe_git directive
documentation/README: Refer to top-level README for contributions
dev-manual-common-tasks: Fix refs to testing branches
dev-manual-common-tasks: Update & move patchwork reference
dev-manual-common-tasks: Tidy up patch submission process
dev-manual-common-tasks: Describe git-send-email accurately
dev-manual-common-tasks: Describe how to handle patch feedback
dev-manual-common-tasks: Describe how to propose changes to stable branches
dev-manual-common-tasks: Re-order patch submission instructions
poky.yaml: Define DISTRO_NAME_NO_CAP_LTS
Paul Eggleton (10):
ref-manual: add reference anchors for each QA check
ref-manual: fix for features_check class change
ref-manual: QA check updates
ref-manual: add PSEUDO_IGNORE_PATHS
ref-manual: add IMAGE_VERSION_SUFFIX variable
ref-manual: add IMAGE_NAME_SUFFIX variable
ref-manual: add migration section for 3.2
ref-manual: add IMAGE_LINK_NAME
ref-manual: add migration info for image-artifact-names
ref-manual: add migration info about MLPREFIX changes
Peter Bergin (2):
rt-tests: backport patch that enable build for all archs
Revert "rt-tests: Enable only for x86/ppc64 architectures"
Purushottam choudhary (1):
systemd: selinux hook handling to enumerate nexthop
Randy MacLeod (1):
libsdl2: Disable video-rpi
Randy Witt (4):
numactl: Add the recipe for numactl
numactl: Remove COMPATIBLE_HOST restrictions
numactl: Skip the ptests when numa is not supported
rt-tests: Update recipes to use 1.8
Ricardo Salveti (1):
dosfstools: add mkfs.vfat to ALTERNATIVE
Richard Leitner (4):
deb: replace deprecated apt force-yes argument
xcb-proto: update to 1.14.1
deb: export INTERCEPT_DIR for remove actions
weston-init: introduce WESTON_GROUP
Richard Purdie (21):
ref-manual/faq: Add entry for why binaries are changed in images
dev-manual: Add a note about prelink changing prebuild binaries
sstatesig: Log timestamps for hashequiv in reprodubile builds for do_package
netbase: Add whitespace to purge bogus hash equivalence from autobuilder
scripts/buildhistory_analysis: Avoid tracebacks from file comparision code
maintainers: Add myself as numactl maintainer to avoid QA errors
bitbake: bitbake: Post release version bump
poky.conf: Post release version bump
libxcb: Fix install file owner/group
bitbake: siggen: Remove broken optimisation
bitbake: fetch2/git: Document that we won't support passwords in git urls
sstatesig: Remove workaround for bitbake taskhash bug
ptest-runner: Fix license as it contains 'or later' clause
libdnf: Fix license as it contains 'or later' clause
alsa-utils: Fix license to GPLv2 only
overview-manual-concepts: Fix the compiler bootstrap process
bitbake: Add missing documentation Makefile
oeqa/commands: Fix compatibility with python 3.9
fs-perms: Ensure /usr/src/debug/ file modes are correct
e2fsprogs: Fix a ptest permissions determinism issue
uninative: Don't use single sstate for pseudo-native
Robert P. J. Day (3):
ref-manual/ref-variables: "PACKAGE_FEEDS_ARCHS" -> "PACKAGE_FEED_ARCHS"
README: "yocto-project-qs" -> "brief-yoctoprojectqs"
adt-manual: delete obsolete ADT manual, and related content
Ross Burton (13):
rpm: use libgcrypt instead of OpenSSL for cryptography
syslinux: add link to upstream discussion in patch
json-glib: use PACKAGECONFIG for tests
json-glib: update patch status
libical: backport a patch to fix build with ICU 68.1
webkitgtk: fix build with ICU 68.1
cve-check: show real PN/PV
python3: add CVE-2007-4559 to whitelist
sqlite3: add CVE-2015-3717 to whitelist
gstreamer1.0-rtsp-server: set CVE_PRODUCT
gstreamer1.0-plugins-base: set CVE_PRODUCT
bitbake: providers: selected version not available should be a warning
cve-update-db-native: handle all-wildcard versions
Saul Wold (1):
classes/buildhistory: record LICENSE
Sinan Kaya (2):
volatile-binds: add /srv to mount and install
kernel-uboot: allow compression option to be configurable
Stacy Gaikovaia (1):
valgrind: helgrind: Intercept libc functions
Steve Sakoman (3):
netbase: update SRC_URI to reflect new file name
openssh: whitelist CVE-2014-9278
cups: whitelist CVE-2018-6553
Tim Orling (22):
python3-atomicwrites: move from meta-python
python3-attrs: move from meta-python
python3-iniconfig: move from meta-python
python3-more-itertools: move from meta-python
python3-pathlib2: move from meta-python
python3-toml: move from meta-python
python3-py: move from meta-python
python3-setuptools-scm: move from meta-python
python3-packaging: move from meta-python
python3-wcwidth: move from meta-python
python3-zipp: move from meta-python
python3-importlib-metadata: move from meta-python
python3-pluggy: move from meta-python
python3-pytest: move from meta-python
maintainers.inc: add self for new pytest packages
python3-more-itertools: upgrade 8.5.0 -> 8.6.0
python3-importlib-metadata: upgrade 2.0.0 to 3.1.0
python3-pytest: RDEPENDS on python3-toml
python3-hypothesis: move from meta-python
python3-sortedcontainers: move from meta-python
maintainers.inc: add self for new python recipes
python3-hypothesis: upgrade 5.41.3 -> 5.41.4
Tom Hochstein (1):
mesa: Add xcb-fixes to loader when using x11 and dri3
Vyacheslav Yurkov (1):
license_image.bbclass: use canonical name for license files
Wonmin Jung (1):
kernel: Set proper LD in KERNEL_KCONFIG_COMMAND
Yann Dirson (6):
systemtap: split examples and python scripts out of main package
systemtap: remove extra dependencies
systemtap: clarify the relation between exporter and python3-probes feature
systemtap: fix install when python3-probes is disabled in PACKAGECONFIG
systemtap: split runtime material in its own package
systemtap: avoid RDEPENDS on python3-core when not using python3
Yann E. MORIN (2):
common-licenses: add bzip2-1.0.4
recipes-core/busybox: fixup licensing information
Yi Zhao (5):
resolvconf: do not install dhclient hooks
connman: set service to conflict with systemd-networkd
pulseaudio: unify volatiles file name
dhcpcd: install dhcpcd to /sbin rather than /usr/sbin
dhcpcd: upgrade 9.3.1 -> 9.3.2
Yongxin Liu (2):
grub: fix several CVEs in grub 2.04
grub: clean up CVE patches
zangrc (18):
python3-pycairo: upgrade 1.19.1 -> 1.20.0
iproute2: upgrade 5.8.0 -> 5.9.0
icu: upgrade 67.1 -> 68.1
libdnf: upgrade 0.54.2 -> 0.55.0
libinput: upgrade 1.16.2 -> 1.16.3
enchant2: upgrade 2.2.12 -> 2.2.13
libdrm: upgrade 2.4.102 -> 2.4.103
gmp: upgrade 6.2.0 -> 6.2.1
gpgme: upgrade 1.14.0 -> 1.15.0
libunwind: upgrade 1.4.0 -> 1.5.0
msmtp: upgrade 1.8.12 -> 1.8.13
gtk-doc: upgrade 1.33.0 -> 1.33.1
hdparm: upgrade 9.58 -> 9.60
libcap-ng: upgrade 0.8 -> 0.8.1
libjpeg-turbo: upgrade 2.0.5 -> 2.0.6
libxkbcommon: upgrade 1.0.1 -> 1.0.3
pulseaudio: upgrade 13.0 -> 14.0
wireless-regdb: upgrade 2020.04.29 -> 2020.11.20
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I22fa6c7160be5ff2105113cc63acc25f8977ae4e
Diffstat (limited to 'poky/meta/recipes-kernel')
26 files changed, 475 insertions, 1878 deletions
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch new file mode 100644 index 0000000000..c2301e711d --- /dev/null +++ b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch @@ -0,0 +1,67 @@ +From d48ec5e1a5fb7907520dee71b1d94045486a0c29 Mon Sep 17 00:00:00 2001 +From: Alexander Kamensky <alexander.kamensky42@gmail.com> +Date: Thu, 12 Nov 2020 12:56:46 -0800 +Subject: [PATCH] arm64: kexec: disabled check if kaslr-seed dtb property was + wiped + +Kexec when loading arm64 kernel checks if chosen/kaslr-seed dtb property is +wiped. It's a good assertion to verify proper behavior of kernel. However, +if bootloader creates and fills kaslr-seed property and kernel is not +configured with CONFIG_RANDOMIZE_BASE then logic of reading and wiping +kaslr-seed does not run. As a result kaslr-seed property is not zero and when +kexec tries to load secondary kernel it fails with the following message: + +setup_2nd_dtb: kaslr-seed is not wiped to 0. +kexec: setup_2nd_dtb failed. +kexec: load failed. + +This was observed on Yocto Project on qemuarm64 machine with 5.8 kernel, +qemu 5.1.0. Qemu created kaslr-seed property but kernel was not configured +with CONFIG_RANDOMIZE_BASE. + +Although check has some value, there is a use-case where it breaks kexec, +this patch removes it. + +Note in described use-case the fact that kaslr-seed is not wiped and user +readable through /sys/firmware/fdt or +/sys/firmware/devicetree/base/chosen/kaslr-seed is not a security problem +as kaslr is disabled anyway. + +Signed-off-by: Alexander Kamensky <alexander.kamensky42@gmail.com> +Upstream-Status: Submitted [http://lists.infradead.org/pipermail/kexec/2020-November/021740.html] +--- + kexec/arch/arm64/kexec-arm64.c | 14 +------------- + 1 file changed, 1 insertion(+), 13 deletions(-) + +Index: kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.c +=================================================================== +--- kexec-tools-2.0.20.orig/kexec/arch/arm64/kexec-arm64.c ++++ kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.c +@@ -428,7 +428,7 @@ static int setup_2nd_dtb(struct dtb *dtb + int len, range_len; + int nodeoffset; + int new_size; +- int result, kaslr_seed; ++ int result; + + result = fdt_check_header(dtb->buf); + +@@ -499,18 +499,6 @@ static int setup_2nd_dtb(struct dtb *dtb + return result; + } + } else { +- kaslr_seed = fdt64_to_cpu(*prop); +- +- /* kaslr_seed must be wiped clean by primary +- * kernel during boot +- */ +- if (kaslr_seed != 0) { +- dbgprintf("%s: kaslr-seed is not wiped to 0.\n", +- __func__); +- result = -EINVAL; +- goto on_error; +- } +- + /* + * Invoke the getrandom system call with + * GRND_NONBLOCK, to make sure we diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb index 1e81ecc2c7..69d2e9bfba 100644 --- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb +++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.20.bb @@ -21,6 +21,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/kexec/kexec-tools-${PV}.tar.gz file://0006-kexec-arm-undefine-__NR_kexec_file_load-for-arm.patch \ file://0007-kexec-un-break-the-build-on-32-bit-x86.patch \ file://0001-kexec-Fix-build-with-fno-common.patch \ + file://0001-arm64-kexec-disabled-check-if-kaslr-seed-dtb-propert.patch \ " SRC_URI[md5sum] = "46724b67f32501c5d3e778161347cad9" diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc index 646dff9a97..dabda2d57e 100644 --- a/poky/meta/recipes-kernel/kmod/kmod.inc +++ b/poky/meta/recipes-kernel/kmod/kmod.inc @@ -4,7 +4,7 @@ SUMMARY = "Tools for managing Linux kernel modules" DESCRIPTION = "kmod is a set of tools to handle common tasks with Linux kernel modules like \ insert, remove, list, check properties, resolve dependencies and aliases." -HOMEPAGE = "http://packages.profusion.mobi/kmod/" +HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kmod/" LICENSE = "GPL-2.0+ & LGPL-2.1+" LICENSE_libkmod = "LGPL-2.1+" SECTION = "base" diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20201022.bb index 0abd28c9fa..93b9d5308a 100644 --- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb +++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20201022.bb @@ -126,7 +126,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=4d229f79f8770b5b2c4aac655b9fabef \ + file://WHENCE;md5=daf28db5d6353de0a886f08106cffa22 \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -198,7 +198,7 @@ PE = "1" SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz" -SRC_URI[sha256sum] = "76d05d5f1eff268d3b80675245fa596f557bd55ee2e16ddd54d18ffeae943887" +SRC_URI[sha256sum] = "bf586e0beb4c65f22bf0a79811f259aa0a5a7cc9f70eebecb260525b6914cef7" inherit allarch @@ -501,6 +501,7 @@ FILES_${PN}-nvidia-license = "${nonarch_base_libdir}/firmware/LICENCE.nvidia" RDEPENDS_${PN}-nvidia-gpu += "${PN}-nvidia-license" RDEPENDS_${PN}-nvidia-tegra += "${PN}-nvidia-license" +RDEPENDS_${PN}-nvidia-tegra-k1 += "${PN}-nvidia-license" # For rtl LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb index aa8e162f4f..8a900ed182 100644 --- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -86,6 +86,12 @@ do_install() { # be dealt with. # cp -a scripts $kerneldir/build + # although module.lds can be regenerated on target via 'make modules_prepare' + # there are several places where 'makes scripts prepare' is done, and that won't + # regenerate the file. So we copy it onto the target as a migration to using + # modules_prepare + cp -a --parents scripts/module.lds $kerneldir/build/ 2>/dev/null || : + if [ -d arch/${ARCH}/scripts ]; then cp -a arch/${ARCH}/scripts $kerneldir/build/arch/${ARCH} fi @@ -113,6 +119,10 @@ do_install() { # but without this file, we get a forced syncconfig run in v5.8+, which prompts and # breaks workflows. cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || : + + if [ -e $kerneldir/include/generated/.vdso-offsets.h.cmd ]; then + rm $kerneldir/include/generated/.vdso-offsets.h.cmd + fi ) # now grab the chunks from the source tree that we need diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index fbc62f29c8..6272af6253 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "5.9-rc+" +LINUX_VERSION ?= "5.10-rc+" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index 13f7246f46..104ada2db5 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "3a5f7e9a874f0a6e9ad599b4fc6c491db231dd6f" -SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2" +SRCREV_machine ?= "97576fb7447efba82eb025bde3ae9ceb29939d5e" +SRCREV_meta ?= "d626f9108d590d41e82b97cbffc380aa699e86e1" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.69" +LINUX_VERSION ?= "5.4.78" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb index 3d6d750c86..033dfc76a2 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277" +SRCREV_machine ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_meta ?= "7883b60d324029d26020c0b3f826b35c52fd9674" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.8.13" +LINUX_VERSION ?= "5.8.18" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index 00e1b65782..d8784c49ad 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.69" +LINUX_VERSION ?= "5.4.78" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "58f39df46d9daf12a095ffe225032ec325612960" -SRCREV_machine ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2" +SRCREV_machine_qemuarm ?= "6cf3b1d30bc7ac9bd86190129b3cbbdd04b8b236" +SRCREV_machine ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_meta ?= "d626f9108d590d41e82b97cbffc380aa699e86e1" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb index 764264f637..50cee07620 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.8.13" +LINUX_VERSION ?= "5.8.18" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "627cc1717f47c4d9bc9d58f88b1764990d982a99" -SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277" +SRCREV_machine_qemuarm ?= "9509db6e3ed6a23b1f7495b53248d1cbfe22710b" +SRCREV_machine ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_meta ?= "7883b60d324029d26020c0b3f826b35c52fd9674" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index bcc5003268..c24e5ddc87 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "561d4f6eb1de32e1448451db86656826cf406eb5" -SRCREV_machine_qemuarm64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_machine_qemumips ?= "e421f3f2399c153c4d58241cb6d1be926f7efc45" -SRCREV_machine_qemuppc ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_machine_qemuriscv64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_machine_qemux86 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_machine_qemux86-64 ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_machine_qemumips64 ?= "72d2f11b5f171e196d6b9824b82575d9a7b59e6f" -SRCREV_machine ?= "cfcdd63145c0d741e57ee3e3e58f794229c6c09c" -SRCREV_meta ?= "7f765dcb29003bafc9c0ac770147940be6c420b2" +SRCREV_machine_qemuarm ?= "b3bafed66cf1be24caaa9c876d7d9a8298df831b" +SRCREV_machine_qemuarm64 ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_machine_qemumips ?= "36c2a0b1caef0b2dd6b5777d1939c383238536a8" +SRCREV_machine_qemuppc ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_machine_qemuriscv64 ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_machine_qemux86 ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_machine_qemux86-64 ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_machine_qemumips64 ?= "971a3cedf9a2a7774fa072b9a13380fb59fd605b" +SRCREV_machine ?= "370ef947d5b1470e858bae5a300110566c994b9f" +SRCREV_meta ?= "d626f9108d590d41e82b97cbffc380aa699e86e1" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.69" +LINUX_VERSION ?= "5.4.78" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb index f80ae2359b..af576891e2 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.8/standard/base" KBRANCH_qemux86-64 ?= "v5.8/standard/base" KBRANCH_qemumips64 ?= "v5.8/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "41542e01d0deb5a38c190809f4fd01a442769938" -SRCREV_machine_qemuarm64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_machine_qemumips ?= "36e642d5b6c5b1d05f6172a75df172ad8fefc30b" -SRCREV_machine_qemuppc ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_machine_qemuriscv64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_machine_qemux86 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_machine_qemux86-64 ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_machine_qemumips64 ?= "5538a54afd2525803729c85a40609cae292cb242" -SRCREV_machine ?= "5981001bf03f0d0c1cf641a2287ab6368baf628a" -SRCREV_meta ?= "34775c20bc4f4ac32ac7eded79f9dc8ca77e4277" +SRCREV_machine_qemuarm ?= "14b463d0e5c1e2ff354244420f9bbc7f0ab80533" +SRCREV_machine_qemuarm64 ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_machine_qemumips ?= "8d8d9afb396f154f366f32948fdff3cf4e269841" +SRCREV_machine_qemuppc ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_machine_qemuriscv64 ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_machine_qemux86 ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_machine_qemux86-64 ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_machine_qemumips64 ?= "01a02b058f9a8941032b298b8d25c673526152f4" +SRCREV_machine ?= "3c5d210805d61bea8f8a8081e0e3a89ea8a61f3f" +SRCREV_meta ?= "7883b60d324029d26020c0b3f826b35c52fd9674" # remap qemuarm to qemuarma15 for the 5.8 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.8;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" -LINUX_VERSION ?= "5.8.13" +LINUX_VERSION ?= "5.8.18" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch deleted file mode 100644 index ae8bec45de..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ff4d1d7e85be94ef43709cd698f0ec9a12f247d1 Mon Sep 17 00:00:00 2001 -From: Beniamin Sandu <beniaminsandu@gmail.com> -Date: Thu, 13 Aug 2020 16:24:39 +0300 -Subject: [PATCH 01/10] Kconfig: fix dependency issue when building in-tree - without CONFIG_FTRACE - -When building in-tree, one could disable CONFIG_FTRACE from kernel -config which will leave CONFIG_TRACEPOINTS selected by LTTNG modules, -but generate a lot of linker errors like below because it leaves out -other stuff, e.g.: - -trace.c:(.text+0xd86b): undefined reference to `trace_event_buffer_reserve' -ld: trace.c:(.text+0xd8de): undefined reference to `trace_event_buffer_commit' -ld: trace.c:(.text+0xd926): undefined reference to `event_triggers_call' -ld: trace.c:(.text+0xd942): undefined reference to `trace_event_ignore_this_pid' -ld: net/mac80211/trace.o: in function `trace_event_raw_event_drv_tdls_cancel_channel_switch': - -It appears to be caused by the fact that TRACE_EVENT macros in the Linux -kernel depend on the Ftrace ring buffer as soon as CONFIG_TRACEPOINTS is -enabled. - -Steps to reproduce: - -- Get a clone of an upstream stable kernel and use scripts/built-in.sh on it - -- Configure a standard x86-64 build, enable built-in LTTNG but disable - CONFIG_FTRACE from Kernel Hacking-->Tracers using menuconfig - -- Build will fail at linking stage - -Upstream-Status: Backport - -Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Kconfig b/Kconfig -index acdab73..10eccff 100644 ---- a/Kconfig -+++ b/Kconfig -@@ -2,7 +2,7 @@ - - config LTTNG - tristate "LTTng support" -- select TRACEPOINTS -+ select TRACING - help - LTTng is an open source tracing framework for Linux. - --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch new file mode 100644 index 0000000000..956f53d7b7 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch @@ -0,0 +1,318 @@ +From e13a7d262928984154fcf89feb14098e0cd1ad31 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson <mjeanson@efficios.com> +Date: Tue, 27 Oct 2020 11:42:23 -0400 +Subject: [PATCH 04/11] fix: btrfs: tracepoints: output proper root owner for + trace_find_free_extent() (v5.10) + +See upstream commit : + + commit 437490fed3b0c9ae21af8f70e0f338d34560842b + Author: Qu Wenruo <wqu@suse.com> + Date: Tue Jul 28 09:42:49 2020 +0800 + + btrfs: tracepoints: output proper root owner for trace_find_free_extent() + + The current trace event always output result like this: + + find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA) + find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=4(METADATA) + find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA) + find_free_extent: root=2(EXTENT_TREE) len=8192 empty_size=0 flags=1(DATA) + find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA) + find_free_extent: root=2(EXTENT_TREE) len=4096 empty_size=0 flags=1(DATA) + + T's saying we're allocating data extent for EXTENT tree, which is not + even possible. + + It's because we always use EXTENT tree as the owner for + trace_find_free_extent() without using the @root from + btrfs_reserve_extent(). + + This patch will change the parameter to use proper @root for + trace_find_free_extent(): + + Now it looks much better: + + find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) + find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA) + find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=1(DATA) + find_free_extent: root=5(FS_TREE) len=4096 empty_size=0 flags=1(DATA) + find_free_extent: root=5(FS_TREE) len=8192 empty_size=0 flags=1(DATA) + find_free_extent: root=5(FS_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) + find_free_extent: root=7(CSUM_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) + find_free_extent: root=2(EXTENT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) + find_free_extent: root=1(ROOT_TREE) len=16384 empty_size=0 flags=36(METADATA|DUP) + +Signed-off-by: Michael Jeanson <mjeanson@efficios.com> +Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> +Change-Id: I1d674064d29b31417e2acffdeb735f5052a87032 + +Upstream-Status: Backport + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + instrumentation/events/lttng-module/btrfs.h | 206 ++++++++++++-------- + 1 file changed, 122 insertions(+), 84 deletions(-) + +diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h +index 7b29008..52fcfd0 100644 +--- a/instrumentation/events/lttng-module/btrfs.h ++++ b/instrumentation/events/lttng-module/btrfs.h +@@ -1856,7 +1856,29 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent, btrfs_reserved_extent_f + + #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ + +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0) || \ ++ LTTNG_KERNEL_RANGE(5,9,6, 5,10,0) || \ ++ LTTNG_KERNEL_RANGE(5,4,78, 5,5,0)) ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(root, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, root->lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, root_objectid, root->root_key.objectid) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++ ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)) ++ + LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, + + btrfs_find_free_extent, +@@ -1874,6 +1896,105 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, + ) + ) + ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(fs_info, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++ ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(fs_info, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++ ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(fs_info, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++ ++#elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ ++ LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(root, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_integer(u64, root_objectid, root->root_key.objectid) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) ++ ++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, ++ ++ btrfs_find_free_extent, ++ ++ TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, ++ u64 data), ++ ++ TP_ARGS(root, num_bytes, empty_size, data), ++ ++ TP_FIELDS( ++ ctf_integer(u64, root_objectid, root->root_key.objectid) ++ ctf_integer(u64, num_bytes, num_bytes) ++ ctf_integer(u64, empty_size, empty_size) ++ ctf_integer(u64, data, data) ++ ) ++) ++#endif ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)) + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(const struct btrfs_block_group *block_group, u64 start, +@@ -1907,22 +2028,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus + ) + + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,18,0)) +-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, +- +- btrfs_find_free_extent, +- +- TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, +- u64 data), +- +- TP_ARGS(fs_info, num_bytes, empty_size, data), +- +- TP_FIELDS( +- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) +- ctf_integer(u64, num_bytes, num_bytes) +- ctf_integer(u64, empty_size, empty_size) +- ctf_integer(u64, data, data) +- ) +-) + + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + +@@ -1957,22 +2062,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus + ) + + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0)) +-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, +- +- btrfs_find_free_extent, +- +- TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, +- u64 data), +- +- TP_ARGS(fs_info, num_bytes, empty_size, data), +- +- TP_FIELDS( +- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) +- ctf_integer(u64, num_bytes, num_bytes) +- ctf_integer(u64, empty_size, empty_size) +- ctf_integer(u64, data, data) +- ) +-) + + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + +@@ -2011,23 +2100,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus + + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) + +-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, +- +- btrfs_find_free_extent, +- +- TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size, +- u64 data), +- +- TP_ARGS(fs_info, num_bytes, empty_size, data), +- +- TP_FIELDS( +- ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE) +- ctf_integer(u64, num_bytes, num_bytes) +- ctf_integer(u64, empty_size, empty_size) +- ctf_integer(u64, data, data) +- ) +-) +- + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_fs_info *fs_info, +@@ -2066,23 +2138,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus + LTTNG_SLE_KERNEL_RANGE(4,4,92,6,0,0, 4,4,92,7,0,0) || \ + LTTNG_SLE_KERNEL_RANGE(4,4,103,6,0,0, 4,5,0,0,0,0)) + +-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, +- +- btrfs_find_free_extent, +- +- TP_PROTO(const struct btrfs_root *root, u64 num_bytes, u64 empty_size, +- u64 data), +- +- TP_ARGS(root, num_bytes, empty_size, data), +- +- TP_FIELDS( +- ctf_integer(u64, root_objectid, root->root_key.objectid) +- ctf_integer(u64, num_bytes, num_bytes) +- ctf_integer(u64, empty_size, empty_size) +- ctf_integer(u64, data, data) +- ) +-) +- + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(const struct btrfs_root *root, +@@ -2120,23 +2175,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_clus + + #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + +-LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent, +- +- btrfs_find_free_extent, +- +- TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, +- u64 data), +- +- TP_ARGS(root, num_bytes, empty_size, data), +- +- TP_FIELDS( +- ctf_integer(u64, root_objectid, root->root_key.objectid) +- ctf_integer(u64, num_bytes, num_bytes) +- ctf_integer(u64, empty_size, empty_size) +- ctf_integer(u64, data, data) +- ) +-) +- + LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_root *root, +-- +2.17.1 + diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch deleted file mode 100644 index fab673b854..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch +++ /dev/null @@ -1,41 +0,0 @@ -From e10ab43dd0e425df5bc0ac763447664ed075ba05 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 10 Aug 2020 11:22:05 -0400 -Subject: [PATCH 02/10] fix: Move mmutrace.h into the mmu/ sub-directory (v5.9) - - commit 33e3042dac6bcc33b80835f7d7b502b1d74c457c - Author: Sean Christopherson <sean.j.christopherson@intel.com> - Date: Mon Jun 22 13:20:29 2020 -0700 - - KVM: x86/mmu: Move mmu_audit.c and mmutrace.h into the mmu/ sub-directory - - Move mmu_audit.c and mmutrace.h under mmu/ where they belong. - -Upstream-Status: Backport - -Change-Id: I582525ccca34e1e3bd62870364108a7d3e9df2e4 -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - probes/lttng-probe-kvm-x86-mmu.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c -index 37384a2..5a7ef1e 100644 ---- a/probes/lttng-probe-kvm-x86-mmu.c -+++ b/probes/lttng-probe-kvm-x86-mmu.c -@@ -24,7 +24,11 @@ - */ - #include <wrapper/tracepoint.h> - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+#include <../../arch/x86/kvm/mmu/mmutrace.h> -+#else - #include <../../arch/x86/kvm/mmutrace.h> -+#endif - - #undef TRACE_INCLUDE_PATH - #undef TRACE_INCLUDE_FILE --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch deleted file mode 100644 index 524631cc72..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch +++ /dev/null @@ -1,39 +0,0 @@ -From f16315cc45c4c6b880de541bb092ca18a13952b7 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 10 Aug 2020 11:36:03 -0400 -Subject: [PATCH 03/10] fix: KVM: x86/mmu: Make kvm_mmu_page definition and - accessor internal-only (v5.9) - - commit 985ab2780164698ec6e7d73fad523d50449261dd - Author: Sean Christopherson <sean.j.christopherson@intel.com> - Date: Mon Jun 22 13:20:32 2020 -0700 - - KVM: x86/mmu: Make kvm_mmu_page definition and accessor internal-only - - Make 'struct kvm_mmu_page' MMU-only, nothing outside of the MMU should - be poking into the gory details of shadow pages. - -Upstream-Status: Backport - -Change-Id: Ia5c1b9c49c2b00dad1d5b17c50c3dc730dafda20 -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - probes/lttng-probe-kvm-x86-mmu.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/probes/lttng-probe-kvm-x86-mmu.c b/probes/lttng-probe-kvm-x86-mmu.c -index 5a7ef1e..8f98186 100644 ---- a/probes/lttng-probe-kvm-x86-mmu.c -+++ b/probes/lttng-probe-kvm-x86-mmu.c -@@ -25,6 +25,7 @@ - #include <wrapper/tracepoint.h> - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+#include <../../arch/x86/kvm/mmu/mmu_internal.h> - #include <../../arch/x86/kvm/mmu/mmutrace.h> - #else - #include <../../arch/x86/kvm/mmutrace.h> --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch deleted file mode 100644 index e29c07252c..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 8fe742807e65af29dac3fea568ff93cbc5dd9a56 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 24 Aug 2020 15:26:04 -0400 -Subject: [PATCH 04/10] fix: ext4: limit the length of per-inode prealloc list - (v5.9) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -See upstream commit: - - commit 27bc446e2def38db3244a6eb4bb1d6312936610a - Author: brookxu <brookxu.cn@gmail.com> - Date: Mon Aug 17 15:36:15 2020 +0800 - - ext4: limit the length of per-inode prealloc list - - In the scenario of writing sparse files, the per-inode prealloc list may - be very long, resulting in high overhead for ext4_mb_use_preallocated(). - To circumvent this problem, we limit the maximum length of per-inode - prealloc list to 512 and allow users to modify it. - - After patching, we observed that the sys ratio of cpu has dropped, and - the system throughput has increased significantly. We created a process - to write the sparse file, and the running time of the process on the - fixed kernel was significantly reduced, as follows: - - Running time on unfixed kernel: - [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat - real 0m2.051s - user 0m0.008s - sys 0m2.026s - - Running time on fixed kernel: - [root@TENCENT64 ~]# time taskset 0x01 ./sparse /data1/sparce.dat - real 0m0.471s - user 0m0.004s - sys 0m0.395s - -Upstream-Status: Backport - -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Change-Id: I5169cb24853d4da32e2862a6626f1f058689b053 ---- - instrumentation/events/lttng-module/ext4.h | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h -index 5f7ab28..72ad4c9 100644 ---- a/instrumentation/events/lttng-module/ext4.h -+++ b/instrumentation/events/lttng-module/ext4.h -@@ -460,6 +460,20 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa, - ) - #endif - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations, -+ TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed), -+ -+ TP_ARGS(inode, len, needed), -+ -+ TP_FIELDS( -+ ctf_integer(dev_t, dev, inode->i_sb->s_dev) -+ ctf_integer(ino_t, ino, inode->i_ino) -+ ctf_integer(unsigned int, len, len) -+ ctf_integer(unsigned int, needed, needed) -+ ) -+) -+#else - LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations, - TP_PROTO(struct inode *inode), - -@@ -470,6 +484,7 @@ LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations, - ctf_integer(ino_t, ino, inode->i_ino) - ) - ) -+#endif - - LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations, - TP_PROTO(struct super_block *sb, int needed), --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch deleted file mode 100644 index f76e9698c8..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 52563d02a9234215b62c5f519aa1b5d8589ccd0a Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 24 Aug 2020 15:37:50 -0400 -Subject: [PATCH 05/10] =?UTF-8?q?fix:=20ext4:=20indicate=20via=20a=20block?= - =?UTF-8?q?=20bitmap=20read=20is=20prefetched=E2=80=A6=20(v5.9)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -See upstream commit: - - commit ab74c7b23f3770935016e3eb3ecdf1e42b73efaa - Author: Theodore Ts'o <tytso@mit.edu> - Date: Wed Jul 15 11:48:55 2020 -0400 - - ext4: indicate via a block bitmap read is prefetched via a tracepoint - - Modify the ext4_read_block_bitmap_load tracepoint so that it tells us - whether a block bitmap is being prefetched. - -Upstream-Status: Backport - -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Change-Id: I0e5e2c5b8004223d0928235c092449ee16a940e1 ---- - instrumentation/events/lttng-module/ext4.h | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h -index 72ad4c9..4476abb 100644 ---- a/instrumentation/events/lttng-module/ext4.h -+++ b/instrumentation/events/lttng-module/ext4.h -@@ -893,12 +893,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, - TP_ARGS(sb, group) - ) - -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+LTTNG_TRACEPOINT_EVENT(ext4_read_block_bitmap_load, -+ TP_PROTO(struct super_block *sb, unsigned long group, bool prefetch), -+ -+ TP_ARGS(sb, group, prefetch), -+ -+ TP_FIELDS( -+ ctf_integer(dev_t, dev, sb->s_dev) -+ ctf_integer(__u32, group, group) -+ ctf_integer(bool, prefetch, prefetch) -+ ) -+) -+#else - LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load, - - TP_PROTO(struct super_block *sb, unsigned long group), - - TP_ARGS(sb, group) - ) -+#endif - - LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap, - --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch deleted file mode 100644 index 0970dd30aa..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch +++ /dev/null @@ -1,391 +0,0 @@ -From 57ccbfa6a8a79c7b84394c2097efaf7935607aa5 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Tue, 25 Aug 2020 10:56:29 -0400 -Subject: [PATCH 06/10] fix: removal of [smp_]read_barrier_depends (v5.9) - -See upstream commits: - - commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb - Author: Will Deacon <will@kernel.org> - Date: Tue Oct 24 11:22:47 2017 +0100 - - locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE() - - In preparation for the removal of lockless_dereference(), which is the - same as READ_ONCE() on all architectures other than Alpha, add an - implicit smp_read_barrier_depends() to READ_ONCE() so that it can be - used to head dependency chains on all architectures. - - commit 76ebbe78f7390aee075a7f3768af197ded1bdfbb - Author: Will Deacon <will.deacon@arm.com> - Date: Tue Oct 24 11:22:47 2017 +0100 - - locking/barriers: Add implicit smp_read_barrier_depends() to READ_ONCE() - - In preparation for the removal of lockless_dereference(), which is the - same as READ_ONCE() on all architectures other than Alpha, add an - implicit smp_read_barrier_depends() to READ_ONCE() so that it can be - used to head dependency chains on all architectures. - -Upstream-Status: Backport - -Change-Id: Ife8880bd9378dca2972da8838f40fc35ccdfaaac -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - instrumentation/events/lttng-module/i2c.h | 4 ++-- - lib/ringbuffer/backend.h | 2 +- - lib/ringbuffer/backend_internal.h | 2 +- - lib/ringbuffer/frontend.h | 4 ++-- - lib/ringbuffer/ring_buffer_frontend.c | 4 ++-- - lib/ringbuffer/ring_buffer_iterator.c | 2 +- - lttng-events.c | 8 ++++---- - probes/lttng-kprobes.c | 6 +++--- - probes/lttng-kretprobes.c | 6 +++--- - probes/lttng-tracepoint-event-impl.h | 12 ++++++------ - probes/lttng-uprobes.c | 6 +++--- - wrapper/compiler.h | 18 ++++++++++++++++++ - wrapper/trace-clock.h | 15 +++++---------- - 13 files changed, 51 insertions(+), 38 deletions(-) - -diff --git a/instrumentation/events/lttng-module/i2c.h b/instrumentation/events/lttng-module/i2c.h -index dcbabf6..131d134 100644 ---- a/instrumentation/events/lttng-module/i2c.h -+++ b/instrumentation/events/lttng-module/i2c.h -@@ -23,7 +23,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_write, - - TP_code_pre( - tp_locvar->extract_sensitive_payload = -- READ_ONCE(extract_sensitive_payload); -+ LTTNG_READ_ONCE(extract_sensitive_payload); - ), - - TP_FIELDS( -@@ -78,7 +78,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(i2c_reply, - - TP_code_pre( - tp_locvar->extract_sensitive_payload = -- READ_ONCE(extract_sensitive_payload); -+ LTTNG_READ_ONCE(extract_sensitive_payload); - ), - - TP_FIELDS( -diff --git a/lib/ringbuffer/backend.h b/lib/ringbuffer/backend.h -index da937f2..43e1d47 100644 ---- a/lib/ringbuffer/backend.h -+++ b/lib/ringbuffer/backend.h -@@ -156,7 +156,7 @@ size_t lib_ring_buffer_do_strcpy(const struct lib_ring_buffer_config *config, - * Only read source character once, in case it is - * modified concurrently. - */ -- c = READ_ONCE(src[count]); -+ c = LTTNG_READ_ONCE(src[count]); - if (!c) - break; - lib_ring_buffer_do_copy(config, &dest[count], &c, 1); -diff --git a/lib/ringbuffer/backend_internal.h b/lib/ringbuffer/backend_internal.h -index 2d6a345..1226fd8 100644 ---- a/lib/ringbuffer/backend_internal.h -+++ b/lib/ringbuffer/backend_internal.h -@@ -367,7 +367,7 @@ void lib_ring_buffer_clear_noref(const struct lib_ring_buffer_config *config, - * Performing a volatile access to read the sb_pages, because we want to - * read a coherent version of the pointer and the associated noref flag. - */ -- id = READ_ONCE(bufb->buf_wsb[idx].id); -+ id = LTTNG_READ_ONCE(bufb->buf_wsb[idx].id); - for (;;) { - /* This check is called on the fast path for each record. */ - if (likely(!subbuffer_id_is_noref(config, id))) { -diff --git a/lib/ringbuffer/frontend.h b/lib/ringbuffer/frontend.h -index 6f516d9..41382fe 100644 ---- a/lib/ringbuffer/frontend.h -+++ b/lib/ringbuffer/frontend.h -@@ -79,7 +79,7 @@ void *channel_destroy(struct channel *chan); - #define for_each_channel_cpu(cpu, chan) \ - for ((cpu) = -1; \ - ({ (cpu) = cpumask_next(cpu, (chan)->backend.cpumask); \ -- smp_read_barrier_depends(); (cpu) < nr_cpu_ids; });) -+ smp_rmb(); (cpu) < nr_cpu_ids; });) - - extern struct lib_ring_buffer *channel_get_ring_buffer( - const struct lib_ring_buffer_config *config, -@@ -155,7 +155,7 @@ static inline - int lib_ring_buffer_is_finalized(const struct lib_ring_buffer_config *config, - struct lib_ring_buffer *buf) - { -- int finalized = READ_ONCE(buf->finalized); -+ int finalized = LTTNG_READ_ONCE(buf->finalized); - /* - * Read finalized before counters. - */ -diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c -index 3cab365..4980d20 100644 ---- a/lib/ringbuffer/ring_buffer_frontend.c -+++ b/lib/ringbuffer/ring_buffer_frontend.c -@@ -1074,7 +1074,7 @@ int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, - int finalized; - - retry: -- finalized = READ_ONCE(buf->finalized); -+ finalized = LTTNG_READ_ONCE(buf->finalized); - /* - * Read finalized before counters. - */ -@@ -1245,7 +1245,7 @@ int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf, - return -EBUSY; - } - retry: -- finalized = READ_ONCE(buf->finalized); -+ finalized = LTTNG_READ_ONCE(buf->finalized); - /* - * Read finalized before counters. - */ -diff --git a/lib/ringbuffer/ring_buffer_iterator.c b/lib/ringbuffer/ring_buffer_iterator.c -index d25db72..7b4f20a 100644 ---- a/lib/ringbuffer/ring_buffer_iterator.c -+++ b/lib/ringbuffer/ring_buffer_iterator.c -@@ -46,7 +46,7 @@ restart: - switch (iter->state) { - case ITER_GET_SUBBUF: - ret = lib_ring_buffer_get_next_subbuf(buf); -- if (ret && !READ_ONCE(buf->finalized) -+ if (ret && !LTTNG_READ_ONCE(buf->finalized) - && config->alloc == RING_BUFFER_ALLOC_GLOBAL) { - /* - * Use "pull" scheme for global buffers. The reader -diff --git a/lttng-events.c b/lttng-events.c -index be7e389..d719294 100644 ---- a/lttng-events.c -+++ b/lttng-events.c -@@ -1719,7 +1719,7 @@ int lttng_metadata_printf(struct lttng_session *session, - size_t len; - va_list ap; - -- WARN_ON_ONCE(!READ_ONCE(session->active)); -+ WARN_ON_ONCE(!LTTNG_READ_ONCE(session->active)); - - va_start(ap, fmt); - str = kvasprintf(GFP_KERNEL, fmt, ap); -@@ -2305,7 +2305,7 @@ int _lttng_event_metadata_statedump(struct lttng_session *session, - { - int ret = 0; - -- if (event->metadata_dumped || !READ_ONCE(session->active)) -+ if (event->metadata_dumped || !LTTNG_READ_ONCE(session->active)) - return 0; - if (chan->channel_type == METADATA_CHANNEL) - return 0; -@@ -2377,7 +2377,7 @@ int _lttng_channel_metadata_statedump(struct lttng_session *session, - { - int ret = 0; - -- if (chan->metadata_dumped || !READ_ONCE(session->active)) -+ if (chan->metadata_dumped || !LTTNG_READ_ONCE(session->active)) - return 0; - - if (chan->channel_type == METADATA_CHANNEL) -@@ -2604,7 +2604,7 @@ int _lttng_session_metadata_statedump(struct lttng_session *session) - struct lttng_event *event; - int ret = 0; - -- if (!READ_ONCE(session->active)) -+ if (!LTTNG_READ_ONCE(session->active)) - return 0; - - lttng_metadata_begin(session); -diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c -index a44eaa1..38fb72e 100644 ---- a/probes/lttng-kprobes.c -+++ b/probes/lttng-kprobes.c -@@ -31,11 +31,11 @@ int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs) - int ret; - unsigned long data = (unsigned long) p->addr; - -- if (unlikely(!READ_ONCE(chan->session->active))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->session->active))) - return 0; -- if (unlikely(!READ_ONCE(chan->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->enabled))) - return 0; -- if (unlikely(!READ_ONCE(event->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(event->enabled))) - return 0; - - lib_ring_buffer_ctx_init(&ctx, chan->chan, <tng_probe_ctx, sizeof(data), -diff --git a/probes/lttng-kretprobes.c b/probes/lttng-kretprobes.c -index ab98ff2..a6bcd21 100644 ---- a/probes/lttng-kretprobes.c -+++ b/probes/lttng-kretprobes.c -@@ -51,11 +51,11 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi, - unsigned long parent_ip; - } payload; - -- if (unlikely(!READ_ONCE(chan->session->active))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->session->active))) - return 0; -- if (unlikely(!READ_ONCE(chan->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->enabled))) - return 0; -- if (unlikely(!READ_ONCE(event->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(event->enabled))) - return 0; - - payload.ip = (unsigned long) krpi->rp->kp.addr; -diff --git a/probes/lttng-tracepoint-event-impl.h b/probes/lttng-tracepoint-event-impl.h -index 77b8638..72a669e 100644 ---- a/probes/lttng-tracepoint-event-impl.h -+++ b/probes/lttng-tracepoint-event-impl.h -@@ -1132,11 +1132,11 @@ static void __event_probe__##_name(void *__data, _proto) \ - \ - if (!_TP_SESSION_CHECK(session, __session)) \ - return; \ -- if (unlikely(!READ_ONCE(__session->active))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__session->active))) \ - return; \ -- if (unlikely(!READ_ONCE(__chan->enabled))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__chan->enabled))) \ - return; \ -- if (unlikely(!READ_ONCE(__event->enabled))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__event->enabled))) \ - return; \ - __lf = lttng_rcu_dereference(__session->pid_tracker.p); \ - if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid))) \ -@@ -1225,11 +1225,11 @@ static void __event_probe__##_name(void *__data) \ - \ - if (!_TP_SESSION_CHECK(session, __session)) \ - return; \ -- if (unlikely(!READ_ONCE(__session->active))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__session->active))) \ - return; \ -- if (unlikely(!READ_ONCE(__chan->enabled))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__chan->enabled))) \ - return; \ -- if (unlikely(!READ_ONCE(__event->enabled))) \ -+ if (unlikely(!LTTNG_READ_ONCE(__event->enabled))) \ - return; \ - __lf = lttng_rcu_dereference(__session->pid_tracker.p); \ - if (__lf && likely(!lttng_id_tracker_lookup(__lf, current->tgid))) \ -diff --git a/probes/lttng-uprobes.c b/probes/lttng-uprobes.c -index bc10128..bda1d9b 100644 ---- a/probes/lttng-uprobes.c -+++ b/probes/lttng-uprobes.c -@@ -40,11 +40,11 @@ int lttng_uprobes_handler_pre(struct uprobe_consumer *uc, struct pt_regs *regs) - unsigned long ip; - } payload; - -- if (unlikely(!READ_ONCE(chan->session->active))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->session->active))) - return 0; -- if (unlikely(!READ_ONCE(chan->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(chan->enabled))) - return 0; -- if (unlikely(!READ_ONCE(event->enabled))) -+ if (unlikely(!LTTNG_READ_ONCE(event->enabled))) - return 0; - - lib_ring_buffer_ctx_init(&ctx, chan->chan, <tng_probe_ctx, -diff --git a/wrapper/compiler.h b/wrapper/compiler.h -index 1496f33..b9f8c51 100644 ---- a/wrapper/compiler.h -+++ b/wrapper/compiler.h -@@ -9,6 +9,7 @@ - #define _LTTNG_WRAPPER_COMPILER_H - - #include <linux/compiler.h> -+#include <linux/version.h> - - /* - * Don't allow compiling with buggy compiler. -@@ -39,4 +40,21 @@ - # define WRITE_ONCE(x, val) ({ ACCESS_ONCE(x) = val; }) - #endif - -+/* -+ * In v4.15 a smp read barrier was added to READ_ONCE to replace -+ * lockless_dereference(), replicate this behavior on prior kernels -+ * and remove calls to smp_read_barrier_depends which was dropped -+ * in v5.9. -+ */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) -+#define LTTNG_READ_ONCE(x) READ_ONCE(x) -+#else -+#define LTTNG_READ_ONCE(x) \ -+({ \ -+ typeof(x) __val = READ_ONCE(x); \ -+ smp_read_barrier_depends(); \ -+ __val; \ -+}) -+#endif -+ - #endif /* _LTTNG_WRAPPER_COMPILER_H */ -diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h -index 9f4e366..187fc82 100644 ---- a/wrapper/trace-clock.h -+++ b/wrapper/trace-clock.h -@@ -160,33 +160,30 @@ static inline void put_trace_clock(void) - - static inline u64 trace_clock_read64(void) - { -- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); -+ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock); - - if (likely(!ltc)) { - return trace_clock_read64_monotonic(); - } else { -- read_barrier_depends(); /* load ltc before content */ - return ltc->read64(); - } - } - - static inline u64 trace_clock_freq(void) - { -- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); -+ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock); - - if (!ltc) { - return trace_clock_freq_monotonic(); - } else { -- read_barrier_depends(); /* load ltc before content */ - return ltc->freq(); - } - } - - static inline int trace_clock_uuid(char *uuid) - { -- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); -+ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock); - -- read_barrier_depends(); /* load ltc before content */ - /* Use default UUID cb when NULL */ - if (!ltc || !ltc->uuid) { - return trace_clock_uuid_monotonic(uuid); -@@ -197,24 +194,22 @@ static inline int trace_clock_uuid(char *uuid) - - static inline const char *trace_clock_name(void) - { -- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); -+ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock); - - if (!ltc) { - return trace_clock_name_monotonic(); - } else { -- read_barrier_depends(); /* load ltc before content */ - return ltc->name(); - } - } - - static inline const char *trace_clock_description(void) - { -- struct lttng_trace_clock *ltc = READ_ONCE(lttng_trace_clock); -+ struct lttng_trace_clock *ltc = LTTNG_READ_ONCE(lttng_trace_clock); - - if (!ltc) { - return trace_clock_description_monotonic(); - } else { -- read_barrier_depends(); /* load ltc before content */ - return ltc->description(); - } - } --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch deleted file mode 100644 index 2843c9cb62..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch +++ /dev/null @@ -1,59 +0,0 @@ -From eae02feb58064eee5ce15a9f6bdffd107c47da05 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 31 Aug 2020 11:41:38 -0400 -Subject: [PATCH 07/10] fix: writeback: Drop I_DIRTY_TIME_EXPIRE (v5.9) - -See upstream commit: - - commit 5fcd57505c002efc5823a7355e21f48dd02d5a51 - Author: Jan Kara <jack@suse.cz> - Date: Fri May 29 16:24:43 2020 +0200 - - writeback: Drop I_DIRTY_TIME_EXPIRE - - The only use of I_DIRTY_TIME_EXPIRE is to detect in - __writeback_single_inode() that inode got there because flush worker - decided it's time to writeback the dirty inode time stamps (either - because we are syncing or because of age). However we can detect this - directly in __writeback_single_inode() and there's no need for the - strange propagation with I_DIRTY_TIME_EXPIRE flag. - -Upstream-Status: Backport - -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Change-Id: I92e37c2ff3ec36d431e8f9de5c8e37c5a2da55ea ---- - instrumentation/events/lttng-module/writeback.h | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h -index affb4eb..ece67ad 100644 ---- a/instrumentation/events/lttng-module/writeback.h -+++ b/instrumentation/events/lttng-module/writeback.h -@@ -46,7 +46,21 @@ static inline struct backing_dev_info *lttng_inode_to_bdi(struct inode *inode) - - #endif - --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+#define show_inode_state(state) \ -+ __print_flags(state, "|", \ -+ {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ -+ {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \ -+ {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \ -+ {I_NEW, "I_NEW"}, \ -+ {I_WILL_FREE, "I_WILL_FREE"}, \ -+ {I_FREEING, "I_FREEING"}, \ -+ {I_CLEAR, "I_CLEAR"}, \ -+ {I_SYNC, "I_SYNC"}, \ -+ {I_DIRTY_TIME, "I_DIRTY_TIME"}, \ -+ {I_REFERENCED, "I_REFERENCED"} \ -+ ) -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0)) - #define show_inode_state(state) \ - __print_flags(state, "|", \ - {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch deleted file mode 100644 index 7a0d9a38b8..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 87b2affc3eb06f3fb2d0923f18af37713eb6814b Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Mon, 31 Aug 2020 14:16:01 -0400 -Subject: [PATCH 08/10] fix: writeback: Fix sync livelock due to b_dirty_time - processing (v5.9) - -See upstream commit: - - commit f9cae926f35e8230330f28c7b743ad088611a8de - Author: Jan Kara <jack@suse.cz> - Date: Fri May 29 16:08:58 2020 +0200 - - writeback: Fix sync livelock due to b_dirty_time processing - - When we are processing writeback for sync(2), move_expired_inodes() - didn't set any inode expiry value (older_than_this). This can result in - writeback never completing if there's steady stream of inodes added to - b_dirty_time list as writeback rechecks dirty lists after each writeback - round whether there's more work to be done. Fix the problem by using - sync(2) start time is inode expiry value when processing b_dirty_time - list similarly as for ordinarily dirtied inodes. This requires some - refactoring of older_than_this handling which simplifies the code - noticeably as a bonus. - -Upstream-Status: Backport - -Change-Id: I8b894b13ccc14d9b8983ee4c2810a927c319560b -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - .../events/lttng-module/writeback.h | 39 ++++++++++++------- - 1 file changed, 26 insertions(+), 13 deletions(-) - -diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h -index ece67ad..e9018dd 100644 ---- a/instrumentation/events/lttng-module/writeback.h -+++ b/instrumentation/events/lttng-module/writeback.h -@@ -384,34 +384,48 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc - #endif - LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage) - --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+LTTNG_TRACEPOINT_EVENT(writeback_queue_io, -+ TP_PROTO(struct bdi_writeback *wb, -+ struct wb_writeback_work *work, -+ unsigned long dirtied_before, -+ int moved), -+ TP_ARGS(wb, work, dirtied_before, moved), -+ TP_FIELDS( -+ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32) -+ ctf_integer(unsigned long, older, dirtied_before) -+ ctf_integer(int, moved, moved) -+ ) -+) -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - LTTNG_TRACEPOINT_EVENT(writeback_queue_io, - TP_PROTO(struct bdi_writeback *wb, --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - struct wb_writeback_work *work, --#else -- unsigned long *older_than_this, --#endif - int moved), --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - TP_ARGS(wb, work, moved), --#else -+ TP_FIELDS( -+ ctf_array_text(char, name, dev_name(wb->bdi->dev), 32) -+ ctf_integer(int, moved, moved) -+ ) -+) -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) -+LTTNG_TRACEPOINT_EVENT(writeback_queue_io, -+ TP_PROTO(struct bdi_writeback *wb, -+ unsigned long *older_than_this, -+ int moved), - TP_ARGS(wb, older_than_this, moved), --#endif - TP_FIELDS( - ctf_array_text(char, name, dev_name(wb->bdi->dev), 32) --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) --#else - ctf_integer(unsigned long, older, - older_than_this ? *older_than_this : 0) - ctf_integer(long, age, - older_than_this ? - (jiffies - *older_than_this) * 1000 / HZ - : -1) --#endif - ctf_integer(int, moved, moved) - ) - ) -+#endif - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0)) - LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state, -@@ -460,7 +474,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state, - ctf_integer(unsigned long, dirty_limit, global_dirty_limit) - ) - ) --#else -+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) - LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state, - - writeback_global_dirty_state, -@@ -485,7 +499,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state, - ) - ) - #endif --#endif - - #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) - --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch deleted file mode 100644 index 346e1d63ad..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch +++ /dev/null @@ -1,52 +0,0 @@ -From b74b25f349e92d7b5bdc8684e406d6a889f13773 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson <mjeanson@efficios.com> -Date: Fri, 4 Sep 2020 11:52:51 -0400 -Subject: [PATCH 09/10] fix: version ranges for ext4_discard_preallocations and - writeback_queue_io - -Upstream-Status: Backport - -Signed-off-by: Michael Jeanson <mjeanson@efficios.com> -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Change-Id: Id4fa53cb2e713cbda651e1a75deed91013115592 ---- - instrumentation/events/lttng-module/ext4.h | 3 ++- - instrumentation/events/lttng-module/writeback.h | 8 +++++++- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h -index 4476abb..b172c8d 100644 ---- a/instrumentation/events/lttng-module/ext4.h -+++ b/instrumentation/events/lttng-module/ext4.h -@@ -460,7 +460,8 @@ LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa, - ) - #endif - --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \ -+ LTTNG_KERNEL_RANGE(5,8,6, 5,9,0)) - LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations, - TP_PROTO(struct inode *inode, unsigned int len, unsigned int needed), - -diff --git a/instrumentation/events/lttng-module/writeback.h b/instrumentation/events/lttng-module/writeback.h -index e9018dd..09637d7 100644 ---- a/instrumentation/events/lttng-module/writeback.h -+++ b/instrumentation/events/lttng-module/writeback.h -@@ -384,7 +384,13 @@ LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait, writeback_wbc_balanc - #endif - LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage, writeback_wbc_writepage) - --#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) || \ -+ LTTNG_KERNEL_RANGE(5,8,6, 5,9,0) || \ -+ LTTNG_KERNEL_RANGE(5,4,62, 5,5,0) || \ -+ LTTNG_KERNEL_RANGE(4,19,143, 4,20,0) || \ -+ LTTNG_KERNEL_RANGE(4,14,196, 4,15,0) || \ -+ LTTNG_KERNEL_RANGE(4,9,235, 4,10,0) || \ -+ LTTNG_KERNEL_RANGE(4,4,235, 4,5,0)) - LTTNG_TRACEPOINT_EVENT(writeback_queue_io, - TP_PROTO(struct bdi_writeback *wb, - struct wb_writeback_work *work, --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch deleted file mode 100644 index a16750ddb3..0000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch +++ /dev/null @@ -1,918 +0,0 @@ -From ad594e3a953db1b0c3c059fde45b5a5494f6be78 Mon Sep 17 00:00:00 2001 -From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> -Date: Tue, 28 Jan 2020 16:02:44 -0500 -Subject: [PATCH 10/10] Fix: system call filter table - -The system call filter table has effectively been unused for a long -time due to system call name prefix mismatch. This means the overhead of -selective system call tracing was larger than it should have been because -the event payload preparation would be done for all system calls as soon -as a single system call is traced. - -However, fixing this underlying issue unearths several issues that crept -unnoticed when the "enabler" concept was introduced (after the original -implementation of the system call filter table). - -Here is a list of the issues which are resolved here: - -- Split lttng_syscalls_unregister into an unregister and destroy - function, thus awaiting for a grace period (and therefore quiescence - of the users) after unregistering the system call tracepoints before - freeing the system call filter data structures. This effectively fixes - a use-after-free. - -- The state for enabling "all" system calls vs enabling specific system - calls (and sequences of enable-disable) was incorrect with respect to - the "enablers" semantic. This is solved by always tracking the - bitmap of enabled system calls, and keeping this bitmap even when - enabling all system calls. The sc_filter is now always allocated - before system call tracing is registered to tracepoints, which means - it does not need to be RCU dereferenced anymore. - -Padding fields in the ABI are reserved to select whether to: - -- Trace either native or compat system call (or both, which is the - behavior currently implemented), -- Trace either system call entry or exit (or both, which is the - behavior currently implemented), -- Select the system call to trace by name (behavior currently - implemented) or by system call number, - -Upstream-Status: Backport - -Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> ---- - lttng-abi.c | 43 ++++++ - lttng-abi.h | 26 ++++ - lttng-events.c | 112 +++++++++++++-- - lttng-events.h | 31 ++++- - lttng-syscalls.c | 348 +++++++++++++++++++++++++---------------------- - 5 files changed, 380 insertions(+), 180 deletions(-) - -diff --git a/lttng-abi.c b/lttng-abi.c -index 64ea99d..b33879d 100644 ---- a/lttng-abi.c -+++ b/lttng-abi.c -@@ -1264,6 +1264,46 @@ nomem: - return ret; - } - -+static -+int lttng_abi_validate_event_param(struct lttng_kernel_event *event_param) -+{ -+ /* Limit ABI to implemented features. */ -+ switch (event_param->instrumentation) { -+ case LTTNG_KERNEL_SYSCALL: -+ switch (event_param->u.syscall.entryexit) { -+ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT: -+ break; -+ default: -+ return -EINVAL; -+ } -+ switch (event_param->u.syscall.abi) { -+ case LTTNG_KERNEL_SYSCALL_ABI_ALL: -+ break; -+ default: -+ return -EINVAL; -+ } -+ switch (event_param->u.syscall.match) { -+ case LTTNG_SYSCALL_MATCH_NAME: -+ break; -+ default: -+ return -EINVAL; -+ } -+ break; -+ -+ case LTTNG_KERNEL_TRACEPOINT: /* Fallthrough */ -+ case LTTNG_KERNEL_KPROBE: /* Fallthrough */ -+ case LTTNG_KERNEL_KRETPROBE: /* Fallthrough */ -+ case LTTNG_KERNEL_NOOP: /* Fallthrough */ -+ case LTTNG_KERNEL_UPROBE: -+ break; -+ -+ case LTTNG_KERNEL_FUNCTION: /* Fallthrough */ -+ default: -+ return -EINVAL; -+ } -+ return 0; -+} -+ - static - int lttng_abi_create_event(struct file *channel_file, - struct lttng_kernel_event *event_param) -@@ -1305,6 +1345,9 @@ int lttng_abi_create_event(struct file *channel_file, - ret = -EOVERFLOW; - goto refcount_error; - } -+ ret = lttng_abi_validate_event_param(event_param); -+ if (ret) -+ goto event_error; - if (event_param->instrumentation == LTTNG_KERNEL_TRACEPOINT - || event_param->instrumentation == LTTNG_KERNEL_SYSCALL) { - struct lttng_enabler *enabler; -diff --git a/lttng-abi.h b/lttng-abi.h -index 1d356ab..51d60e5 100644 ---- a/lttng-abi.h -+++ b/lttng-abi.h -@@ -90,6 +90,31 @@ struct lttng_kernel_event_callsite { - } u; - } __attribute__((packed)); - -+enum lttng_kernel_syscall_entryexit { -+ LTTNG_KERNEL_SYSCALL_ENTRYEXIT = 0, -+ LTTNG_KERNEL_SYSCALL_ENTRY = 1, /* Not implemented. */ -+ LTTNG_KERNEL_SYSCALL_EXIT = 2, /* Not implemented. */ -+}; -+ -+enum lttng_kernel_syscall_abi { -+ LTTNG_KERNEL_SYSCALL_ABI_ALL = 0, -+ LTTNG_KERNEL_SYSCALL_ABI_NATIVE = 1, /* Not implemented. */ -+ LTTNG_KERNEL_SYSCALL_ABI_COMPAT = 2, /* Not implemented. */ -+}; -+ -+enum lttng_kernel_syscall_match { -+ LTTNG_SYSCALL_MATCH_NAME = 0, -+ LTTNG_SYSCALL_MATCH_NR = 1, /* Not implemented. */ -+}; -+ -+struct lttng_kernel_syscall { -+ uint8_t entryexit; /* enum lttng_kernel_syscall_entryexit */ -+ uint8_t abi; /* enum lttng_kernel_syscall_abi */ -+ uint8_t match; /* enum lttng_kernel_syscall_match */ -+ uint8_t padding; -+ uint32_t nr; /* For LTTNG_SYSCALL_MATCH_NR */ -+} __attribute__((packed)); -+ - /* - * For syscall tracing, name = "*" means "enable all". - */ -@@ -106,6 +131,7 @@ struct lttng_kernel_event { - struct lttng_kernel_kprobe kprobe; - struct lttng_kernel_function_tracer ftrace; - struct lttng_kernel_uprobe uprobe; -+ struct lttng_kernel_syscall syscall; - char padding[LTTNG_KERNEL_EVENT_PADDING2]; - } u; - } __attribute__((packed)); -diff --git a/lttng-events.c b/lttng-events.c -index d719294..4c0b04a 100644 ---- a/lttng-events.c -+++ b/lttng-events.c -@@ -201,6 +201,10 @@ void lttng_session_destroy(struct lttng_session *session) - WARN_ON(ret); - } - synchronize_trace(); /* Wait for in-flight events to complete */ -+ list_for_each_entry(chan, &session->chan, list) { -+ ret = lttng_syscalls_destroy(chan); -+ WARN_ON(ret); -+ } - list_for_each_entry_safe(enabler, tmpenabler, - &session->enablers_head, node) - lttng_enabler_destroy(enabler); -@@ -740,6 +744,28 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan, - event->enabled = 0; - event->registered = 0; - event->desc = event_desc; -+ switch (event_param->u.syscall.entryexit) { -+ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT: -+ ret = -EINVAL; -+ goto register_error; -+ case LTTNG_KERNEL_SYSCALL_ENTRY: -+ event->u.syscall.entryexit = LTTNG_SYSCALL_ENTRY; -+ break; -+ case LTTNG_KERNEL_SYSCALL_EXIT: -+ event->u.syscall.entryexit = LTTNG_SYSCALL_EXIT; -+ break; -+ } -+ switch (event_param->u.syscall.abi) { -+ case LTTNG_KERNEL_SYSCALL_ABI_ALL: -+ ret = -EINVAL; -+ goto register_error; -+ case LTTNG_KERNEL_SYSCALL_ABI_NATIVE: -+ event->u.syscall.abi = LTTNG_SYSCALL_ABI_NATIVE; -+ break; -+ case LTTNG_KERNEL_SYSCALL_ABI_COMPAT: -+ event->u.syscall.abi = LTTNG_SYSCALL_ABI_COMPAT; -+ break; -+ } - if (!event->desc) { - ret = -EINVAL; - goto register_error; -@@ -826,8 +852,7 @@ void register_event(struct lttng_event *event) - event); - break; - case LTTNG_KERNEL_SYSCALL: -- ret = lttng_syscall_filter_enable(event->chan, -- desc->name); -+ ret = lttng_syscall_filter_enable(event->chan, event); - break; - case LTTNG_KERNEL_KPROBE: - case LTTNG_KERNEL_UPROBE: -@@ -870,8 +895,7 @@ int _lttng_event_unregister(struct lttng_event *event) - ret = 0; - break; - case LTTNG_KERNEL_SYSCALL: -- ret = lttng_syscall_filter_disable(event->chan, -- desc->name); -+ ret = lttng_syscall_filter_disable(event->chan, event); - break; - case LTTNG_KERNEL_NOOP: - ret = 0; -@@ -1203,39 +1227,87 @@ int lttng_desc_match_enabler(const struct lttng_event_desc *desc, - struct lttng_enabler *enabler) - { - const char *desc_name, *enabler_name; -+ bool compat = false, entry = false; - - enabler_name = enabler->event_param.name; - switch (enabler->event_param.instrumentation) { - case LTTNG_KERNEL_TRACEPOINT: - desc_name = desc->name; -+ switch (enabler->type) { -+ case LTTNG_ENABLER_STAR_GLOB: -+ return lttng_match_enabler_star_glob(desc_name, enabler_name); -+ case LTTNG_ENABLER_NAME: -+ return lttng_match_enabler_name(desc_name, enabler_name); -+ default: -+ return -EINVAL; -+ } - break; - case LTTNG_KERNEL_SYSCALL: - desc_name = desc->name; -- if (!strncmp(desc_name, "compat_", strlen("compat_"))) -+ if (!strncmp(desc_name, "compat_", strlen("compat_"))) { - desc_name += strlen("compat_"); -+ compat = true; -+ } - if (!strncmp(desc_name, "syscall_exit_", - strlen("syscall_exit_"))) { - desc_name += strlen("syscall_exit_"); - } else if (!strncmp(desc_name, "syscall_entry_", - strlen("syscall_entry_"))) { - desc_name += strlen("syscall_entry_"); -+ entry = true; - } else { - WARN_ON_ONCE(1); - return -EINVAL; - } -+ switch (enabler->event_param.u.syscall.entryexit) { -+ case LTTNG_KERNEL_SYSCALL_ENTRYEXIT: -+ break; -+ case LTTNG_KERNEL_SYSCALL_ENTRY: -+ if (!entry) -+ return 0; -+ break; -+ case LTTNG_KERNEL_SYSCALL_EXIT: -+ if (entry) -+ return 0; -+ break; -+ default: -+ return -EINVAL; -+ } -+ switch (enabler->event_param.u.syscall.abi) { -+ case LTTNG_KERNEL_SYSCALL_ABI_ALL: -+ break; -+ case LTTNG_KERNEL_SYSCALL_ABI_NATIVE: -+ if (compat) -+ return 0; -+ break; -+ case LTTNG_KERNEL_SYSCALL_ABI_COMPAT: -+ if (!compat) -+ return 0; -+ break; -+ default: -+ return -EINVAL; -+ } -+ switch (enabler->event_param.u.syscall.match) { -+ case LTTNG_SYSCALL_MATCH_NAME: -+ switch (enabler->type) { -+ case LTTNG_ENABLER_STAR_GLOB: -+ return lttng_match_enabler_star_glob(desc_name, enabler_name); -+ case LTTNG_ENABLER_NAME: -+ return lttng_match_enabler_name(desc_name, enabler_name); -+ default: -+ return -EINVAL; -+ } -+ break; -+ case LTTNG_SYSCALL_MATCH_NR: -+ return -EINVAL; /* Not implemented. */ -+ default: -+ return -EINVAL; -+ } - break; - default: - WARN_ON_ONCE(1); - return -EINVAL; - } -- switch (enabler->type) { -- case LTTNG_ENABLER_STAR_GLOB: -- return lttng_match_enabler_star_glob(desc_name, enabler_name); -- case LTTNG_ENABLER_NAME: -- return lttng_match_enabler_name(desc_name, enabler_name); -- default: -- return -EINVAL; -- } - } - - static -@@ -1361,9 +1433,21 @@ void lttng_create_event_if_missing(struct lttng_enabler *enabler) - static - int lttng_enabler_ref_events(struct lttng_enabler *enabler) - { -- struct lttng_session *session = enabler->chan->session; -+ struct lttng_channel *chan = enabler->chan; -+ struct lttng_session *session = chan->session; - struct lttng_event *event; - -+ if (enabler->event_param.instrumentation == LTTNG_KERNEL_SYSCALL && -+ enabler->event_param.u.syscall.entryexit == LTTNG_KERNEL_SYSCALL_ENTRYEXIT && -+ enabler->event_param.u.syscall.abi == LTTNG_KERNEL_SYSCALL_ABI_ALL && -+ enabler->event_param.u.syscall.match == LTTNG_SYSCALL_MATCH_NAME && -+ !strcmp(enabler->event_param.name, "*")) { -+ if (enabler->enabled) -+ WRITE_ONCE(chan->syscall_all, 1); -+ else -+ WRITE_ONCE(chan->syscall_all, 0); -+ } -+ - /* First ensure that probe events are created for this enabler. */ - lttng_create_event_if_missing(enabler); - -diff --git a/lttng-events.h b/lttng-events.h -index a36a312..d4d9976 100644 ---- a/lttng-events.h -+++ b/lttng-events.h -@@ -292,6 +292,16 @@ struct lttng_uprobe_handler { - struct list_head node; - }; - -+enum lttng_syscall_entryexit { -+ LTTNG_SYSCALL_ENTRY, -+ LTTNG_SYSCALL_EXIT, -+}; -+ -+enum lttng_syscall_abi { -+ LTTNG_SYSCALL_ABI_NATIVE, -+ LTTNG_SYSCALL_ABI_COMPAT, -+}; -+ - /* - * lttng_event structure is referred to by the tracing fast path. It must be - * kept small. -@@ -318,6 +328,11 @@ struct lttng_event { - struct inode *inode; - struct list_head head; - } uprobe; -+ struct { -+ char *syscall_name; -+ enum lttng_syscall_entryexit entryexit; -+ enum lttng_syscall_abi abi; -+ } syscall; - } u; - struct list_head list; /* Event list in session */ - unsigned int metadata_dumped:1; -@@ -457,10 +472,10 @@ struct lttng_channel { - struct lttng_syscall_filter *sc_filter; - int header_type; /* 0: unset, 1: compact, 2: large */ - enum channel_type channel_type; -+ int syscall_all; - unsigned int metadata_dumped:1, - sys_enter_registered:1, - sys_exit_registered:1, -- syscall_all:1, - tstate:1; /* Transient enable state */ - }; - -@@ -653,10 +668,11 @@ void lttng_clock_unref(void); - #if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) - int lttng_syscalls_register(struct lttng_channel *chan, void *filter); - int lttng_syscalls_unregister(struct lttng_channel *chan); -+int lttng_syscalls_destroy(struct lttng_channel *chan); - int lttng_syscall_filter_enable(struct lttng_channel *chan, -- const char *name); -+ struct lttng_event *event); - int lttng_syscall_filter_disable(struct lttng_channel *chan, -- const char *name); -+ struct lttng_event *event); - long lttng_channel_syscall_mask(struct lttng_channel *channel, - struct lttng_kernel_syscall_mask __user *usyscall_mask); - #else -@@ -670,14 +686,19 @@ static inline int lttng_syscalls_unregister(struct lttng_channel *chan) - return 0; - } - -+static inline int lttng_syscalls_destroy(struct lttng_channel *chan) -+{ -+ return 0; -+} -+ - static inline int lttng_syscall_filter_enable(struct lttng_channel *chan, -- const char *name) -+ struct lttng_event *event); - { - return -ENOSYS; - } - - static inline int lttng_syscall_filter_disable(struct lttng_channel *chan, -- const char *name) -+ struct lttng_event *event); - { - return -ENOSYS; - } -diff --git a/lttng-syscalls.c b/lttng-syscalls.c -index 97f1ba9..26cead6 100644 ---- a/lttng-syscalls.c -+++ b/lttng-syscalls.c -@@ -367,8 +367,10 @@ const struct trace_syscall_entry compat_sc_exit_table[] = { - #undef CREATE_SYSCALL_TABLE - - struct lttng_syscall_filter { -- DECLARE_BITMAP(sc, NR_syscalls); -- DECLARE_BITMAP(sc_compat, NR_compat_syscalls); -+ DECLARE_BITMAP(sc_entry, NR_syscalls); -+ DECLARE_BITMAP(sc_exit, NR_syscalls); -+ DECLARE_BITMAP(sc_compat_entry, NR_compat_syscalls); -+ DECLARE_BITMAP(sc_compat_exit, NR_compat_syscalls); - }; - - static void syscall_entry_unknown(struct lttng_event *event, -@@ -391,29 +393,23 @@ void syscall_entry_probe(void *__data, struct pt_regs *regs, long id) - size_t table_len; - - if (unlikely(in_compat_syscall())) { -- struct lttng_syscall_filter *filter; -- -- filter = lttng_rcu_dereference(chan->sc_filter); -- if (filter) { -- if (id < 0 || id >= NR_compat_syscalls -- || !test_bit(id, filter->sc_compat)) { -- /* System call filtered out. */ -- return; -- } -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ -+ if (id < 0 || id >= NR_compat_syscalls -+ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_entry))) { -+ /* System call filtered out. */ -+ return; - } - table = compat_sc_table; - table_len = ARRAY_SIZE(compat_sc_table); - unknown_event = chan->sc_compat_unknown; - } else { -- struct lttng_syscall_filter *filter; -- -- filter = lttng_rcu_dereference(chan->sc_filter); -- if (filter) { -- if (id < 0 || id >= NR_syscalls -- || !test_bit(id, filter->sc)) { -- /* System call filtered out. */ -- return; -- } -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ -+ if (id < 0 || id >= NR_syscalls -+ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_entry))) { -+ /* System call filtered out. */ -+ return; - } - table = sc_table; - table_len = ARRAY_SIZE(sc_table); -@@ -545,29 +541,23 @@ void syscall_exit_probe(void *__data, struct pt_regs *regs, long ret) - - id = syscall_get_nr(current, regs); - if (unlikely(in_compat_syscall())) { -- struct lttng_syscall_filter *filter; -- -- filter = lttng_rcu_dereference(chan->sc_filter); -- if (filter) { -- if (id < 0 || id >= NR_compat_syscalls -- || !test_bit(id, filter->sc_compat)) { -- /* System call filtered out. */ -- return; -- } -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ -+ if (id < 0 || id >= NR_compat_syscalls -+ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_compat_exit))) { -+ /* System call filtered out. */ -+ return; - } - table = compat_sc_exit_table; - table_len = ARRAY_SIZE(compat_sc_exit_table); - unknown_event = chan->compat_sc_exit_unknown; - } else { -- struct lttng_syscall_filter *filter; -- -- filter = lttng_rcu_dereference(chan->sc_filter); -- if (filter) { -- if (id < 0 || id >= NR_syscalls -- || !test_bit(id, filter->sc)) { -- /* System call filtered out. */ -- return; -- } -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ -+ if (id < 0 || id >= NR_syscalls -+ || (!READ_ONCE(chan->syscall_all) && !test_bit(id, filter->sc_exit))) { -+ /* System call filtered out. */ -+ return; - } - table = sc_exit_table; - table_len = ARRAY_SIZE(sc_exit_table); -@@ -713,27 +703,23 @@ int fill_table(const struct trace_syscall_entry *table, size_t table_len, - memset(&ev, 0, sizeof(ev)); - switch (type) { - case SC_TYPE_ENTRY: -- strncpy(ev.name, SYSCALL_ENTRY_STR, -- LTTNG_KERNEL_SYM_NAME_LEN); -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE; - break; - case SC_TYPE_EXIT: -- strncpy(ev.name, SYSCALL_EXIT_STR, -- LTTNG_KERNEL_SYM_NAME_LEN); -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE; - break; - case SC_TYPE_COMPAT_ENTRY: -- strncpy(ev.name, COMPAT_SYSCALL_ENTRY_STR, -- LTTNG_KERNEL_SYM_NAME_LEN); -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT; - break; - case SC_TYPE_COMPAT_EXIT: -- strncpy(ev.name, COMPAT_SYSCALL_EXIT_STR, -- LTTNG_KERNEL_SYM_NAME_LEN); -- break; -- default: -- BUG_ON(1); -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT; - break; - } -- strncat(ev.name, desc->name, -- LTTNG_KERNEL_SYM_NAME_LEN - strlen(ev.name) - 1); -+ strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); - ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; - ev.instrumentation = LTTNG_KERNEL_SYSCALL; - chan_table[i] = _lttng_event_create(chan, &ev, filter, -@@ -803,6 +789,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter) - strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); - ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; - ev.instrumentation = LTTNG_KERNEL_SYSCALL; -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE; - chan->sc_unknown = _lttng_event_create(chan, &ev, filter, - desc, - ev.instrumentation); -@@ -820,6 +808,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter) - strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); - ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; - ev.instrumentation = LTTNG_KERNEL_SYSCALL; -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_ENTRY; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT; - chan->sc_compat_unknown = _lttng_event_create(chan, &ev, filter, - desc, - ev.instrumentation); -@@ -837,6 +827,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter) - strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); - ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; - ev.instrumentation = LTTNG_KERNEL_SYSCALL; -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_COMPAT; - chan->compat_sc_exit_unknown = _lttng_event_create(chan, &ev, - filter, desc, - ev.instrumentation); -@@ -854,6 +846,8 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter) - strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); - ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; - ev.instrumentation = LTTNG_KERNEL_SYSCALL; -+ ev.u.syscall.entryexit = LTTNG_KERNEL_SYSCALL_EXIT; -+ ev.u.syscall.abi = LTTNG_KERNEL_SYSCALL_ABI_NATIVE; - chan->sc_exit_unknown = _lttng_event_create(chan, &ev, filter, - desc, ev.instrumentation); - WARN_ON_ONCE(!chan->sc_exit_unknown); -@@ -883,6 +877,14 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter) - if (ret) - return ret; - #endif -+ -+ if (!chan->sc_filter) { -+ chan->sc_filter = kzalloc(sizeof(struct lttng_syscall_filter), -+ GFP_KERNEL); -+ if (!chan->sc_filter) -+ return -ENOMEM; -+ } -+ - if (!chan->sys_enter_registered) { - ret = lttng_wrapper_tracepoint_probe_register("sys_enter", - (void *) syscall_entry_probe, chan); -@@ -930,7 +932,11 @@ int lttng_syscalls_unregister(struct lttng_channel *chan) - return ret; - chan->sys_exit_registered = 0; - } -- /* lttng_event destroy will be performed by lttng_session_destroy() */ -+ return 0; -+} -+ -+int lttng_syscalls_destroy(struct lttng_channel *chan) -+{ - kfree(chan->sc_table); - kfree(chan->sc_exit_table); - #ifdef CONFIG_COMPAT -@@ -993,136 +999,150 @@ uint32_t get_sc_tables_len(void) - return ARRAY_SIZE(sc_table) + ARRAY_SIZE(compat_sc_table); - } - --int lttng_syscall_filter_enable(struct lttng_channel *chan, -- const char *name) -+static -+const char *get_syscall_name(struct lttng_event *event) - { -- int syscall_nr, compat_syscall_nr, ret; -- struct lttng_syscall_filter *filter; -+ size_t prefix_len = 0; - -- WARN_ON_ONCE(!chan->sc_table); -+ WARN_ON_ONCE(event->instrumentation != LTTNG_KERNEL_SYSCALL); - -- if (!name) { -- /* Enable all system calls by removing filter */ -- if (chan->sc_filter) { -- filter = chan->sc_filter; -- rcu_assign_pointer(chan->sc_filter, NULL); -- synchronize_trace(); -- kfree(filter); -+ switch (event->u.syscall.entryexit) { -+ case LTTNG_SYSCALL_ENTRY: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ prefix_len = strlen(SYSCALL_ENTRY_STR); -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ prefix_len = strlen(COMPAT_SYSCALL_ENTRY_STR); -+ break; - } -- chan->syscall_all = 1; -- return 0; -- } -- -- if (!chan->sc_filter) { -- if (chan->syscall_all) { -- /* -- * All syscalls are already enabled. -- */ -- return -EEXIST; -+ break; -+ case LTTNG_SYSCALL_EXIT: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ prefix_len = strlen(SYSCALL_EXIT_STR); -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ prefix_len = strlen(COMPAT_SYSCALL_EXIT_STR); -+ break; - } -- filter = kzalloc(sizeof(struct lttng_syscall_filter), -- GFP_KERNEL); -- if (!filter) -- return -ENOMEM; -- } else { -- filter = chan->sc_filter; -+ break; - } -- syscall_nr = get_syscall_nr(name); -- compat_syscall_nr = get_compat_syscall_nr(name); -- if (syscall_nr < 0 && compat_syscall_nr < 0) { -- ret = -ENOENT; -- goto error; -+ WARN_ON_ONCE(prefix_len == 0); -+ return event->desc->name + prefix_len; -+} -+ -+int lttng_syscall_filter_enable(struct lttng_channel *chan, -+ struct lttng_event *event) -+{ -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ const char *syscall_name; -+ unsigned long *bitmap; -+ int syscall_nr; -+ -+ WARN_ON_ONCE(!chan->sc_table); -+ -+ syscall_name = get_syscall_name(event); -+ -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ syscall_nr = get_syscall_nr(syscall_name); -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ syscall_nr = get_compat_syscall_nr(syscall_name); -+ break; -+ default: -+ return -EINVAL; - } -- if (syscall_nr >= 0) { -- if (test_bit(syscall_nr, filter->sc)) { -- ret = -EEXIST; -- goto error; -+ if (syscall_nr < 0) -+ return -ENOENT; -+ -+ -+ switch (event->u.syscall.entryexit) { -+ case LTTNG_SYSCALL_ENTRY: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ bitmap = filter->sc_entry; -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ bitmap = filter->sc_compat_entry; -+ break; - } -- bitmap_set(filter->sc, syscall_nr, 1); -- } -- if (compat_syscall_nr >= 0) { -- if (test_bit(compat_syscall_nr, filter->sc_compat)) { -- ret = -EEXIST; -- goto error; -+ break; -+ case LTTNG_SYSCALL_EXIT: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ bitmap = filter->sc_exit; -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ bitmap = filter->sc_compat_exit; -+ break; - } -- bitmap_set(filter->sc_compat, compat_syscall_nr, 1); -+ break; -+ default: -+ return -EINVAL; - } -- if (!chan->sc_filter) -- rcu_assign_pointer(chan->sc_filter, filter); -+ if (test_bit(syscall_nr, bitmap)) -+ return -EEXIST; -+ bitmap_set(bitmap, syscall_nr, 1); - return 0; -- --error: -- if (!chan->sc_filter) -- kfree(filter); -- return ret; - } - - int lttng_syscall_filter_disable(struct lttng_channel *chan, -- const char *name) -+ struct lttng_event *event) - { -- int syscall_nr, compat_syscall_nr, ret; -- struct lttng_syscall_filter *filter; -+ struct lttng_syscall_filter *filter = chan->sc_filter; -+ const char *syscall_name; -+ unsigned long *bitmap; -+ int syscall_nr; - - WARN_ON_ONCE(!chan->sc_table); - -- if (!chan->sc_filter) { -- if (!chan->syscall_all) -- return -EEXIST; -- filter = kzalloc(sizeof(struct lttng_syscall_filter), -- GFP_KERNEL); -- if (!filter) -- return -ENOMEM; -- /* Trace all system calls, then apply disable. */ -- bitmap_set(filter->sc, 0, NR_syscalls); -- bitmap_set(filter->sc_compat, 0, NR_compat_syscalls); -- } else { -- filter = chan->sc_filter; -+ syscall_name = get_syscall_name(event); -+ -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ syscall_nr = get_syscall_nr(syscall_name); -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ syscall_nr = get_compat_syscall_nr(syscall_name); -+ break; -+ default: -+ return -EINVAL; - } -+ if (syscall_nr < 0) -+ return -ENOENT; - -- if (!name) { -- /* Fail if all syscalls are already disabled. */ -- if (bitmap_empty(filter->sc, NR_syscalls) -- && bitmap_empty(filter->sc_compat, -- NR_compat_syscalls)) { -- ret = -EEXIST; -- goto error; -- } - -- /* Disable all system calls */ -- bitmap_clear(filter->sc, 0, NR_syscalls); -- bitmap_clear(filter->sc_compat, 0, NR_compat_syscalls); -- goto apply_filter; -- } -- syscall_nr = get_syscall_nr(name); -- compat_syscall_nr = get_compat_syscall_nr(name); -- if (syscall_nr < 0 && compat_syscall_nr < 0) { -- ret = -ENOENT; -- goto error; -- } -- if (syscall_nr >= 0) { -- if (!test_bit(syscall_nr, filter->sc)) { -- ret = -EEXIST; -- goto error; -+ switch (event->u.syscall.entryexit) { -+ case LTTNG_SYSCALL_ENTRY: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ bitmap = filter->sc_entry; -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ bitmap = filter->sc_compat_entry; -+ break; - } -- bitmap_clear(filter->sc, syscall_nr, 1); -- } -- if (compat_syscall_nr >= 0) { -- if (!test_bit(compat_syscall_nr, filter->sc_compat)) { -- ret = -EEXIST; -- goto error; -+ break; -+ case LTTNG_SYSCALL_EXIT: -+ switch (event->u.syscall.abi) { -+ case LTTNG_SYSCALL_ABI_NATIVE: -+ bitmap = filter->sc_exit; -+ break; -+ case LTTNG_SYSCALL_ABI_COMPAT: -+ bitmap = filter->sc_compat_exit; -+ break; - } -- bitmap_clear(filter->sc_compat, compat_syscall_nr, 1); -+ break; -+ default: -+ return -EINVAL; - } --apply_filter: -- if (!chan->sc_filter) -- rcu_assign_pointer(chan->sc_filter, filter); -- chan->syscall_all = 0; -- return 0; -+ if (!test_bit(syscall_nr, bitmap)) -+ return -EEXIST; -+ bitmap_clear(bitmap, syscall_nr, 1); - --error: -- if (!chan->sc_filter) -- kfree(filter); -- return ret; -+ return 0; - } - - static -@@ -1236,6 +1256,9 @@ const struct file_operations lttng_syscall_list_fops = { - .release = seq_release, - }; - -+/* -+ * A syscall is enabled if it is traced for either entry or exit. -+ */ - long lttng_channel_syscall_mask(struct lttng_channel *channel, - struct lttng_kernel_syscall_mask __user *usyscall_mask) - { -@@ -1262,8 +1285,9 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel, - char state; - - if (channel->sc_table) { -- if (filter) -- state = test_bit(bit, filter->sc); -+ if (!READ_ONCE(channel->syscall_all) && filter) -+ state = test_bit(bit, filter->sc_entry) -+ || test_bit(bit, filter->sc_exit); - else - state = 1; - } else { -@@ -1275,9 +1299,11 @@ long lttng_channel_syscall_mask(struct lttng_channel *channel, - char state; - - if (channel->compat_sc_table) { -- if (filter) -+ if (!READ_ONCE(channel->syscall_all) && filter) - state = test_bit(bit - ARRAY_SIZE(sc_table), -- filter->sc_compat); -+ filter->sc_compat_entry) -+ || test_bit(bit - ARRAY_SIZE(sc_table), -+ filter->sc_compat_exit); - else - state = 1; - } else { --- -2.19.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb index e36b327a08..ca79e27df6 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.3.bb @@ -11,19 +11,10 @@ include lttng-platforms.inc SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \ file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ - file://0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch \ - file://0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch \ - file://0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch \ - file://0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch \ - file://0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch \ - file://0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch \ - file://0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch \ - file://0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch \ - file://0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch \ - file://0010-Fix-system-call-filter-table.patch \ + file://0001-fix-btrfs-tracepoints-output-proper-root-owner-for-t.patch \ " -SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca" +SRC_URI[sha256sum] = "673ef85c9f03e9b8fed10795e09d4e68add39404b70068d08b10f7b85754d7f0" export INSTALL_MOD_DIR="kernel/lttng-modules" diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb index 1c9f2aed16..923d64b975 100644 --- a/poky/meta/recipes-kernel/systemtap/systemtap_git.bb +++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.bb @@ -19,25 +19,50 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs" EXTRA_OECONF += "${STAP_DOCS} " PACKAGECONFIG ??= "translator sqlite monitor python3-probes" -PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,python3-core bash perl" +PACKAGECONFIG[translator] = "--enable-translator,--disable-translator,boost,bash" PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt" PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3" PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c" PACKAGECONFIG[python3-probes] = "--with-python3-probes,--without-python3-probes,python3-setuptools-native" -inherit autotools gettext pkgconfig distutils3-base systemd +inherit autotools gettext pkgconfig systemd +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3-probes', 'distutils3-base', '', d)} +# exporter comes with python3-probes PACKAGES =+ "${PN}-exporter" - FILES_${PN}-exporter = "${sysconfdir}/stap-exporter/* \ ${sysconfdir}/sysconfig/stap-exporter \ ${systemd_unitdir}/system/stap-exporter.service \ ${sbindir}/stap-exporter" - RDEPENDS_${PN}-exporter = "${PN} python3-core python3-netclient" - SYSTEMD_SERVICE_${PN}-exporter = "stap-exporter.service" +PACKAGES =+ "${PN}-runtime" +FILES_${PN}-runtime = "\ + ${bindir}/staprun \ + ${bindir}/stap-merge \ + ${bindir}/stapsh \ + ${libexecdir}/${BPN}/stapio \ +" +RDEPENDS_${PN}_class-target += "${PN}-runtime" + +PACKAGES =+ "${PN}-examples" +FILES_${PN}-examples = "${datadir}/${BPN}/examples/" +RDEPENDS_${PN}-examples += "${PN}" + +# don't complain that some examples involve bash, perl, php... +INSANE_SKIP_${PN}-examples += "file-rdeps" + +PACKAGES =+ "${PN}-python" +FILES_${PN}-python += "\ + ${bindir}/dtrace \ + ${libdir}/python*/ \ + ${libexecdir}/${BPN}/python/ \ +" +# python material requires sdt headers +RDEPENDS_${PN}-python += "${PN}-dev python3-core" +INSANE_SKIP_${PN}-python += "dev-deps" + do_configure_prepend () { # Improve reproducibility for c++ object files reltivepath="${@os.path.relpath(d.getVar('STAGING_INCDIR'), d.getVar('S'))}" @@ -51,7 +76,7 @@ do_install_append () { rm ${D}${libexecdir}/${PN}/stap-env fi - if [ ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then + if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then # Fix makefile hardcoded path assumptions for systemd (assumes $prefix) # without usrmerge distro feature enabled install -d `dirname ${D}${systemd_unitdir}` @@ -60,7 +85,9 @@ do_install_append () { fi # Ensure correct ownership for files copied in - chown root:root ${D}${sysconfdir}/stap-exporter/* -R + if [ -d ${D}${sysconfdir}/stap-exporter ]; then + chown root:root ${D}${sysconfdir}/stap-exporter/* -R + fi } BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.11.20.bb index a5827b9ef0..b3567bca95 100644 --- a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.04.29.bb +++ b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2020.11.20.bb @@ -1,11 +1,11 @@ SUMMARY = "Wireless Central Regulatory Domain Database" -HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +HOMEPAGE = "https://wireless.wiki.kernel.org/en/developers/regulatory/crda" SECTION = "net" LICENSE = "ISC" LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" -SRC_URI[sha256sum] = "89fd031aed5977c219a71501e144375a10e7c90d1005d5d086ea7972886a2c7a" +SRC_URI[sha256sum] = "b4164490d82ff7b0086e812ac42ab27baf57be24324d4c0ee1c5dd6ba27f2a52" inherit bin_package allarch |