Created attachment 696258 [details] Use IPIs to trigger pushing rt tasks instead of pulling them I sent this patch to mainline for review, and although Thomas pretty much NAK'd it, we do not have any other option that can deal with boxes with a large number of CPUs. Mike Galbraith tested this patch and it showed a HUGE impact on his box. His max latencies on his box went from 600 to 1000 microseconds down to just 50 (most were under 20)! That makes it pretty darn convincing to apply the patch. The description of the patch is attached to the patch itself. I will add here that the patch creates a sched_feature called RT_PUSH_IPI. By default, if the box has 16 or less CPUs, it continues to do the pull_rt_task. A box with 17 or more CPUs (and any box with > 16 CPUS like those with 16.5 CPUS), will default with the IPI to push RT tasks. You can force to either use the feature or not via the debugfs directory: to enable: echo RT_PUSH_IPI > /sys/kernel/debug/sched_features to disable: echo NO_RT_PUSH_IPI > /sys/kernel/debug/sched_features
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2013-0622.html