Public bug reported:

Cherry-pick BPMP support for the Linux 7.3 kernel. 7.0 had an older
version of the series, these have landed in linux-next.

LKML:
https://lore.kernel.org/all/[email protected]/

linux-next SHAs:
fc92a01962b1 firmware: tegra: bpmp: Move channel initialization to helper
ee98ea41ee3f firmware: tegra: bpmp: Add ACPI support
689c1032976a firmware: tegra: bpmp: Add the Memory Bandwidth Throttler ABI 
definitions
7432bd82f69e firmware: tegra: bpmp: Add MBWT BPMP helpers
514a33dde445 firmware: tegra: bpmp: Add MBWT sysfs interface


Testing:
Verify ACPI driver bindings
$ ls -l /sys/bus/platform/drivers/tegra-bpmp/
total 0
lrwxrwxrwx 1 root root     0 Nov  2 20:08 module -> 
../../../../module/tegra_bpmp
lrwxrwxrwx 1 root root     0 Nov  2 20:08 NVDA3001:00 -> 
../../../../devices/platform/NVDA3001:00
lrwxrwxrwx 1 root root     0 Nov  2 20:08 NVDA3001:01 -> 
../../../../devices/platform/NVDA3001:01
--w------- 1 root root 65536 Nov  2 20:06 uevent
Read all MBWT attributes
$ sudo python3 - <<'PY'
from pathlib import Path

paths = sorted(Path("/sys/bus/platform/devices").glob(
    "*/mbwt/*/*/bandwidth"))
if not paths:
    raise SystemExit("FAIL: no MBWT attributes found")

failed = 0
for p in paths:
    try:
        value = int(p.read_text().strip())
        print(f"PASS {p}: {value} GB/s")
    except Exception as e:
        failed += 1
        print(f"FAIL {p}: {e}")
print(f"{len(paths)} attributes, {failed} failures")
raise SystemExit(bool(failed))
PY
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/pcie_write/bandwidth: 0 
GB/s
36 attributes, 0 failures
Exercise SET without intentionally changing caps
$ sudo python3 - <<'PY'
from pathlib import Path

paths = sorted(Path("/sys/bus/platform/devices").glob(
    "*/mbwt/*/*/bandwidth"))
if not paths:
    raise SystemExit("FAIL: no MBWT attributes found")

failed = 0
for p in paths:
    try:
        before = int(p.read_text().strip())
        p.write_text(f"{before}\n")
        after = int(p.read_text().strip())
        if after != before:
            raise RuntimeError(f"readback changed: {before} -> {after}")
        print(f"PASS {p}: {after} GB/s")
    except Exception as e:
        failed += 1
        print(f"FAIL {p}: {e}")
raise SystemExit(bool(failed))
PY
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie0/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie1/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie2/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie3/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie4/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:00/mbwt/pcie5/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie0/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie1/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie2/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie3/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie4/pcie_write/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/nvclink/bandwidth: 0 GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/pcie_read/bandwidth: 0 
GB/s
PASS /sys/bus/platform/devices/NVDA3001:01/mbwt/pcie5/pcie_write/bandwidth: 0 
GB/s

** Affects: linux-nvidia-bos (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2173002

Title:
  NVIDIA: Backport firmware: tegra: bpmp: Add ACPI and MBWT support

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-bos/+bug/2173002/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to