Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

PMU tests have a disabling issue in val_pmu_configure_monitor

Open
#39 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@chetan-rathore is already working on this.

Since Sep 10, 2025.

Assessment

This issue has not been assessed yet.

Description

sbsa

Many PMU SBSA tests (like test_pmu004.c) have code like this?

        /* Configure PMEVTYPER to monitor Bandwidth value */
        for (i = START_MONITOR; i < NUM_PMU_MON + START_MONITOR; i++) {
            status = val_pmu_configure_monitor(node_index, config_events[i - START_MONITOR], i);
            if (status) {
                val_print(ACS_PRINT_ERR,
                            "\n       Required PMU Event 0x%x not supported", config_events[i - START_MONITOR]);
                val_print(ACS_PRINT_ERR, " at node %d", node_index);
                fail_cnt++;
                break;
            }
        }

This configures each monitor individually. The problem comes in the val_pmu_configure_monitor in sbsa_acs_pmu.c (line 251):

uint32_t
val_pmu_configure_monitor(uint32_t node_index, PMU_EVENT_TYPE_e event_type, uint32_t mon_inst)
{
    addr_t base;
    uint32_t offset;
    uint32_t data;
    uint32_t node_type;

    base = val_pmu_get_info(PMU_NODE_BASE0, node_index);

    /* Calculate the register offset based on selected monitor */
    offset = 8 * mon_inst;

    /* Disable all monitors before configuring the monitor */
    **val_pmu_disable_all_monitors(node_index);**

This disables all monitors and removes settings from previously configured monitors. Wouldn't it be better to move the disable/enable of of this function and wrap it around the loop?

for loop
Dominant language
C
Stars
23
Forks
39
Avg merge
21h 56m
Merged PRs (30d)
28

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ARM-software/sysarch-acs

All issues in ARM-software/sysarch-acs

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.