Skip to content

interconnect: qcom: Add bandwidth limiter support for QLI targets - #678

Open
MuraliKrishnaboina-16 wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
MuraliKrishnaboina-16:qcom-6.18.y
Open

interconnect: qcom: Add bandwidth limiter support for QLI targets#678
MuraliKrishnaboina-16 wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
MuraliKrishnaboina-16:qcom-6.18.y

Conversation

@MuraliKrishnaboina-16

Copy link
Copy Markdown

Introduce a sysfs interface to allow userspace-controlled bandwidth limiting for QLI targets.

The current PMU-based scaling using static DDR-CPU operating points is overly aggressive for certain workloads and results in power regressions. Provide a fine-grained mechanism to restrict bandwidth at the client level, enabling better control of interconnect usage.

This improves power efficiency by allowing targeted bandwidth throttling for specific clients and workloads.

List of all the interconnect clients are populated inside /sys/kernel/interconnect folder and each client's voting can be limited by setting the limit_ab, limit_ib and limit_commit sysfs options present inside the path folder.

Following would be the directory structure.

  • soc:qcom,dcvs:llcc:sp
    • chm_apps-qns_llcc --> path used by the client - limit_ab --> AB limit in KBps - limit_ib --> IB limit in KBps - limit_commit --> limits will be applied once commit is set

Introduce a sysfs interface to allow userspace-controlled bandwidth
limiting for QLI targets.

The current PMU-based scaling using static DDR-CPU operating points
is overly aggressive for certain workloads and results in power
regressions. Provide a fine-grained mechanism to restrict bandwidth
at the client level, enabling better control of interconnect usage.

This improves power efficiency by allowing targeted bandwidth
throttling for specific clients and workloads.

List of all the interconnect clients are populated inside
/sys/kernel/interconnect folder and each client's voting can be limited
by setting the limit_ab, limit_ib and limit_commit sysfs options
present inside the path folder.

Following would be the directory structure.
+ soc:qcom,dcvs:llcc:sp
    + chm_apps-qns_llcc	--> path used by the client
       - limit_ab	--> AB limit in KBps
       - limit_ib	--> IB limit in KBps
       - limit_commit	--> limits will be applied once commit is set

Signed-off-by: Raviteja Laggyshetty <rlaggysh@qti.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

1 similar comment
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qcomlnxci qcomlnxci added the stale No recent activity label Jul 25, 2026
@qcomlnxci

Copy link
Copy Markdown

@qualcomm-linux/kernel This pull request has been marked as stale due to 30 days of inactivity and will automatically close after an additional 5 days.

Signed-off-by: MuraliKrishnaboina-16 <mur@qti.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qlijarvis

Copy link
Copy Markdown

PR #678 — validate-patch

PR: #678

Verdict Issues Detailed Report
0 Full report

Final Summary

  1. Lore link present: No — no lore.kernel.org Link tags found in either commit; cannot validate against upstream source
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Unknown — no lore link provided; commit lacks required prefix to indicate provenance (QCLINUX/UPSTREAM/FROMLIST/BACKPORT/PENDING/WORKAROUND)
  4. PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #678 - Add bandwidth limiter support for QLI targets
Upstream commit: N/A
Verdict: ❌ FAIL

Commit Message

Commit 1/2: interconnect: qcom: Add bandwidth limiter support for QLI targets

Check Status Note
Subject matches upstream N/A No lore link present
Body preserves rationale N/A No lore link present
Fixes tag present/correct Not applicable - new feature
Authorship preserved Author mismatch: From: is Murali Krishna but Signed-off-by: is Raviteja Laggyshetty
Backport note (if applicable) N/A Not a backport

Commit 2/2: Delete drivers/interconnect/core.c.orig

Check Status Note
Subject matches upstream N/A No lore link present
Body preserves rationale No commit message body - cleanup commit lacks explanation
Fixes tag present/correct Should reference commit 1/2 that introduced the .orig file
Authorship preserved Consistent author/signoff
Backport note (if applicable) N/A Not a backport

Diff

Commit 1/2:

File Status Notes
drivers/interconnect/core.c ⚠️ Adds sysfs bandwidth limiting feature - no upstream reference
drivers/interconnect/core.c.orig Creates a 1252-line .orig backup file - should never be committed
drivers/interconnect/internal.h ⚠️ Adds internal structures for bandwidth limiting

Commit 2/2:

File Status Notes
drivers/interconnect/core.c.orig Correctly deletes the .orig file

Issues

