Re: [GIT PULL] workqueue fixes for v4.13-rc3

From: Geert Uytterhoeven
Date: Mon Aug 07 2017 - 08:18:58 EST


Hi Tejun,

On Mon, Jul 31, 2017 at 5:38 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> Two notable fixes.

> * Workqueue assumes that CPU <-> NUMA node mapping remains static.
> This is a general assumption - we don't have any synchronization
> mechanism around CPU <-> node mapping. Unfortunately, powerpc may
> change the mapping dynamically leading to crashes. Michael added a
> workaround so that we at least don't crash while powerpc hotplug
> code gets updated.

> Michael Bringmann (1):
> workqueue: Work around edge cases for calc of pool's cpumask

> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -3577,6 +3577,13 @@ static bool wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node,
>
> /* yeap, return possible CPUs in @node that @attrs wants */
> cpumask_and(cpumask, attrs->cpumask, wq_numa_possible_cpumask[node]);
> +
> + if (cpumask_empty(cpumask)) {
> + pr_warn_once("WARNING: workqueue cpumask: online intersect > "
> + "possible intersect\n");
> + return false;
> + }
> +

This triggers on m68k, which doesn't have SMP.
Haven't tried it yet on any other system due to holidays.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds