Tengo un sistema Linux en el que hemos usado cgroups para crear dos cpusets exclusivos de cpu, A y B, y donde hemos migrado todos los hilos de usuario y todos los hilos de kernel no enlazados a un cgroup conectado a cpuset A. Las cosas que se ejecutan en cpuset A tienen políticas de planificador variables y prioridades variables, y hay muchos más subprocesos ejecutándose en cpuset A que núcleos en cpuset A.
También hay un pequeño número de procesos muy activos asociados a cpuset B, donde el número total de subprocesos de usuario en estos procesos nunca es mayor que el número de núcleos disponibles exclusivamente en cpuset B. El objetivo es proteger estas tareas importantes que se ejecutan en cpuset B de otra actividad en la máquina y para minimizar la latencia de procesamiento.
En tal configuración, ¿la política / prioridad de programación de los hilos de usuario que se ejecutan en cpuset B tiene algún efecto observable? Dicho de otra manera: ¿cambiar las políticas de programación de los subprocesos B cpuset de SCHED_OTHER por defecto a SCHED_FIFO o SCHED_RR tendría alguna consecuencia, buena o mala?
Parece que la respuesta debería ser 'no', ya que el planificador debería poder asignar a cada hilo que se ejecuta en cpuset B su propio núcleo dedicado, por lo que no habría nada que priorizar o programar, por lo que la política y la prioridad relativa de B Los hilos cpuset no importarían. Por otro lado, hay que preocuparse por los hilos del núcleo vinculados y los aspectos del 'dominio del planificador', y probablemente otras cosas que no he considerado.
¿Las políticas y prioridades de programación de subprocesos que se ejecutan en un cpuset exclusivo sobreaprovisionado importan en algún sentido práctico?