Overcurrent Power Limiting for AGX?

Hello,

We observe that there is an active overcurrent power limit on the smaller Xavier NX of 15W. This appears to be enabled by the file below and the bold line below. If we adjust the ma limit at the location below, the 15W limit is adjusted for the NX.

We believe this is helpful behavior for also limiting our AGX module power consumption. Is there any way to place a similar limit on the entire AGX module? If not can we place a limit on each entire INA3221?

We would like the same behavior as the NX where the entire NX module is being limited to a specific number of milliamps. From the DTB entry below, it seems like this might only be available per-power rail?

/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-powermon-p3668.dtsi

        i2c@c250000 {
                ina3221x_40: ina3221x@40 {
                        compatible = "ti,ina3221x";
                        reg = <0x40>;
                        ti,trigger-config = <0x7003>;
                        ti,continuous-config = <0x7c07>;
                        ti,enable-forced-continuous;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        #io-channel-cells = <1>;
                        channel@0 {
                                reg = <0x0>;
                                ti,rail-name = "VDD_IN";
                                ti,shunt-resistor-mohm = <5>;
                                **ti,current-warning-limit-ma = <3000>;**
                                ti,current-critical-limit-ma = <3600>;
                        };
                        channel@1 {
                                reg = <0x1>;
                                ti,rail-name = "VDD_CPU_GPU_CV";
                                ti,shunt-resistor-mohm = <5>;
                        };
                        channel@2 {
                                reg = <0x2>;
                                ti,rail-name = "VDD_SOC";
                                ti,shunt-resistor-mohm = <5>;
                        };
                };
        };
};

Please use the power estimator here to write a custom nvpmodel for your usecase.

The Tutorials | NVIDIA Developer , here’s training video, Getting started with new PowerEstimator tool for Jetson for your reference.

Please use the power estimator here to write a custom nvpmodel for your usecase.

Power Estimator tool is for Xavier NX. This issue is for AGX.

Next, it’s my understanding that the AGX nvpmodel does NOT LIMIT the power usage to a specific number of watts. Instead, the clock speeds of the system processors (CPU, GPU, ISP, etc) are limited to known frequencies and are predicted to stay below a specific amount of power consumption. In other words, this estimate could be wrong if 1 aspect of the system consumed a large amount of power. This matches our observations of AGX operation.

In our case, it’s very detrimental to be “wrong about power consumption”. We would like to have a mechanism which prevents usage of “too much power” at any given moment. We have teams of software developers who may, despite their best intentions, exceed the amount of power consumption allotted to their area – and we have a custom thermal system which has limits that we need to stay below. The thermal limits are based on the current ambient temperature.

Original question:

Is the DTB current-warning-limit restricted per power-rail? Or per INA3221?

Thank you,

andy

Do you mean you want to put such limitation to this DTB of AGX for each power-rail?

Why not use customized nvpmodel conf as the limitation?

Why not use customized nvpmodel conf as the limitation?

Again, it’s my understanding that nvpmodel configuration does not provide a limit for power consumption. nvpmodel provides a limit on SoC IP-Block frequencies which can, in several instances, indirectly limit power.

It’s simpler for us to apply an upper limit for power consumption so that we absolutely don’t exceed that limit. In our case, it’s very important that the power limit not be exceeded or overheat conditions may occur.

Do you mean you want to put such limitation to this DTB of AGX for each power-rail?

We would not prefer each power rail. We would prefer sum of all power rails like the NX VDD_IN.

andy

The Xavier does not support measuring overall module power using single power monitor (INA3221) channel, so the Over Current limit (OC) has to be set either for individuals rails (CPU, GPU, SOC, CV, VDDRQ, SYS5V) or sum of three rails (CPU+GPU+SOC and CV+VDDRQ+SYS5V). The individual rails support OC limits for average & instantaneous current, where as sum current OC limit is supported only for average current.

INA sysfs node for individual channel instantaneous current limit:
/sys/devices/c240000.i2c/i2c-1/1-0040/iio:device0/crit_current_limit_N
/sys/devices/c240000.i2c/i2c-1/1-0041/iio:device1/crit_current_limit_N
where N is a channel number, ie 0/1/2

INA sysfs node for individual channel average current limit:
/sys/devices/c240000.i2c/i2c-1/1-0040/iio:device0/warn_current_limit_N
/sys/devices/c240000.i2c/i2c-1/1-0041/iio:device1/warn_current_limit_N
where N is a channel number, ie 0/1/2

INA sysfs node for channel sum average current limit:
/sys/devices/c240000.i2c/i2c-1/1-0040/iio:device0/crit_current_limit_sum
/sys/devices/c240000.i2c/i2c-1/1-0041/iio:device1/crit_current_limit_sum

Thank you, that’s very helpful.