Files
poky/meta/recipes-kernel/linux/linux-yocto-rt_5.2.bb
Bruce Ashfield cdb9ea2a8b linux-yocto/5.2: fix strace/ptrace long runtime issues
Bumping SRCREVs to pickup the following kernel commit:

[
    Author: Bruce Ashfield <bruce.ashfield@gmail.com>
    Date:   Tue Oct 8 13:15:46 2019 +0000

        signal/ptrace: fix cgroup2/freezer long runtimes

        As reported in the thread: https://lkml.org/lkml/2019/10/1/789, in
        kernels with commit 76f969e8948d82 [cgroup: cgroup v2 freezer], we
        were seeing much longer runtime in strace/ptrace tests (4 minutes
        versus 4 seconds).

        The issue only manifests if CONFIG_PREEMPT is enabled, which is in
        all of the default configurations.

        As sugggested in the thread, the movement of preempt_enable_no_resched()
        until after the cgroup is frozen returns the behaviour to pre-5.2
        runtimes.

        Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

With this change in place, our times are back to normal:

   root@qemux86-64:~# cd /usr/lib/strace/ptest/tests
   root@qemux86-64:/usr/lib/strace/ptest/tests# time ../strace -o log -qq -esignal=none -e/clock ./printpath-umovestr>ttt

   real    0m3.909s
   user    0m0.534s
   sys     0m3.342s

This will eventually loop around via -stable, or may need future
tweaks, but it does address the immediate issue/symptom that we are
seeing, with no obvious side effects.

[YOCTO #13556]

(From OE-Core rev: 55a54aed27ffa94a235da526a39aeea59caa3417)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-09 14:07:43 +01:00

45 lines
1.9 KiB
BlitzBasic

KBRANCH ?= "v5.2/standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
# Skip processing of this recipe if it is not explicitly specified as the
# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
# to build multiple virtual/kernel providers, e.g. as dependency of
# core-image-rt-sdk, core-image-rt.
python () {
if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
SRCREV_machine ?= "0a9f6ee2443b54c614107728ca76485916010023"
SRCREV_meta ?= "b867b78b5019ae455af97dec7794cff7527d7624"
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.2;destsuffix=${KMETA}"
LINUX_VERSION ?= "5.2.17"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"
PV = "${LINUX_VERSION}+git${SRCPV}"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
LINUX_KERNEL_TYPE = "preempt-rt"
COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
# Functionality flags
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"