Hello! There is a merge conflict when merging in the latest 4.14 stable release into the current 4.14 rt stable release. Attached is the merge conflict that is seen. We appreciate it if the merge conflict resolution can come from the RT stable branch. Dan -- ------------------ Dan Murphy
diff --cc kernel/sched/core.c index d6c2afc8c629,31615d1ae44c..000000000000 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@@ -1016,16 -978,8 +1043,12 @@@ struct migration_arg static struct rq *__migrate_task(struct rq *rq, struct rq_flags *rf, struct task_struct *p, int dest_cpu) { - if (p->flags & PF_KTHREAD) { - if (unlikely(!cpu_online(dest_cpu))) - return rq; - } else { - if (unlikely(!cpu_active(dest_cpu))) - return rq; - } - /* Affinity changed (again). */ ++<<<<<<< HEAD + if (!cpumask_test_cpu(dest_cpu, p->cpus_ptr)) ++======= + if (!is_cpu_allowed(p, dest_cpu)) ++>>>>>>> 5553933d40157e41ed2ed6390e2ebff4f548f96e return rq; update_rq_clock(rq); @@@ -1595,11 -1507,10 +1618,17 @@@ static int select_fallback_rq(int cpu, for (;;) { /* Any allowed, online CPU? */ ++<<<<<<< HEAD + for_each_cpu(dest_cpu, p->cpus_ptr) { + if (!(p->flags & PF_KTHREAD) && !cpu_active(dest_cpu)) + continue; + if (!cpu_online(dest_cpu)) ++======= + for_each_cpu(dest_cpu, &p->cpus_allowed) { + if (!is_cpu_allowed(p, dest_cpu)) ++>>>>>>> 5553933d40157e41ed2ed6390e2ebff4f548f96e continue; + goto out; } @@@ -1662,8 -1573,7 +1691,12 @@@ int select_task_rq(struct task_struct * * [ this allows ->select_task() to simply return task_cpu(p) and * not worry about this generic constraint ] */ ++<<<<<<< HEAD + if (unlikely(!cpumask_test_cpu(cpu, p->cpus_ptr) || + !cpu_online(cpu))) ++======= + if (unlikely(!is_cpu_allowed(p, cpu))) ++>>>>>>> 5553933d40157e41ed2ed6390e2ebff4f548f96e cpu = select_fallback_rq(task_cpu(p), p); return cpu; diff --cc kernel/trace/trace.c index d67ac5c2bc66,e268750bd4ad..000000000000 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@@ -3389,17 -3374,15 +3389,23 @@@ static void print_func_help_header_irq( tgid ? tgid_space : space); seq_printf(m, "# %s / _----=> need-resched\n", tgid ? tgid_space : space); - seq_printf(m, "# %s| / _---=> hardirq/softirq\n", + seq_printf(m, "# %s| / _----=> need-resched_lazy\n", + tgid ? tgid_space : space); + seq_printf(m, "# %s|| / _---=> hardirq/softirq\n", tgid ? tgid_space : space); - seq_printf(m, "# %s|| / _--=> preempt-depth\n", + seq_printf(m, "# %s||| / _--=> preempt-depth\n", tgid ? tgid_space : space); - seq_printf(m, "# %s||| / delay\n", + seq_printf(m, "# %s|||| / delay\n", tgid ? tgid_space : space); ++<<<<<<< HEAD + seq_printf(m, "# TASK-PID CPU#%s||||| TIMESTAMP FUNCTION\n", + tgid ? " TGID " : space); + seq_printf(m, "# | | | %s||||| | |\n", ++======= + seq_printf(m, "# TASK-PID %sCPU# |||| TIMESTAMP FUNCTION\n", + tgid ? " TGID " : space); + seq_printf(m, "# | | %s | |||| | |\n", ++>>>>>>> 5553933d40157e41ed2ed6390e2ebff4f548f96e tgid ? " | " : space); }