Skip to content

Failed cpuidle-latency test due to kernel-devel dependency on Debian-based OS (Ubuntu 24.04) #3016

@kumarmuthu

Description

@kumarmuthu

Issue:

Issue line: https://github.com/avocado-framework-tests/avocado-misc-tests/blob/master/cpu/cpuidle-latency.py#L56

Problem:

On Debian-based distributions like Ubuntu 24.04, the test fails due to the kernel-devel dependency which is not available via apt.

Before Fix Log:

Running avocado run: /root/avocado-misc-tests/cpu/cpuidle-latency.py

/root/.local/share/pipx/venvs/avocado-framework/lib/python3.12/site-packages/avocado/core/__init__.py:18: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  import pkg_resources
JOB ID     : e8ff4a03725168ad0cce025cc790fdae0f3c784c
JOB LOG    : /root/avocado/job-results/job-2025-06-27T10.13-e8ff4a0/job.log
(1/1) /root/avocado-misc-tests/cpu/cpuidle-latency.py:Cpuidle_latency.test: STARTED
(1/1) /root/avocado-misc-tests/cpu/cpuidle-latency.py:Cpuidle_latency.test:  CANCEL: kernel-devel is needed for the test to be run (0.18 s)
RESULTS    : PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 1
JOB HTML   : /root/avocado/job-results/job-2025-06-27T10.13-e8ff4a0/results.html
JOB TIME   : 1.79 s
/root/avocado-misc-tests/cpu/cpuidle-latency.py : RESULTS    : PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 1

Fix:

Replaced kernel-devel with Ubuntu equivalent linux-headers-$(uname -r) and added required linux-tools-* packages for perf functionality.

sm = SoftwareManager()
distro_name = distro.detect().name
deps = ['gcc', 'make']
if 'Ubuntu' in distro_name:
    deps.extend([
        'linux-headers-%s' % platform.uname()[2],
        'linux-tools-common',
        'linux-tools-%s' % platform.uname()[2]
    ])
elif distro_name in ['rhel', 'SuSE', 'fedora', 'centos']:
    deps.extend(['perf', 'kernel-devel'])
else:
    self.cancel("Install the package for perf supported by %s" % distro_name)

After Fix Log (PASS):

[stdlog] 2025-06-30 06:17:04,873 avocado.utils.process process          L0475 DEBUG| [stdout] make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-62-generic'
[stdlog] 2025-06-30 06:17:04,873 avocado.utils.process process          L0719 INFO | Command 'make' finished with 0 after 0.593257879s
[stdlog] 2025-06-30 06:17:04,873 avocado.test parameters       L0140 DEBUG| PARAMS (key=perfstat, path=*, default=) => ''
[stdlog] 2025-06-30 06:17:04,873 avocado.test parameters       L0140 DEBUG| PARAMS (key=verbose, path=*, default=False) => False
[stdlog] 2025-06-30 06:17:04,873 avocado.utils.process process          L0662 INFO | Running ' /root/avocado/job-results/job-2025-06-30T06.17-ae6b480/test-results/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/tmp_diroiqugzye/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/cpuidle.sh'
[stdlog] 2025-06-30 06:17:04,874 avocado.utils.process process          L0711 INFO | Command  /root/avocado/job-results/job-2025-06-30T06.17-ae6b480/test-results/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/tmp_diroiqugzye/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/cpuidle.sh running on a thread
[stdlog] 2025-06-30 06:17:05,396 avocado.utils.process process          L0475 DEBUG| [stdout] Inserting ./test-cpuidle_latency.ko module
[stdlog] 2025-06-30 06:17:05,396 avocado.utils.process process          L0475 DEBUG| [stdout]
[stdlog] 2025-06-30 06:17:05,799 avocado.utils.process process          L0475 DEBUG| [stdout] --IPI Latency Test---
[stdlog] 2025-06-30 06:18:10,118 avocado.utils.process process          L0475 DEBUG| [stdout] Baseline Avg IPI latency(ns): 1493
[stdlog] 2025-06-30 06:19:14,573 avocado.utils.process process          L0475 DEBUG| [stdout] Observed Avg IPI latency(ns) - State POLL: 1599
[stdlog] 2025-06-30 06:20:19,335 avocado.utils.process process          L0475 DEBUG| [stdout] Observed Avg IPI latency(ns) - State C1: 3835
[stdlog] 2025-06-30 06:21:24,167 avocado.utils.process process          L0475 DEBUG| [stdout] Observed Avg IPI latency(ns) - State C2: 18424
[stdlog] 2025-06-30 06:21:24,760 avocado.utils.process process          L0475 DEBUG| [stdout] Removing ./test-cpuidle_latency.ko module
[stdlog] 2025-06-30 06:21:24,760 avocado.utils.process process          L0475 DEBUG| [stdout] Full Output logged at: cpuidle.log
[stdlog] 2025-06-30 06:21:24,783 avocado.utils.process process          L0719 INFO | Command ' /root/avocado/job-results/job-2025-06-30T06.17-ae6b480/test-results/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/tmp_diroiqugzye/1-_root_avocado-misc-tests_cpu_cpuidle-latency.py_Cpuidle_latency.test/cpuidle.sh' finished with 0 after 259.909551545s
[stdlog] 2025-06-30 06:21:24,786 asyncio selector_events  L0064 DEBUG| Using selector: EpollSelector
[stdlog] 2025-06-30 06:21:24,789 avocado.test test             L0736 INFO | PASS 1-/root/avocado-misc-tests/cpu/cpuidle-latency.py:Cpuidle_latency.test
[stdlog] 2025-06-30 06:21:24,789 avocado.test test             L0718 INFO |
 

Summary:

Fix ensures cross-distro compatibility by using distro-specific packages. Now the test runs successfully on Ubuntu 24.04 as well as RPM-based distributions.


Log Attachment:
cpuidle_latency_test_fix_log.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions