SPE Support Issue on Jetson Orin Nano Developer Kit

Issue Overview

Users are experiencing difficulties enabling the Statistical Profiling Extension (SPE) on the Jetson Orin Nano Developer Kit. Despite the Arm Cortex-A78AE CPU cores supporting SPE according to the Technical Reference Manual, the system does not report SPE as being supported. This issue persists across different software configurations:

  • Ubuntu 24.04 with kernel 6.8.0-41-generic (after JetPack 6.0 firmware upgrade)
  • JetPack with kernel 5.15.136

The problem manifests as the absence of relevant entries in /sys/bus/event_source/devices, indicating that the SPE functionality is not recognized by the system. This impacts users’ ability to utilize the Statistical Profiling Extension for performance analysis and optimization on the Jetson Orin Nano Developer Kit.

Possible Causes

  1. Firmware Limitations: The current firmware may not properly enable or expose the SPE functionality to the operating system.

  2. Kernel Configuration: Despite loading the arm_spe_pmu kernel module and passing the required kpti=off kernel parameter, the kernel may not be correctly configured to utilize SPE.

  3. Hardware Implementation: There might be discrepancies between the documented capabilities in the Technical Reference Manual and the actual implementation in the Jetson Orin Nano Developer Kit.

  4. Software Compatibility: The SPE support might not be fully integrated or tested with the current JetPack and Ubuntu distributions used on the Jetson platform.

  5. Missing Drivers or Modules: Additional drivers or kernel modules beyond arm_spe_pmu might be required to fully enable SPE functionality.

Troubleshooting Steps, Solutions & Fixes

  1. Verify Hardware Capabilities:

    • Review the Jetson Orin Nano Developer Kit module datasheet, specifically section 2.2, to confirm the exact CPU capabilities.
    • Cross-reference this information with the Arm Cortex-A78AE Technical Reference Manual to ensure SPE support is indeed expected.
  2. Check Kernel Configuration:

    • Ensure the arm_spe_pmu kernel module is loaded:
      lsmod | grep arm_spe_pmu
      
    • Verify the kernel command line includes kpti=off:
      cat /proc/cmdline
      
  3. Compile and Load Custom Kernel Module:

    • For JetPack with kernel 5.15.136, compile the arm_spe_pmu module separately:
      git clone https://github.com/torvalds/linux.git
      cd linux
      git checkout v5.15.136
      make M=arch/arm64/kernel/perf_event_arm_spe.o
      sudo insmod arch/arm64/kernel/perf_event_arm_spe.ko
      
  4. Update JetPack and Firmware:

    • Ensure you are using the latest version of JetPack available for the Jetson Orin Nano Developer Kit.
    • Check for any available firmware updates that might address SPE support.
  5. Consult NVIDIA Developer Resources:

    • Visit the NVIDIA Developer forums and search for similar issues or post a detailed description of your problem.
    • Check the Jetson Download Center for any relevant documentation or updates.
  6. Explore Alternative Profiling Methods:

    • While working on resolving the SPE issue, consider using other profiling tools available for the Jetson platform, such as NVIDIA Nsight Systems or perf.
  7. Report the Issue:

    • If the problem persists after trying the above steps, report the issue to NVIDIA support or the Jetson community forums with detailed information about your setup and the steps you’ve taken.
  8. Monitor for Updates:

    • Keep an eye on future JetPack and kernel releases that might include improvements or fixes for SPE support on the Jetson Orin Nano Developer Kit.

It is worth pointing out that as of the latest information provided, NVIDIA support has indicated limited experience with this specific functionality. The SPE support on the Jetson Orin Nano Developer Kit may still be in development or not fully supported. Continue to check official NVIDIA channels for updates on this feature’s availability and implementation.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *