# hint\_low\_cpuutil

Source: [https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_hint_low_cpu_util.html](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_hint_low_cpu_util.html)

Informs the system about a specific low
    CPU utilization thread that does not require the high-performance core. For example, threads
    doing background work, and not requiring high performance cores even if the load can go
    sporadically high. It does not set the frequency of the core where the thread is scheduled
    runs, but instead, the choice is left to the scheduler-DCVS directly or indirectly via the
    boost\_cpu API.

hint_low_cpuutil()Copy to clipboard

Caution:

This API needs to be used carefully as any thread that is marked as low
      util will not get to run on a big core. Any thread hints, such as high\_cpuutil, low\_cpuutil,
      and thread\_pipeline, remains for the lifetime of the thread, unless it is explicitly released
      by the app using release\_thread\_hints API or through the auto-release mechanism when the app
      goes to the background or gets killed.

Note: hint\_low\_cpuutil / hint\_high\_cpuutil is different to thread affinity. With thread CPU affinity, 
        developers need to identify the cluster configuration and core where the thread can run. In the 
        case of hint\_high\_cpuutil, thread can run on any core on Gold/Prime whereas with CPU affinity, 
        when core is busy with other threads, the high util thread may wait in queue and affinity can be 
        counterproductive. Similar behavior is seen for hint\_low\_cpuutil.

## Parameters

| Parameters | API type | Data type | Description |
| --- | --- | --- | --- |
| tid | Java | long | TID if the thread that needs to be set for low CPU<br>                utilization |
| tid | Native | uint32 | TID if the thread that needs to be set for low CPU<br>                utilization |
| ret\_val | Native | int8\_t& | On success this is the actual return value from the API. |
|  |  |  |  |

## Returns

| Return | API type | Data type | Description |
| --- | --- | --- | --- |
| response | Java | int | <ul class="ul"><br>                  <li class="li">0: Success</li><br><br>                  <li class="li">-1: Failed to apply hint</li><br><br>                  <li class="li">-2: Failed to establish session, check that <a href="https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_set_pkg.html">set_pkg</a> was called before this API</li><br><br>                </ul> |
| response | Native | qesdk\_transaction\_status | See [QESDK transaction status for Native APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_qesdk_class.html) for usage details. Use qesdk\_transaction\_status to confirm API call invocation. If successful, use the `ret` value for the actual API return value object. |
|  |  |  |  |

**Parent Topic:** [QAPE subsystem APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/qape_apis.html)

Last Published: Nov 14, 2024

[Previous Topic
hint\_high\_cpuutil](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/qape_hint_high_cpu_util.md) [Next Topic
hint\_thread\_pipeline](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/qape_hint_thread_pipeline.md)