summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-kernel
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-09-18 22:11:35 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-10-06 01:10:26 +0300
commitc9f7865a347606a64696048817b0f09d9c3fcd31 (patch)
tree00db80fae3599061617c0cb052a57302620882ec /poky/meta/recipes-kernel
parentd1a90aa35d35426789d8f4061166a6dd8d27a30e (diff)
downloadopenbmc-c9f7865a347606a64696048817b0f09d9c3fcd31.tar.xz
poky: subtree update:c67f57c09e..c6bc20857c
Adrian Freihofer (2): oe-publish-sdk: fix layers init via ssh oe-publish-sdk: add --keep-orig option Alexander Kanavin (68): meta-selftest: correct the virgl test for 5.8 kernels bison: upgrade 3.6.4 -> 3.7.1 util-linux: upgrade 2.35.2 -> 2.36 python3-numpy: upgrade 1.19.0 -> 1.19.1 python3-setuptools: upgrade 49.3.1 -> 49.6.0 rsync: upgrade 3.2.2 -> 3.2.3 util-linux: merge .inc into .bb acpica: upgrade 20200528 -> 20200717 asciidoc: upgrade 9.0.1 -> 9.0.2 cryptodev: upgrade 1.10 -> 1.11 diffoscope: upgrade 153 -> 156 epiphany: upgrade 3.36.3 -> 3.36.4 font-alias: upgrade 1.0.3 -> 1.0.4 gtk+3: upgrade 3.24.21 -> 3.24.22 libcheck: upgrade 0.15.0 -> 0.15.2 libinput: upgrade 1.16.0 -> 1.16.1 libpipeline: upgrade 1.5.2 -> 1.5.3 libx11: upgrade 1.6.9 -> 1.6.11 linux-firmware: upgrade 20200619 -> 20200721 man-pages: upgrade 5.07 -> 5.08 mc: upgrade 4.8.24 -> 4.8.25 mesa: upgrade 20.1.4 -> 20.1.5 piglit: upgrade to latest revision re2c: upgrade 2.0 -> 2.0.2 sysstat: upgrade 12.2.2 -> 12.4.0 vala: upgrade 0.48.7 -> 0.48.9 bootchart2: update 0.14.8 -> 0.14.9 harfbuzz: convert to meson, enable gobject introspection pango: update 1.44.7 -> 1.46.0 boost: update 1.73.0 -> 1.74.0 xev: update 1.2.3 -> 1.2.4 wpebackend-fdo: update 1.6.1 -> 1.7.1 gpgme: update 1.13.1 -> 1.14.0 libpsl: update 0.21.0 -> 0.21.1. gettext: update 0.20.2 -> 0.21 cmake: update 3.17.3 -> 3.18.1 linux-firmware: update 20200721 -> 20200817 meson: update 0.55.0 -> 0.55.1 systemd-boot: bump version to 246.2 json-glib: inherit upstream-version-is-even packagegroup-core-device-devel: remove oeqa/x32lib: rework to use readelf from the host oeqa/multilib: rework to use readelf from the host oeqa/multilib: un-skip the connman test poky.conf: do not install packagegroup-core-device-devel into qemu images glib-2.0: update 2.64.4 -> 2.64.5 cmake: upgrade 3.18.1 -> 3.18.2 libxcrypt: upgrade 4.4.16 -> 4.4.17 debianutils: upgrade 4.11 -> 4.11.1 enchant2: upgrade 2.2.8 -> 2.2.9 harfbuzz: upgrade 2.7.1 -> 2.7.2 libmpc: upgrade 1.1.0 -> 1.2.0 librepo: upgrade 1.12.0 -> 1.12.1 libuv: upgrade 1.38.1 -> 1.39.0 msmtp: upgrade 1.8.11 -> 1.8.12 ninja: upgrade 1.10.0 -> 1.10.1 p11-kit: upgrade 0.23.20 -> 0.23.21 pango: upgrade 1.46.0 -> 1.46.1 re2c: upgrade 2.0.2 -> 2.0.3 resolvconf: upgrade 1.82 -> 1.83 stress-ng: upgrade 0.11.18 -> 0.11.19 gnu-config: update to latest revision nasm: update 2.15.03 -> 2.15.05 libva-utils: fix upstream version check gnupg: update 2.2.21 -> 2.2.22 libx11: update 1.6.11 -> 1.6.12 mesa: update 20.1.5 -> 20.1.6 xserver-xorg: update 1.20.8 -> 1.20.9 Andrey Zhizhikin (1): insane: check for missing update-alternatives inherit Anibal Limon (1): recipes-kernel: linux-firmware add qcom-venus-{5.2,5.4} packages Aníbal Limón (1): recipes-graphics/xorg-xserver: Add patch to fix segfault when probe Armin Kuster (2): bind: update to 9.11.22 ESV core-image-sato: qemumips use 512 mem Bruce Ashfield (30): linux-yocto/5.4: update to v5.4.59 linux-yocto/5.8: update to v5.8.2 yocto-bsp: update to v5.4.56 yocto-bsp: update to v5.4.58 qemu: bump default reference kernel to v5.8 linux-yocto/5.8: fix perf and virtio_scsi warnings linux-yocto-rt/5.8: fix lttng-modules build linux-yocto/5.8: selftests/bpf: Prevent runqslower from racing on building bpftool linux-yocto/5.8: disable CONFIG_NFS_DISABLE_UDP_SUPPORT poky: set preferred version for linux-yocto to be v5.8 poky-tiny: set preferred version to 5.8 poky: add preferred version for linux-yocto-rt linux-yocto/5.8: update to v5.8.3 linux-yocto/5.4: update to v5.4.60 kernel: config cleanups for 5.8+ linux-yocto/5.4: update to v5.4.61 linux-yocto/5.8: update to v5.8.4 linux-yocto/5.8: disable IKHEADERS in default builds kernel-yocto: allow promotion of configuration warnings to errors kernel-yocto: checksum all modifications to available kernel fragments directories lttng-modules/devupstream: bump to latest 2.12 commits linux-yocto-dev: bump to v5.9+ linux-yocto/5.8: update to v5.8.5 kernel-devsrc: account for HOSTCC and HOSTCXX linux-yocto/config: netfilter: Enable nat for ipv4 and ipv6 linux-yocto/5.8: update to v5.8.8 linux-yocto/5.4: update to v5.4.64 linux-yocto/config: configuration warning cleanup linux-yocto/5.8: update to v5.8.9 linux-yocto/5.4: update to v5.4.65 Changhyeok Bae (2): iw: upgrade 5.4 -> 5.8 iputils: upgrade s20190709 -> s20200821 Chris Laplante (12): bitbake: compat.py: remove file since it no longer actually implements anything bitbake: COW: formatting bitbake: COW: migrate test suite into tests/cow cve-update-db-native: add progress handler cve-check/cve-update-db-native: use lockfile to fix usage under multiconfig cve-update-db-native: use context manager for cve_f cve-check: avoid FileNotFoundError if no do_cve_check task has run bitbake: utils: process_profilelog: use context manager bitbake: utils: fix UnboundLocalError when _print_exception raises cve-update-db-native: be less magical about checking whether the cve-check class is enabled cve-update-db-native: move -journal checking into do_fetch cve-update-db-native: remove unused variable Christophe GUIBOUT (1): initramfs-framework: support kernel cmdline with double quotes Denys Dmytriyenko (2): weston: upgrade 8.0.0 -> 9.0.0 cryptodev: bump 1 commit past 1.11 to fix 5.9-rc1+ Diego Sueiro (2): license_image.bbclass: Create symlink to the image license manifest dir license_image.bbclass: Fix symlink to the image license manifest dir creation Douglas Royds (1): tcmode-default: Drop gcc-cross-initial, gcc-crosssdk-initial references Frazer Clews (1): bitbake: lib: fix most undefined code picked up by pylint Geoff Parker (1): systemd-serialgetty: Replace sed quoting using ' with " to allow var expansion Jacob Kroon (1): gcc10: Don't default back to -fcommon Jean-Francois Dagenais (1): bitbake: siggen: clean_basepath: remove recipe full path when virtual:xyz present Jens Rehsack (1): lttng-modules: backport patches from 2.12.x to fix 5.4.64+ and 5.8.9+ builds Joe Slater (1): pseudo: fix renaming to self Jon Mason (4): cortex-m0plus.inc: change file permissions tune-cortexa55.inc: clean-up ARMv8.2a uses tune-cortexa57-cortexa53.inc: add CRC and set march tune-cortexa*: Cleanups Joshua Watt (8): wic: Add 512 Byte alignment to --offset oeqa: runtime_tests: Extra GPG debugging oeqa: sdk: Capture stderr output oeqa: reproducible: Fix test not producing diffs diffoscope: upgrade 156 -> 158 bitbake: bitbake: Add parsing torture test bitbake: cooker: Block SIGINT in worker processes sphinx: dev-manual: Clarify that virtual providers do not apply to runtime dependencies Kai Kang (1): dhcpcd: 9.1.4 -> 9.2.0 Kevin Hao (1): meta-yocto-bsp: Bump to the v5.8 kernel Khairul Rohaizzat Jamaluddin (1): wic/bootimg-efi: IMAGE_EFI_BOOT_FILES variable added to separate bootimg-efi and bootimg-partition Khem Raj (24): gcc-cross-canadian: Install gcc/g++ wrappers for musl uninative: Upgrade to 2.9 packagegroup-core-tools-profile: Disable lttng-modules for riscv64 lttng-modules: Disable on riscv64 kexec-tools: Fix build with -fno-common on ppc lttng-tools: Do not build for riscv64 util-linux: Allow update alternatives for additional apps lttng-tools: lttng-ust works on riscv64 json-glib: Backport a build fix with clang rpcbind: Use update-alternatives for rpcinfo go: Upgrade to 1.15 major release weston-init: Redefine weston service and add socket activation option musl: Upgrade to latest master libucontext: Recognise riscv32 architecture linuxloader.bbclass: Define riscv32 ldso for musl populate_sdk_ext: Do not assume local.conf will always exist weston: plane_add_prop() calls break musl atomic modesetting weston-init: Enable RDP screen share weston-init: Do not use fbdev backend weston-init: Select drm/fbdev backends for qemu machines oeqa/weston: Fix tests to run with systemd core-image-weston: Bump qemu memory to 512M go: Update to 1.15.2 minor release bind: Inherit update-alternatives Mark Hatle (6): package_tar.bbclass: Sync to the other package_* classes kernel.bbclass: Remove do_install[prefunc] no longer needed buildhistory.bbclass: Rework to use read_subpackage_metadata kernel.bbclass: Move away from calling package_get_auto_pr package.bbclass: hash equivalency and pr service bitbake: process.py: Handle SystemExit exception to eliminate backtrace Mark Morton (1): sphinx: test-manual code block, link, and format update Martin Jansa (7): devtool: expand SRC_URI when guessing recipe update mode image-artifact-names: introduce new bbclass and move some variables into it kernel.bbclass: use bash variables like imageType, base_name without {} kernel.bbclass: eliminate (initramfs_)symlink_name variables kernel.bbclass: use camelCase notation for bash variables in do_deploy *-initramfs: don't use .rootfs IMAGE_NAME_SUFFIX bitbake.conf: use ${TCMODE}-${TCLIBC} directory for CACHE Matt Madison (1): image.bbclass: fix REPRODUCIBLE_TIMESTAMP_ROOTFS reference Michael Gloff (2): sysvinit rc: Use PSPLASH_FIFO_DIR for progress fifo sysvinit: Remove ${B} assignment Michael Tretter (1): devtool: deploy-target: Fix size calculation for hard links Ming Liu (2): systemd: split systemd specific udev rules into its own package libubootenv: inherit uboot-config Mingli Yu (3): qemu: always define unknown_lock_type qemu: override DEBUG_BUILD bison: remove the parallel build patch Naveen Saini (1): lib/oe/recipeutils.py: add support for BBFILES_DYNAMIC Nicolas Dechesne (73): linux-libc-headers: kernel headers are installed in STAGING_KERNEL_BUILDDIR bitbake: sphinx: add initial build infrastructure bitbake: sphinx: initial sphinx support bitbake: sphinx: bitbake-user-manual: use builtin sphinx glossary bitbake: sphinx: switch to readthedocs theme bitbake: sphinx: override theme CSS bitbake: sphinx: fixup for links bitbake: sphinx: fix links inside notes bitbake: sphinx: fixes all remaining warnings bitbake: sphinx: Makefile.sphinx: add clean and publish targets bitbake: sphinx: tweak html output a bit bitbake: sphinx: add SPDX headers bitbake: sphinx: index: move the boilerplate at the end of the page bitbake: sphinx: conf: enable extlinks extension bitbake: sphinx: add releases page bitbake: sphinx: bitbake-user-manual: insert additional blank line after title bitbake: sphinx: last manual round of fixes/improvements bitbake: sphinx: update style for important, caution and warnings bitbake: sphinx: remove leading '/' bitbake: sphinx: theme_override: properly set font for verbatim text bitbake: bitbake-user-manual: fix bad links sphinx: add initial build infrastructure sphinx: initial sphinx support sphinx: ref-variables: use builtin sphinx glossary sphinx: overview-manual: add figures sphinx: switch to readthedocs theme sphinx: Add SPDX license headers sphinx: add CSS theme override sphinx: bsp-guide: add figures sphinx: add Yocto project logo sphinx: conf: update copyright sphinx: conf: add substitutions/global variables sphinx: add boilerplate file sphinx: add boilerplate to manuals sphinx: ref-manual: add revision history table sphinx: add a general index sphinx: conf.py: enable sphinx.ext.autosectionlabel sphinx: ref-manual: use builtin glossary for the Terms section sphinx: fix internal links sphinx: ref-manual: fix typo sphinx: fix custom term links sphinx: manual updates for some links sphinx: dev-manual add figures sphinx: kernel-dev: add figures sphinx: profile-manual: add figures sphinx: fix up bold text for informalexample container sphinx: ref-manual: add figures sphinx: sdk-manual: add figures sphinx: test-manual: add figures sphinx: toaster-manual: add figures sphinx: add links for Yocto project website sphinx: fix links when the link text should be displayed sphinx: add links to terms in the BitBake glossary sphinx: add links to section in the Bitbake manual sphinx: setup extlink for docs.yoctoproject.org sphinx: enable intersphinx extension sphinx: insert blank below between title and toc sphinx: fix up terms related to kernel-fitimage sphinx: conf: a few rendering tweaks sphinx: makefile: add publish target sphinx: conf: include CSS/JS files, the proper way sphinx: convert 'what I wish I'd known' sphinx: convert 'transitioning to a custom environment' sphinx: ref-manual: fix heading for oe-init-build-env sphinx: brief-yoctoprojectqs: fix up all remaining rendering issues sphinx: Makefile.sphinx improvements sphinx: convert bsp-guide sphinx: remove leading '/' sphinx: update style for important, caution and warnings sphinx: profile-manual: convert profile-manual sphinx: theme_override: properly set font for verbatim text sphinx: theme_override: add tying-it-together admonition sphinx: conf: exclude adt-manual/*.rst Oleksandr Kravchuk (1): ell: update to 0.33 Ovidiu Panait (1): libxml2: Fix CVE-2020-24977 Peter A. Bigot (2): bluez5: fix builds that require ell support timezone: include leap second data in tzdata-core Peter Bergin (1): systemd: avoid failing if no udev rules provided Pierre-Jean Texier (2): libubootenv: upgrade 0.3 -> 0.3.1 diffoscope: upgrade 158 -> 160 Quentin Schulz (16): sphinx: brief-yoctoprojectqs: remove redundant welcome sphinx: brief-yoctoprojectqs: fix ambiguous note for cyclone5 example sphinx: brief-yoctoprojectqs: add missing boilerplate sphinx: overview-manual: add link to AUH how-to section sphinx: overview-manual: fix bitbake basic explanation sphinx: brief-yoctoprojectqs: add note on branch consistency between layers sphinx: what-i-wish-id-known: update "don't be fooled by doc search results" sphinx: overview-manual: remove highlight in bold section sphinx: replace special quotes with single and double quotes sphinx: fix incorrect indentations sphinx: brief-yoctoprojectqs: put other distros note after Ubuntu-specific packages sphinx: fix a few typos or missing/too many words sphinx: "highlight" some variables, tasks or files sphinx: fix or add missing links and remove mention of Eclipse workflow ref-manual: examples: hello-autotools: upgrade to 2.10 ref-manual: examples: libxpm: add relative path to .inc Rahul Kumar (1): systemd-serialgetty: Fix sed expression quoting Rasmus Villemoes (1): kernel.bbclass: run do_symlink_kernsrc before do_patch Richard Purdie (74): nativesdk-sdk-provides-dummy: Add /bin/sh bitbake: fetch2/wget: Remove buffering parameter bitbake: cooker: Ensure parse_quit thread is closed down bitbake: cooker: Explictly shut down the sync thread bitbake: fetch2: Drop cups.org from wget status checks bitbake: build/msg: Cleanup verbose option handling bitbake: cooker/cookerdata/main: Improve loglevel handling bitbake: cookerdata: Ensure UI options are updated to the server bitbake: cooker/cookerdata: Ensure UI event log is updated from commandline bitbake: cooker: Defer configuration init to after UI connection bitbake: server/process: Move the socket code to server process only bitbake: main/server/process: Drop configuration object passing bitbake: cooker: Ensure BB_ORIGENV is updated by changes to configuration.env bitbake: server/process: Log extra threads at exit bitbake: server/process: Add bitbake-server and exec() a new server process bitbake: runqueue: Don't use sys.argv bitbake: cooker: Ensure cooker's enviroment is updated on updateConfig connman-gnome/matchbox-desktop: Remove file:// globbing selftest/recipetool: Drop globbing SRC_URI test, no longer supported local.conf.sample: Document memory resident bitbake bitbake: fetch2: Drop globbing supprt in file:// SRC_URIs bitbake: server/process: Use sys.executable for bitbake-server bitbake: process: Avoid bb.utils.timeout bitbake: utils: Drop broken timeout function bitbake: server/process: Fix typo in code causing tracebacks oeqa/selftest: Apply patch to fix cpio build with -fno-common runqemu: Show an error for conflicting graphics options lttng: Move platform logic to dedicated inc file patchelf: upgrade 0.11 -> 0.12 build-appliance/packagegroup-core-base-utils: Replace dhcp-client/dhcp-server with dhcpcd/kea selftest/prservice: Improve test failure message iputils: Adapt ${PN}-tftpd package dependency to PACKAGECONFIG bitbake: process/knotty: Improve early exception handling bitbake: cooker/cookerdata: Use BBHandledException, not sys.exit() bitbake: cookerdata: Fix exception raise statements bitbake: process: Avoid printing binary strings for leftover processes bitbake: server/process: Ensure logging is flushed bitbake: server/process: Don't show tracebacks if the lockfile is removed bitbake: cooker: Ensure parser replacement calls parser final_cleanup bitbake: cooker: Assign a name to the sync thread to aid debugging bitbake: server/process: Ensure we don't keep looping if some other server is started bitbake: server/process: Prefix the log data with pid/time information bitbake: server/process: Note when commands complete in logs bitbake: cooker: Ensure parser is cleaned up runqemu: Add a hook to allow it to renice bitbake: cooker: Avoid parser deadlocks bitbake: cooker: Ensure parser worker signal handlers are default selftest/signing: Ensure build path relocation is safe oeqa/concurrencytest: Improve builddir path manipulations bitbake: cooker/command: Fix disconnection handling bitbake: tinfoil: Ensure sockets don't leak even when exceptions occur bitbake: tests/fetch: Move away from problematic freedesktop.org urls bitbake: sphinx: Enhance the sphinx experience/nagivation with: bitbake: sphinx: theme_override: Use bold for emphasis text Revert "qemu: always define unknown_lock_type" Revert "core-image-sato: qemumips use 512 mem" sphinx: Organize top level docs sphinx: releases.rst: Add index/links to docs for previous releases sphinx: boilerplate.rst: Drop versions notes as we have better navigation now sphinx: boilerplate.rst: Sphinx puts the copyright elsewhere sphinx: history: Move revision history to its own section sphinx: manuals: Move boilerplate after toctree sphinx: Add support for multiple docs version sphinx: index.rst: Fix links sphinx: ref-system-requirements: Improve formatting of the notes sections, merging them sphinx: ref-manual links fixes and many other cleanups to import sphinx: dev-manual: Various URL, code block and other fixes to imported data sphinx: sdk-manual: Various URL, code block and other fixes to imported data sphinx: kernel-dev: Various URL, code block and other fixes to imported data sphinx: theme_override: Use bold for emphasis text sphinx: ref-tasks: Add populate_sdk_ext task definition sphinx: ref-manual/migration: Split each release into its own file sphinx: overview-manual: Various URL, code block and other fixes to imported data build-appliance-image: Update to master head revision Robert Yang (3): bitbake: cooker.py: Save prioritized BBFILES to BBFILES_PRIORITIZED bitbake: utils.py: get_file_layer(): Exit the loop when file is matched bitbake: utils.py: get_file_layer(): Improve performance Ross Burton (25): package.bbclass: explode the RPROVIDES so we don't think the versions are provides elfutils: silence a new QA warning insane: improve gnu-hash-style warning gdk-pixbuf: add tests PACKAGECONFIG debianutils: change SRC_URI to use snapshot.debian.org insane: only load real files as ELF autoconf: consolidate SRC_URI autoconf: consolidate DEPENDS kea: no need to depend on kea-native kea: don't use PACKAGECONFIG inappropriately kea: bump to 1.7.10 help2man: rewrite recipe local.conf.sample.extended: remove help2man reference curl: add vendors to CVE_PRODUCT to exclude false positives harfbuzz: update patch status harfbuzz: fix a build race around hb-version.h cmake: whitelist CVE-2016-10642 ncurses: remove config.cache qemu: fix CVE-2020-14364 cve-update-db-native: remove unused import cve-update-db-native: add more logging when fetching cve-update-db-native: use fetch task alsa-plugins: improve .la removal sato-screenshot: improve .la removal buildhistory-diff: use BUILDDIR to know where buildhistory is Saul Wold (1): gnupg: uprev 2.2.22 -> 2.2.23 Stacy Gaikovaia (2): bison: uprev from 3.7.1 to 3.7.2 valgrind: fix memcheck vgtests remove fullpath-after flags Steve Sakoman (1): xinput-calibrator: change SRC_URI to branch with libinput support Sumit Garg (1): insane: fix gnu-hash-style check TeohJayShen (1): oeqa/runtime: add test for matchbox-terminal Tim Orling (1): sphinx: toaster-manual: fix vars, links, code blocks Vijai Kumar K (2): image_types_wic: Add ASSUME_PROVIDED to WICVARS wic: misc: Add /bin to the list of searchpaths Yanfei Xu (1): kernel-yocto: only replace leading -I in include paths Yi Zhao (1): glib-networking: add ptest Zhixiong Chi (1): gnutls: CVE-2020-24659 akuster (8): log4cplus: move meta-oe pkg to core kea: Move from meta-networking maintainers.inc: Add me as kea & log4plus maintainer. dhcpcd: Move from meta-network as OE-Core needs a client maintainers.inc: Add me as dhcpcd maintainer dhcp: remove from core bind: Add 9.16.x bind: 9.11 remove hongxu (1): sysstat: fix installed-vs-shipped QA Issue in systemd zangrc (4): libcap:upgrade 2.42 -> 2.43 libcap-ng:upgrade 0.7.10 -> 0.7.11 libgpg-error:upgrade 1.38 -> 1.39 at-spi2-core:upgrade 2.36.0 -> 2.36.1 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I5542f5eea751a2641342e945725fd687cd74bebe
Diffstat (limited to 'poky/meta/recipes-kernel')
-rw-r--r--poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb (renamed from poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb)0
-rw-r--r--poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb (renamed from poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb)6
-rw-r--r--poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb (renamed from poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb)0
-rw-r--r--poky/meta/recipes-kernel/cryptodev/cryptodev.inc2
-rw-r--r--poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch49
-rw-r--r--poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch10
-rw-r--r--poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb (renamed from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb)10
-rw-r--r--poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc2
-rw-r--r--poky/meta/recipes-kernel/linux/kernel-devsrc.bb2
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-dev.bb2
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-rt_5.8.bb6
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.8.bb8
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb22
-rw-r--r--poky/meta/recipes-kernel/linux/linux-yocto_5.8.bb22
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch54
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch41
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch39
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch84
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch63
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch391
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch59
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch117
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch52
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch918
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb16
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-platforms.inc17
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb8
-rw-r--r--poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb2
30 files changed, 1915 insertions, 101 deletions
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
index c55577c66..c55577c66 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.10.bb
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-linux_1.11.bb
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
index 6474599c4..b3b554c7d 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.11.bb
@@ -7,10 +7,8 @@ inherit module
# Header file provided by a separate package
DEPENDS += "cryptodev-linux"
-SRC_URI += " \
-file://0001-Disable-installing-header-file-provided-by-another-p.patch \
-file://0001-Fix-build-for-Linux-5.8-rc1.patch \
-"
+SRC_URI += "file://0001-Disable-installing-header-file-provided-by-another-p.patch \
+ "
EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
index 9cb5dcb94..9cb5dcb94 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.10.bb
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-tests_1.11.bb
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
index f99f8bc9f..c050eda49 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "git://github.com/cryptodev-linux/cryptodev-linux \
"
-SRCREV = "a87053bee5680878c295b7d23cf0d7065576ac2b"
+SRCREV = "fabe5989a3dc9fba0cd0a40b612247cdde351c01"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
deleted file mode 100644
index 02c721a4f..000000000
--- a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 9e765068582aae3696520346a7500322ca6cc2de Mon Sep 17 00:00:00 2001
-From: Joan Bruguera <joanbrugueram@gmail.com>
-Date: Sat, 13 Jun 2020 19:46:44 +0200
-Subject: [PATCH] Fix build for Linux 5.8-rc1
-
-See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9740ca4e95b43b91a4a848694a20d01ba6818f7b
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=da1c55f1b272f4bd54671d459b39ea7b54944ef9
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8ed45c5dcd455fc5848d47f86883a1b872ac0d0
-
-Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
-
-Upstream-Status: Backport [9e765068582aae3696520346a7500322ca6cc2de]
-
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- zc.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/zc.c b/zc.c
-index ae464ff..2c286bb 100644
---- a/zc.c
-+++ b/zc.c
-@@ -58,7 +58,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
- return 0;
- }
-
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
- down_read(&mm->mmap_sem);
-+#else
-+ mmap_read_lock(mm);
-+#endif
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0))
- ret = get_user_pages(task, mm,
- (unsigned long)addr, pgcount, write, 0, pg, NULL);
-@@ -74,7 +78,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
- (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
- pg, NULL, NULL);
- #endif
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
- up_read(&mm->mmap_sem);
-+#else
-+ mmap_read_unlock(mm);
-+#endif
- if (ret != pgcount)
- return -EINVAL;
-
---
-2.17.1
-
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
index a3ba0912d..31f4d00b5 100644
--- a/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools/0001-kexec-Fix-build-with-fno-common.patch
@@ -66,3 +66,13 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
int bzImage64_probe(const char *buf, off_t len)
{
+--- a/kexec/arch/ppc/kexec-elf-ppc.c
++++ b/kexec/arch/ppc/kexec-elf-ppc.c
+@@ -33,7 +33,6 @@
+ static const int probe_debug = 0;
+
+ unsigned char reuse_initrd;
+-const char *ramdisk;
+ int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *,
+ char *);
+
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.bb
index bf25ff8b7..ffeb8e692 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200817.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=d373d30188c38dabffec0d3cc87abbfd \
+ file://WHENCE;md5=4d229f79f8770b5b2c4aac655b9fabef \
"
# 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] = "962d3ae197d226c8259f9cc7746f7ef12a9d23787cd56bd27302021ba6339722"
+SRC_URI[sha256sum] = "76d05d5f1eff268d3b80675245fa596f557bd55ee2e16ddd54d18ffeae943887"
inherit allarch
@@ -291,7 +291,7 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-netronome-license ${PN}-netronome \
${PN}-qat ${PN}-qat-license \
${PN}-qcom-license \
- ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \
+ ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 ${PN}-qcom-venus-5.2 ${PN}-qcom-venus-5.4 \
${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \
${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
${PN}-whence-license \
@@ -860,6 +860,8 @@ LICENSE_${PN}-qcom-license = "Firmware-qcom"
FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*"
FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
+FILES_${PN}-qcom-venus-5.2 = "${nonarch_base_libdir}/firmware/qcom/venus-5.2/*"
+FILES_${PN}-qcom-venus-5.4 = "${nonarch_base_libdir}/firmware/qcom/venus-5.4/*"
FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
@@ -868,6 +870,8 @@ FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/c
FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.2 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-venus-5.4 = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
diff --git a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index b1cb553c7..3bceac40c 100644
--- a/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -16,7 +16,7 @@ LICENSE = "GPLv2"
# and have a machine specific libc.
#
# But you have some kernel headers you need for some driver? That is fine
-# but get them from STAGING_KERNEL_DIR where the kernel installs itself.
+# but get them from STAGING_KERNEL_BUILDDIR where the kernel installs itself.
# This will make the package using them machine specific but this is much
# better than having a machine specific C library. This does mean your
# recipe needs a
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index a9c7be0f8..aa8e162f4 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -261,6 +261,8 @@ do_install() {
if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then
sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd"
+ sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd"
# we don't build against the defconfig, so make sure it isn't the trigger for syncconfig
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 175836ef9..c937173d0 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.8-rc+"
+LINUX_VERSION ?= "5.9-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 cfe3277e8..73876bb99 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 ?= "22664d170488313b5c2713b6d9c8df6563387728"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine ?= "1d9e25c4f35155580cef313ff2a76de545124a1d"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
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.58"
+LINUX_VERSION ?= "5.4.65"
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 e23e7dcfb..d29c5985c 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 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
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.1"
+LINUX_VERSION ?= "5.8.9"
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 b90b1259a..853fc9369 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.58"
+LINUX_VERSION ?= "5.4.65"
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 ?= "d192ae0b9995a7be2a33b12005a95348ec6aae94"
-SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine_qemuarm ?= "bb77791bc00cfa70211dd238d312b4db950c0808"
+SRCREV_machine ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
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 36a8ae457..d32e5d372 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.1"
+LINUX_VERSION ?= "5.8.9"
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 ?= "566e869df9400258b6f162bf34933f5b6dcd0115"
-SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine_qemuarm ?= "830cb9af40e856615b7a435a4fac57b748ba56d6"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
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 f85e37d2c..fe9369196 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 ?= "7bbd138602fda3d69d74674460e73bffdec73cd2"
-SRCREV_machine_qemuarm64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemumips ?= "e43ed1586cd85a007b0fae3c63d6980d4f5cb336"
-SRCREV_machine_qemuppc ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemuriscv64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemux86 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemux86-64 ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_machine_qemumips64 ?= "d1ff96887c64f70de00add62eb91d4c36f1b181a"
-SRCREV_machine ?= "706efec4c1e270ec5dda92275898cd465dfdc7dd"
-SRCREV_meta ?= "83311f062f4aede9928eca82a34ddf73f264fe2a"
+SRCREV_machine_qemuarm ?= "894e63d3256613faa39931a6ae505cfd196df067"
+SRCREV_machine_qemuarm64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemumips ?= "aa13fdb2c5f8c4e4e432bfee6df9c8f76ec8ac70"
+SRCREV_machine_qemuppc ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemuriscv64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemux86 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemux86-64 ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_machine_qemumips64 ?= "4fb21d604fc54db63221ea28ab90622c29d74202"
+SRCREV_machine ?= "406008bf3232dfc9e63b6e7bf745ca883c45041e"
+SRCREV_meta ?= "0d860e075788a92601dff3eb9b615ee41e465040"
# 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.58"
+LINUX_VERSION ?= "5.4.65"
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 aad689590..9ff1d5da8 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 ?= "097417e785af04be0cbe757bc6e24456a3f701fd"
-SRCREV_machine_qemuarm64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemumips ?= "1fc5490bef8322680d73f6ab2c7b666eccc3bce1"
-SRCREV_machine_qemuppc ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemuriscv64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemux86 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemux86-64 ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_machine_qemumips64 ?= "e61fc06792254eed92c6908a9b35790ed54b0ace"
-SRCREV_machine ?= "d3c69e89ee5b5d4c3c19b8614bdcdc3f5dc7a8b3"
-SRCREV_meta ?= "a3138cb23c3b7409c516d5d2115da9534c120a0c"
+SRCREV_machine_qemuarm ?= "d351bf87c9c0e96a1f27f87f16d298bc4470e0b5"
+SRCREV_machine_qemuarm64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemumips ?= "93d29a70890b19fb5482ebcab5f3a49301851daf"
+SRCREV_machine_qemuppc ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemuriscv64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemux86 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemux86-64 ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_machine_qemumips64 ?= "4faa049b6b7b51c5d12d20c5e9fcf8e0a3ba8d42"
+SRCREV_machine ?= "31fafe701e2adec65d2b2a74a3e592a358915c67"
+SRCREV_meta ?= "a933cb2f91915dceb138775c3878212e228d3eff"
# 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.1"
+LINUX_VERSION ?= "5.8.9"
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
new file mode 100644
index 000000000..ae8bec45d
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Kconfig-fix-dependency-issue-when-building-in-tree-w.patch
@@ -0,0 +1,54 @@
+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/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
new file mode 100644
index 000000000..fab673b85
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Move-mmutrace.h-into-the-mmu-sub-directory-v5.9.patch
@@ -0,0 +1,41 @@
+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
new file mode 100644
index 000000000..524631cc7
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-KVM-x86-mmu-Make-kvm_mmu_page-definition-and-acc.patch
@@ -0,0 +1,39 @@
+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
new file mode 100644
index 000000000..e29c07252
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-fix-ext4-limit-the-length-of-per-inode-prealloc-list.patch
@@ -0,0 +1,84 @@
+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
new file mode 100644
index 000000000..f76e9698c
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0005-fix-ext4-indicate-via-a-block-bitmap-read-is-prefetc.patch
@@ -0,0 +1,63 @@
+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
new file mode 100644
index 000000000..0970dd30a
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0006-fix-removal-of-smp_-read_barrier_depends-v5.9.patch
@@ -0,0 +1,391 @@
+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, &lttng_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, &lttng_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
new file mode 100644
index 000000000..2843c9cb6
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0007-fix-writeback-Drop-I_DIRTY_TIME_EXPIRE-v5.9.patch
@@ -0,0 +1,59 @@
+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
new file mode 100644
index 000000000..7a0d9a38b
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0008-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
@@ -0,0 +1,117 @@
+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
new file mode 100644
index 000000000..346e1d63a
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0009-fix-version-ranges-for-ext4_discard_preallocations-a.patch
@@ -0,0 +1,52 @@
+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
new file mode 100644
index 000000000..a16750ddb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0010-Fix-system-call-filter-table.patch
@@ -0,0 +1,918 @@
+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.2.bb
index 49b7a116b..e36b327a0 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
@@ -6,11 +6,21 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128"
inherit module
-COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm|riscv).*-linux'
+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 \
"
SRC_URI[sha256sum] = "df50bc3bd58679705714f17721acf619a8b0cedc694f8a97052aa5099626feca"
@@ -36,7 +46,7 @@ SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.1
file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
"
-SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260"
-PV_class-devupstream = "2.12.1+git${SRCPV}"
+SRCREV_class-devupstream = "ad594e3a953db1b0c3c059fde45b5a5494f6be78"
+PV_class-devupstream = "2.12.2+git${SRCPV}"
S_class-devupstream = "${WORKDIR}/git"
SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-platforms.inc b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc
new file mode 100644
index 000000000..aa8220bbb
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-platforms.inc
@@ -0,0 +1,17 @@
+#
+# Whether the platform supports kernel tracing
+#
+LTTNGMODULES = "lttng-modules"
+LTTNGMODULES_arc = ""
+LTTNGMODULES_riscv64 = ""
+
+COMPATIBLE_HOST_riscv64_pn-lttng-modules = "null"
+COMPATIBLE_HOST_arc_pn-lttng-modules = "null"
+
+# Whether the platform supports userspace tracing
+# lttng-ust uses sched_getcpu() which is not there on for some platforms.
+LTTNGUST = "lttng-ust"
+LTTNGUST_arc = ""
+
+COMPATIBLE_HOST_arc_pn-lttng-ust = "null"
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
index e9c8e18e2..0787e04d1 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.2.bb
@@ -9,9 +9,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \
file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
+include lttng-platforms.inc
+
DEPENDS = "liburcu popt libxml2 util-linux"
RDEPENDS_${PN} = "libgcc"
-RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed python3-core"
+RRECOMMENDS_${PN} += "${LTTNGMODULES}"
+RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod ${LTTNGMODULES} sed python3-core"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils"
# babelstats.pl wants getopt-long
@@ -21,12 +24,11 @@ PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
"
-PACKAGECONFIG ??= "lttng-ust"
+PACKAGECONFIG ??= "${LTTNGUST}"
PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
PACKAGECONFIG[kmod] = "--with-kmod, --without-kmod, kmod"
PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native"
-PACKAGECONFIG_remove_arc = "lttng-ust"
SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
file://0001-tests-do-not-strip-a-helper-library.patch \
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
index ad544d1b4..67a4307c7 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
@@ -15,6 +15,8 @@ PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
inherit autotools lib_package manpages python3native
+include lttng-platforms.inc
+
EXTRA_OECONF = "--disable-numa"
DEPENDS = "liburcu util-linux"