[PATCH V2 0/2] rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration

From: Daniel Bristot de Oliveira
Date: Mon Jun 26 2017 - 11:12:22 EST


This is the continuation of the:
[RFC] rt: Some fixes for migrate_disable/enable

However, migrate_disable/enable was reworked during the
4.11-rt window, so it turns out that 2 of 3 problems were fixed.
Good!

But there is still one problem, which is the dl/rt_nr_migratory inc/dec.

The problem is reproducible with the following command [in a 4 CPU box]:

# chrt -f 1 taskset -c 3 cat /dev/full | taskset -c 0-2 grep 'batman'

By applying only the patch 1/2, it is possible to see the problem with
the following command:

# cat /proc/sched_debug | grep rt_nr_migratory
.rt_nr_migratory : 18446744073709542849
.rt_nr_migratory : 18446744073709538566
.rt_nr_migratory : 18446744073709548257
.rt_nr_migratory : 0

The detailed description of the bug, and the fix, is in the log
of the patch 2/2.

Changes from V1:
- Print .dl/rt_nr_migratory only if CONFIG_SMP is set (Ingo Molnar)
- Use helper functions to reduce duplicated code (Ingo Molnar)

Changes from RFC:
- The problems addressed in the patches:
x rt: Update nr_cpus_allowed if the affinity of a task changes while its
migration is disabled
x rt: Checks if task needs migration when re-enabling migration

were fixed, so these patches are not needed anymore, while patch:

x rt: Increase/decrease the nr of migratory tasks when
enabling/disabling migration

is still needed, so it was reworked for the new implementation.

- The patch showing the rt/dl_nr_migratory was added.

Daniel Bristot de Oliveira (2):
sched/debug: Inform the number of rt/dl task that can migrate
rt: Increase/decrease the nr of migratory tasks when
enabling/disabling migration

kernel/sched/core.c | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
kernel/sched/debug.c | 17 +++++++++++++++--
2 files changed, 59 insertions(+), 7 deletions(-)

--
2.9.4