Display Thread Priority

This page provides information regarding the thread priority values that are used by the threads in NvDisplay and NvDisplaySerializer.

NvDisplay and NvDisplaySerializer have various mechanisms for safety. To ensure the timely completion of tasks, both NvDisplay and NvDisplaySerializer use higher than default thread priorities.

There are two sets of guidelines for thread priority ranges. NvDisplay and NvDisplaySerializer must follow these guidelines when assigning thread priorities:
  1. DRIVE OS Thread Priority Guidelines provides a generic range of thread priorities that can be used by resource managers. Priority ranges are dependent on the purpose of the thread. For NvDisplay and Serializer, these are the relevant thread priority ranges:
    1. Safety related interrupt thread priority allowed range: [26 - 30]

    2. Safety related fixed thread priority: allowed range: [21 - 25]

  2. RVC Thread Priority Guidelines to set high thread priority values during INIT_DONE state. RVC application guidelines require the priority to be 35 when in INIT_DONE state.

To satisfy these two requirements, NvDisplay and Serializer driver set the priority of all the threads to 35 before reaching INIT_DONE. Once you get the OPERATIONAL callback, the priorities of the threads are dropped corresponding to DRIVE OS guidelines.

Currently, NvDisplay has four (4) threads and NvDisplaySerializer has two (2) threads. The following table documents the thread priority values used.

NvDisplay
Thread Name Priority in INIT_DONE Priority in OPERATIONAL
Display HW interrupt handling thread 35 27
RM Deferred work thread used for SV deferred work 35 23
Timer event thread used for FF detection 35 30
NVDVMS thread for state management 35 23
NvDisplaySerializer
Thread Name Priority in INIT_DONE Priority in OPERATIONAL
GRIO ERRB thread 35 30
NVDVMS thread for state management 35 23