Sleep and wakeup latency

Hi,
We are currently evaluating if the Jetson Orin Nano could execute the following cycle in about 1-2 seconds:

  1. enter sleep mode (or any other power saving mode that will reduce the power consumption of the system)
  2. wake up on timer trigger (could be triggered from an external MCU if the RTC is not accurate / fast enough)
  3. do processing on the GPU (about 100ms)
  4. setup timer trigger

The system needs to do some heavy calculation on the GPU for about 100ms once in 1-2 seconds and also needs to be as power efficient as we can while waiting for the next cycle.

I have tried to test on the development board the SC7 mode (entered using “echo mem > /sys/power/state”) with RTC0 wakeup but it took about 3-4 seconds to wake up and it seems it also took about 3 seconds to enter this state (the RTC0 which as I understand operates in 1Hz frequency but values smaller then 4 would not wake the device, I assume cause it wasn’t in sleep mode yet so the signal did not wake it up).

When I tried to test “freeze” mode (as called by the Linux docs) using this command - “echo freeze > /sys/power/state” the system would crashed on wakeup.

Does the SC7 mode (enter and exit) supposed to be this slow or I’m doing something wrong / not configuring it correctly for fast entry and exit?

Also does the freeze mode supposed to work and I’m not configuring it correctly?

Anyway we are currently aiming to be as power efficient while executing this loop so any way to reduce power consumption while waiting for the next cycle would also help us.

Thanks in advance!

Hi alon.m,

Are you using the devkit or custom board for Orin Nano?
What’s the Jetpack version in use?

It seems the expected timing to me. You can check what it is doing from serial console log.

Do you have the requirement to sleep/wakeup frequently in your use case?

Have you tried to configure the custom power mode configuration for better power efficiency?

Hi, thanks for the quick reply!

We are targeting a custom board but the testing is done on an Orin Nano devkit using the current latest Jetpack version (6.2).

Yes, the best case is 1 second for the whole wakeup → process → sleep cycle and 2 seconds is the max viable timing for the cycle.

Not yet but we aim to be as power efficient as we can so any tips / resources on the topic will also really help.

Thank you!

Sure, you can verify on Orin Nano devkit first.

It seems you are looking for suspend to idle, it would not help to save too much power.
I would suggest creating custom power configuration for better power efficiency.

You mean to toggle between custom configuration for efficiency and configuration for processing? or creating a single configuration that will run all the time with lower power consumption?

We would like to save as much as we can so we would like to use this method too, I’m just not sure what this state is called in Linux can you provide the Linux term for it?
Also I had hard time using the “freeze” mode (which sounds like the suspend to idle mode):

Thanks!

This.

Yes, using freeze should be the similar meaning as suspend-to-idle.

I can reproduce similar issue as yours on the devkit.
Are you working with headless mode?
If so, could you try to configure the following line in device tree to check if it could help.

        dce@d800000 {
                compatible = "nvidia,tegra234-dce";
                reg = <0x00 0xd800000 0x00 0x800000>;
                interrupts = <0x00 0x178 0x04 0x00 0x179 0x04>;
                interrupt-names = "wdt-remote\0dce-sm0";
                iommus = <0x04 0x08>;
-               status = "okay";
+               status = "disabled";
        };

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.