Critical Issues:

  1. No lore.kernel.org link - Neither commit contains a Link: tag pointing to lore.kernel.org. Per the skill workflow Step 1, commits without lore links cannot be validated against upstream sources.

  2. Missing commit prefix - Commit 1/2 lacks a required prefix (QCLINUX:, UPSTREAM:, FROMLIST:, BACKPORT:, PENDING:, or WORKAROUND:). The subject should indicate whether this is vendor-only code or has upstream provenance.

  3. Authorship mismatch (Commit 1/2) - The From: field shows "Murali Krishna mur@qti.qualcomm.com" but the Signed-off-by: shows "Raviteja Laggyshetty rlaggysh@qti.qualcomm.com". The primary author must be in the From: field. If Raviteja is the original author, use git commit --amend --author="Raviteja Laggyshetty <rlaggysh@qti.qualcomm.com>".

  4. Backup file committed (Commit 1/2) - The patch creates drivers/interconnect/core.c.orig, a 1252-line backup file typically generated by patch/merge tools. These files should never be committed to version control. This indicates the patch was not properly cleaned before submission.

  5. Two-commit anti-pattern - Commit 2/2 exists solely to delete the .orig file introduced in commit 1/2. These should be squashed into a single clean commit.

  6. Missing commit message body (Commit 2/2) - The cleanup commit has no explanation and no Fixes: tag referencing commit 1/2.

  7. Integration presence failure - Per integration_presence_report.md: commit 1/2 shows "partial" presence (subject or partial tree evidence found but full change not verified), and commit 2/2 is completely missing from both qcom-next and topics branches.

Minor Issues:

  1. Sysfs ABI documentation missing - The commit adds a new sysfs interface under /sys/kernel/interconnect/ but does not include corresponding ABI documentation in Documentation/ABI/testing/sysfs-interconnect or similar.

Verdict

Do not merge. This PR has multiple critical issues:

  1. Squash both commits into one and remove the .orig file artifact before committing
  2. Fix the authorship: ensure the primary author is in From: and Author: fields
  3. Add the appropriate commit prefix (QCLINUX: if vendor-only, or FROMLIST:/UPSTREAM: with a lore link if posted upstream)
  4. If this is vendor-only code, add QCLINUX: prefix and document why it's not suitable for upstream
  5. If this has been or will be posted upstream, add the lore.kernel.org link and appropriate prefix
  6. Add sysfs ABI documentation for the new /sys/kernel/interconnect/ interface
  7. Investigate why the integration presence check shows only partial/missing presence in qcom-next and topics

Final Summary

  1. Lore link present: No — no lore.kernel.org Link tags found in either commit; cannot validate against upstream source
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: Unknown — no lore link provided; commit lacks required prefix to indicate provenance (QCLINUX/UPSTREAM/FROMLIST/BACKPORT/PENDING/WORKAROUND)
  4. PR present in qcom-next/topics: Fail — per integration_presence_report.md: commit 1/2 shows partial presence (subject or partial tree evidence found but full change not verified); commit 2/2 is missing from both qcom-next and topics (0/2 commits fully present, 1/2 partial, 1/2 missing)

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: 07f50dc44eddcf748a99d1a7523a466438bfffa6
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/2 [PATCH 1/2] interconnect: qcom: Add bandwidth limiter support for QLI partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
2/2 [PATCH 2/2] Delete drivers/interconnect/core.c.orig missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing

Final Status

overall_status: FAIL
present_commits: 0/2
partial_commits: 1/2
missing_commits: 1/2
topics_checked_for_commits: 2/2
final_summary: PR present in qcom-next/topics: Fail - 1/2 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #678 — checker-log-analyzer

PR: #678
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/30348668225

Checker Result Summary
Checker Result Summary
checkpatch 5 errors, 2 warnings, 15 checks across 2 commits
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Missing required prefix on both commits
tag-check Subject prefix required (assuming non-qcom-next target)

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #678 - interconnect: qcom: Add bandwidth limiter support for QLI targets
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/30348668225

Checker Result Summary
checkpatch 5 errors, 2 warnings, 15 checks across 2 commits
dt-binding-check ⏭️ No DT binding changes
dtb-check ⏭️ No devicetree changes
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Missing required prefix on both commits
tag-check Subject prefix required (assuming non-qcom-next target)

❌ checkpatch

Root cause: Multiple coding style violations in commit 0675c10, including missing spaces, incorrect indentation, brace placement, and missing Signed-off-by.

Failure details:

Commit 0675c10 ("interconnect: qcom: Add bandwidth limiter support for QLI targets"):

ERROR: space required after that ',' (ctx:VxV)
#97: FILE: drivers/interconnect/core.c:464:
+	int i,ret;

ERROR: space prohibited before that ',' (ctx:WxW)
#201: FILE: drivers/interconnect/core.c:568:
+	u32 prev_ab , prev_ib ;

ERROR: code indent should use tabs where possible
#221: FILE: drivers/interconnect/core.c:588:

