Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1489096

Re: [PATCH] arm64: Call numa_store_cpu_info() earlier.

From Catalin Marinas <catalin.marinas@arm.com>
Newsgroups linux.kernel
Subject Re: [PATCH] arm64: Call numa_store_cpu_info() earlier.
Date 2016-09-22 19:10 +0200
Message-ID <skfFv-Hc-13@gated-at.bofh.it> (permalink)
References <sjyhb-6IL-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Sep 20, 2016 at 11:46:35AM -0700, David Daney wrote:
> From: David Daney <david.daney@cavium.com>
> 
> The wq_numa_init() function makes a private CPU to node map by calling
> cpu_to_node() early in the boot process, before the non-boot CPUs are
> brought online.  Since the default implementation of cpu_to_node()
> returns zero for CPUs that have never been brought online, the
> workqueue system's view is that *all* CPUs are on node zero.
> 
> When the unbound workqueue for a non-zero node is created, the
> tsk_cpus_allowed() for the worker threads is the empty set because
> there are, in the view of the workqueue system, no CPUs on non-zero
> nodes.  The code in try_to_wake_up() using this empty cpumask ends up
> using the cpumask empty set value of NR_CPUS as an index into the
> per-CPU area pointer array, and gets garbage as it is one past the end
> of the array.  This results in:

Queued for 4.8. Thanks.

-- 
Catalin

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH] arm64: Call numa_store_cpu_info() earlier. David Daney <ddaney.cavm@gmail.com> - 2016-09-20 20:50 +0200
  Re: [PATCH] arm64: Call numa_store_cpu_info() earlier. Robert Richter <rric@kernel.org> - 2016-09-21 09:00 +0200
  Re: [PATCH] arm64: Call numa_store_cpu_info() earlier. Yisheng Xie <xieyisheng1@huawei.com> - 2016-09-22 05:10 +0200
  Re: [PATCH] arm64: Call numa_store_cpu_info() earlier. Catalin Marinas <catalin.marinas@arm.com> - 2016-09-22 19:10 +0200

csiph-web