lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 23 Aug 2017 16:47:41 +0200
From:   Geert Uytterhoeven <geert@...ux-m68k.org>
To:     Tejun Heo <tj@...nel.org>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Lai Jiangshan <jiangshanlai@...il.com>,
        Michael Bringmann <mwb@...ux.vnet.ibm.com>
Subject: Re: [GIT PULL] workqueue fixes for v4.13-rc3

Hi Tejun,

On Wed, Aug 23, 2017 at 4:24 PM, Tejun Heo <tj@...nel.org> wrote:
> On Wed, Aug 23, 2017 at 10:10:54AM +0200, Geert Uytterhoeven wrote:
>> > +               pr_warn_once("WARNING: workqueue empty cpumask: node=%d cpu_going_down=%d cpumask=%*pb online=%*pb possible=%*pb\n",
>> > +                            node, cpu_going_down, cpumask_pr_args(attrs->cpumask),
>> > +                            cpumask_pr_args(cpumask_of_node(node)),
>> > +                            cpumask_pr_args(wq_numa_possible_cpumask[node]));
>>
>> WARNING: workqueue empty cpumask: node=1 cpu_going_down=-1 cpumask=1
>> online=1 possible=0
>
> So, somehow cpu0 seems to be associated with node 1 instead of 0.  It
> seems highly unlikely but does the system actually have multiple NUMA
> nodes?
>
>> > @@ -5526,6 +5528,9 @@ static void __init wq_numa_init(void)
>> >
>> >         wq_numa_possible_cpumask = tbl;
>> >         wq_numa_enabled = true;
>> > +
>> > +       (node)
>> > +               printk("XXX wq node[%d] %*pb\n", node, cpumask_pr_args(wq_numa_possible_cpumask[node]));
>>
>> XXX wq node[0] 1
>> XXX wq node[1] 0
>> XXX wq node[2] 0
>> XXX wq node[3] 0
>> XXX wq node[4] 0
>> XXX wq node[5] 0
>> XXX wq node[6] 0
>> XXX wq node[7] 0
>
> No idea why num_possible_cpus() is 8 on a non-SMP system but the
> problem is that, during boot while wq_numa_init() was running, cpu0
> reported that it's associated with node 0, but later it reports that
> it's associated node 1.  It looks like NUMA setup is screwed up.

Some code is mixing up multiple memory nodes with multiple cpu nodes.
M68k uses DISCONTIGMEM, but  not NUMA (no SMP):

    config NEED_MULTIPLE_NODES
        def_bool y
        depends on DISCONTIGMEM || NUMA

The (virtual) Atari has 2 memory nodes:
  - node0: start 0x00000000 size 0x00e00000
  - node1: start 0x01000000 size 0x10000000
Both are tied to the same (single) CPU node, of course.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org

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

Powered by blists - more mailing lists