ERROR: else should follow close brace '}'
#362: FILE: drivers/interconnect/core.c:784:
+			}
+			else {

ERROR: Missing Signed-off-by: line by nominal patch author 'Murali Krishna <mur@qti.qualcomm.com>'

WARNING: space prohibited before semicolon
WARNING: braces {} are not necessary for single statement blocks

Total: 5 errors, 2 warnings, 15 checks, 1702 lines checked

Commit 333aa1e ("Delete drivers/interconnect/core.c.orig"):

WARNING: Missing commit description - Add an appropriate one

Total: 0 errors, 1 warnings, 0 checks, 0 lines checked

Fix:

For commit 0675c10:

git rebase -i 1ccd895bc7c0   # mark commit as 'edit'

# Fix the spacing errors:
# Line 464: Change "int i,ret;" to "int i, ret;"
# Line 568: Change "u32 prev_ab , prev_ib ;" to "u32 prev_ab, prev_ib;"
# Line 588: Fix indentation to use tabs
# Line 784: Change "}\n\t\t\telse {" to "} else {"

# Add the missing Signed-off-by:
git commit --amend --signoff

git rebase --continue

For commit 333aa1e:

git rebase -i 1ccd895bc7c0   # mark commit as 'edit'

# Add a proper commit description explaining why the .orig file is being deleted
git commit --amend

# Example commit message:
# Delete drivers/interconnect/core.c.orig
#
# Remove accidentally committed backup file that was created during
# development. This file should not be tracked in version control.
#
# Signed-off-by: MuraliKrishnaboina-16 <mur@qti.qualcomm.com>

git rebase --continue

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git 1ccd895bc7c0..333aa1eab3fa

❌ check-patch-compliance

Root cause: Both commits lack the required subject-line prefix (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:).

Failure details:

Checking commit: interconnect: qcom: Add bandwidth limiter support for QLI targets
Commit summary does not start with a required prefix

Checking commit: Delete drivers/interconnect/core.c.orig
Commit summary does not start with a required prefix

Fix:

Determine the correct prefix based on the patch origin:

For commit 0675c10:

git rebase -i 1ccd895bc7c0   # mark commit as 'edit'

# If this patch has been posted to lore.kernel.org:
git commit --amend -m "FROMLIST: interconnect: qcom: Add bandwidth limiter support for QLI targets"
# Add Link: https://lore.kernel.org/... to the commit body

# If this is vendor-only (no upstream posting):
git commit --amend -m "QCLINUX: interconnect: qcom: Add bandwidth limiter support for QLI targets"
# Note: QCLINUX: will still fail check-patch-compliance (known limitation)

git rebase --continue

For commit 333aa1e:

git rebase -i 1ccd895bc7c0   # mark commit as 'edit'

# This is a cleanup commit, likely vendor-only:
git commit --amend -m "QCLINUX: Delete drivers/interconnect/core.c.orig"

git rebase --continue

Note: If these commits are vendor-only changes with no upstream equivalent, the QCLINUX: prefix is appropriate but will continue to fail check-patch-compliance due to a known checker limitation that only accepts upstream-linkable prefixes.

Reproduce locally:

# Clone kernel-checkers repo
git clone https://github.com/qualcomm-linux/kernel-checkers.git
cd kernel-checkers
./check-patch-compliance.sh --kernel-src <path-to-kernel> \
  --base 1ccd895bc7c0 --head 333aa1eab3fa

❌ tag-check

Root cause: Subject-line prefix is missing on both commits (assuming target branch is not qcom-next or qcom-next-staging).

Failure details:

Both commits lack a valid prefix tag at the start of their subject lines:

  • Commit 0675c10: "interconnect: qcom: Add bandwidth limiter support for QLI targets"
  • Commit 333aa1e: "Delete drivers/interconnect/core.c.orig"

Fix:

Same as check-patch-compliance fix above. Add one of the required prefixes:

  • FROMLIST: - if posted to mailing list
  • FROMGIT: - if taken from a maintainer tree
  • UPSTREAM: - if merged into mainline
  • BACKPORT: - if backported with modifications
  • QCLINUX: - if vendor-only
  • PENDING: - if work-in-progress
  • WORKAROUND: - if temporary fix

Note: If the target branch is qcom-next or qcom-next-staging, this check does not apply and should be marked N/A.


Verdict

3 blockers must be fixed before merge:

  1. checkpatch errors - Fix 5 coding style errors (spacing, indentation, brace placement) and add missing Signed-off-by
  2. Missing commit description - Add proper description to commit 333aa1e
  3. Missing subject prefix - Add appropriate prefix (FROMLIST:, QCLINUX:, etc.) to both commits

Additional improvements:

  • Resolve 2 warnings and 15 checks from checkpatch (alignment, unnecessary braces)
  • If patches are posted upstream, add Link: trailer pointing to lore.kernel.org

Note: The .orig file (drivers/interconnect/core.c.orig) should not have been committed in the first place. Consider squashing commit 2 into commit 1 and removing the .orig file entirely from the patch series.

@qcomlnxci qcomlnxci removed the stale No recent activity label Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants