[Re: Regression: 4.5-rc1 (bisect: hugetlb: make mm and fs code explicitly 
non-modular vs CONFIG_TIMER_STATS)] On 28/01/2016 (Thu 16:27) Mike Kravetz 
wrote:

> On 01/28/2016 02:59 PM, Paul Gortmaker wrote:
> > [Re: Regression: 4.5-rc1 (bisect: hugetlb: make mm and fs code explicitly 
> > non-modular vs CONFIG_TIMER_STATS)] On 28/01/2016 (Thu 14:18) Mike Kravetz 
> > wrote:
> > 
> >> On 01/28/2016 07:05 AM, Mike Kravetz wrote:

[...]

> >> on s390 numa nodes are initialized at device_initcall in the appropriately
> >> named routine numa_init_late().  hugetlb_init must be done after numa
> >> initialization.  So, I suggest we just move the hugetlb initialization
> >> back to device_initcall.  What do you think Paul?  Patch below.
> > 
> > We could, but that ignores the fact that the original priorities worked
> > by chance and not by design, as my commit log indicates.  Instead, I'd
> > like to know why S390 does core NUMA operations as late as
> > device_initcall.   Setting up NUMA nodes should be arch_initcall or
> > subsys_initcall, or earlier --- it should not be device_initcall as if
> > it was some leaf node UART driver or ethernet driver.  There is no
> > endpoint "device" in NUMA in this context.
> 
> This is in linux-next after 4.5-rc1
> 
> commit 2d0f76a6ca1f2cdcffca7ce130f67ec61caa0999
> Author: Michael Holzheu <holz...@linux.vnet.ibm.com>
> Date:   Wed Jan 20 19:22:16 2016 +0100
> 
>     s390/numa: move numa_init_late() from device to arch_initcall

Nice.  Too bad one of us didn't see this a few hours earlier, but oh
well.  At least it backs up what I said above.

Thanks,
Paul.
--

> 
>     Commit 3e89e1c5ea ("hugetlb: make mm and fs code explicitly
> non-modular")
>     moves hugetlb_init() from module_init to subsys_initcall.
> 
>     The hugetlb_init()->hugetlb_register_node() code accesses
> "node->dev.kobj"
>     which is initialized in numa_init_late().
> 
>     Since numa_init_late() is a device_initcall which is called *after*
>     subsys_initcall the above mentioned patch breaks NUMA on s390.
> 
>     So fix this and move numa_init_late() to arch_initcall.
> 
>     Fixes: 3e89e1c5ea ("hugetlb: make mm and fs code explicitly
> non-modular")
>     Reviewed-by: Heiko Carstens <heiko.carst...@de.ibm.com>
>     Signed-off-by: Michael Holzheu <holz...@linux.vnet.ibm.com>
>     Signed-off-by: Martin Schwidefsky <schwidef...@de.ibm.com>
> 
> -- 
> Mike Kravetz

Reply via email to