к примеру запускаю бенчмарк latency с приоритетом SCHED_OTHER вижу что средняя задержка 51us:
$ cyclictest -N -n -t 4 --policy=other -l 10000
# /dev/cpu_dma_latency set to 0us
policy: other/other: loadavg: 0.26 0.24 0.58 1/403 9917
T: 0 ( 9884) P: 0 I:1000 C: 10000 Min: 9346 Act: 50931 Avg: 51096 Max: 295918
T: 1 ( 9885) P: 0 I:1500 C: 6669 Min: 3103 Act: 51031 Avg: 51264 Max: 273922
T: 2 ( 9886) P: 0 I:2000 C: 5002 Min: 5635 Act: 51020 Avg: 51055 Max: 157874
T: 3 ( 9887) P: 0 I:2500 C: 4001 Min: 2565 Act: 51159 Avg: 47168 Max: 367442
если запускать с приоритетом SCHED_FIFO задержка 1us.
пробовал по разному собирать ядро меняя всячески конфиги PREEMT/HZ 100-1000/NOHZ, ситуация не меняется ни в какую сторону. сижу на gentoo, но пробовал archlinux, таже latency 51us. менял значения в файлах /proc/sys/kernel/sched_latency_ns sched_min_granularity_ns, тоже без изменений.
Откуда это значение в 51us? если у ядра есть какой то time slice задающий минимальное время работы процесса, то почему результат измерения latency не размазан равномерно по этому периоду?