Skip to content

nvphs.service (Power Hinting Service) Fails to Initialize on Custom Airvolute 1.2 Board #43

Description

@PavelGuzenfeld

Board: Airvolute 1.2 with Jetson Xavier NX module
L4T Version: R35.2.1 (Kernel 5.10.104-tegra, likely custom-built: msedl@msedl-OMEN-by-HP-Laptop-15-dc1xxx)
DTB Used: Stock NVIDIA devkit DTB (kernel_tegra194-p3668-0001-p3509-0000.dtb)

Issue Summary:
The nvphs.service (PHS daemon, /usr/sbin/nvphsd) consistently fails during initialization at boot and on manual restarts. The service logs indicate "Failed to initialize sysfs readers. Exiting." and "Initialization Failed! Entering Zombie mode." strace analysis reveals that nvphsd attempts to access numerous sysfs paths, many of which do not exist on the system (returning ENOENT). While some of these are legacy paths for older Tegra SoCs (defined in /etc/nvphsd_common.conf), others relate to CPU quiet states, CPU load statistics, and display controller enables. Commenting out legacy GPU paths in nvphsd_common.conf did not resolve the issue.

This failure leads to improper dynamic power management, likely contributing to system instability and soctherm: OC ALARM events observed under load.

Reproduction Steps:

Boot the system.
Check the status and journal of nvphs.service:

sudo systemctl status nvphs.service
sudo journalctl -u nvphs.service -n 30 --no-pager

Expected (Problematic) Output in Journal:

<timestamp> dcs phs[<PID>]: E/ nvphs: Failed to initialize sysfs readers. Exiting.
<timestamp> dcs phs[<PID>]: E/ nvphs: Initialization Failed! Entering Zombie mode

(Optional) If strace is installed, trace nvphsd manually after stopping the service:

sudo systemctl stop nvphs.service
sudo strace -f -o /tmp/nvphs_strace.txt -e trace=file,open,openat,stat,access /usr/sbin/nvphsd

(Let run a few seconds, Ctrl+C, then inspect /tmp/nvphs_strace.txt for ENOENT on various sysfs paths like /sys/devices/system/cpu/cpu0/cpuquiet/active, /sys/devices/system/cpu/cpufreq/cpuload/enable, etc.).

Key Questions for Support:

  • Is the nvphsd in L4T R35.2.1 known to have issues with missing optional/legacy sysfs paths on Jetson Xavier NX, particularly when using a custom board or kernel?
  • Which specific sysfs nodes are absolutely critical for nvphsd initialization on a headless Xavier NX with L4T R35.2.1?
  • Could the use of a devkit DTB on the custom Airvolute 1.2 board lead to the absence of sysfs nodes that nvphsd requires?

**Kindly provide solution for this issue since it's associated with USB device being disabled such as cameras. **

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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