Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
75 lines
1.5 KiB
Bash
75 lines
1.5 KiB
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# description: event trigger - test poll wait on histogram
|
|
# requires: set_event events/sched/sched_process_free/trigger events/sched/sched_process_free/hist
|
|
# flags: instance
|
|
|
|
POLL=${FTRACETEST_ROOT}/poll
|
|
|
|
if [ ! -x ${POLL} ]; then
|
|
echo "poll program is not compiled!"
|
|
exit_unresolved
|
|
fi
|
|
|
|
EVENT=events/sched/sched_process_free/
|
|
|
|
# Check poll ops is supported. Before implementing poll on hist file, it
|
|
# returns soon with POLLIN | POLLOUT, but not POLLPRI.
|
|
|
|
# This must wait >1 sec and return 1 (timeout).
|
|
set +e
|
|
${POLL} -I -t 1000 ${EVENT}/hist
|
|
ret=$?
|
|
set -e
|
|
if [ ${ret} != 1 ]; then
|
|
echo "poll on hist file is not supported"
|
|
exit_unsupported
|
|
fi
|
|
|
|
# Test POLLIN
|
|
echo > trace
|
|
echo 'hist:key=comm if comm =="sleep"' > ${EVENT}/trigger
|
|
echo 1 > ${EVENT}/enable
|
|
|
|
# This sleep command will exit after 2 seconds.
|
|
sleep 2 &
|
|
BGPID=$!
|
|
# if timeout happens, poll returns 1.
|
|
${POLL} -I -t 4000 ${EVENT}/hist
|
|
echo 0 > tracing_on
|
|
|
|
if [ -d /proc/${BGPID} ]; then
|
|
echo "poll exits too soon"
|
|
kill -KILL ${BGPID} ||:
|
|
exit_fail
|
|
fi
|
|
|
|
if ! grep -qw "sleep" trace; then
|
|
echo "poll exits before event happens"
|
|
exit_fail
|
|
fi
|
|
|
|
# Test POLLPRI
|
|
echo > trace
|
|
echo 1 > tracing_on
|
|
|
|
# This sleep command will exit after 2 seconds.
|
|
sleep 2 &
|
|
BGPID=$!
|
|
# if timeout happens, poll returns 1.
|
|
${POLL} -P -t 4000 ${EVENT}/hist
|
|
echo 0 > tracing_on
|
|
|
|
if [ -d /proc/${BGPID} ]; then
|
|
echo "poll exits too soon"
|
|
kill -KILL ${BGPID} ||:
|
|
exit_fail
|
|
fi
|
|
|
|
if ! grep -qw "sleep" trace; then
|
|
echo "poll exits before event happens"
|
|
exit_fail
|
|
fi
|
|
|
|
exit_pass
|