Skip to content

rt-app: Add custom slice support via dl-runtime

Kernels starting with 6.12 have a new feature which allows requesting a custom slice length on a task while using one of SCHED_OTHER, SCHED_BATCH or SCHED_EXT. The interface was created by reusing the existing sched_attr::sched_runtime parameter.

This PR adds support in LISA's rt-app API for setting custom slice on SCHED_OTHER via the prop_dl_runtime parameter, in support of PR https://github.com/scheduler-tools/rt-app/pull/134.

Generating the test workload (debug log level needed for verbose output):

rtapp_profile = {
    f'other': RTAPhase(prop_wload=SleepWload(2), prop_policy='SCHED_OTHER', prop_priority=-19, prop_dl_runtime=0.1)
              + RTAPhase(prop_wload=SleepWload(2), prop_policy='SCHED_OTHER')
              + RTAPhase(prop_wload=SleepWload(2), prop_policy='SCHED_DEADLINE', prop_dl_runtime=0.3)
              + RTAPhase(prop_wload=SleepWload(2), prop_policy='SCHED_OTHER'),
    f'dl': RTAPhase(prop_wload=SleepWload(2), prop_policy='SCHED_DEADLINE', prop_dl_runtime=0.2)
}

wload = RTA.from_profile(target, rtapp_profile, name='test_workload', log_level='debug')

Attached are the resulting rt-app JSON config and stdout logs from the run.

stdout.log

test_workload.json

Merge request reports

Loading