From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Mike Kravetz <mike.kravetz@oracle.com>,
Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Hillf Danton <hillf.zj@alibaba-inc.com>,
"'Andrew Morton'" <akpm@linux-foundation.org>,
"'Nadia Yvette Chambers'" <nyc@holomorphy.com>,
"'Alexander Viro'" <viro@zeniv.linux.org.uk>,
"'Naoya Horiguchi'" <n-horiguchi@ah.jp.nec.com>,
"'David Rientjes'" <rientjes@google.com>,
"'Davidlohr Bueso'" <dave@stgolabs.net>,
"'Linux Kernel Mailing List'" <linux-kernel@vger.kernel.org>
Subject: Re: Regression: 4.5-rc1 (bisect: hugetlb: make mm and fs code explicitly non-modular vs CONFIG_TIMER_STATS)
Date: Fri, 29 Jan 2016 09:23:30 +0100 [thread overview]
Message-ID: <56AB2182.4010902@de.ibm.com> (raw)
In-Reply-To: <56AAB1F9.7090400@oracle.com>
On 01/29/2016 01:27 AM, 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 01/28/2016 06:37 AM, 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 10:48) Christian Borntraeger wrote:
>>>>>
>>>>>> On 01/28/2016 10:40 AM, Hillf Danton wrote:
>>>>>>>>
>>>>>>>> Paul,
>>>>>>>>
>>>>>>>> the commit 3e89e1c5ea842 ("hugetlb: make mm and fs code explicitly non-modular")
>>>>>>>> triggers belows warning/oops, if CONFIG_TIMER_STATS is set.
>>>>>>>>
>>>>>>>> Looking at the patch the only "real" change is the init_call,
>>>>>>>> and indeed
>>>>>>>> --- a/mm/hugetlb.c
>>>>>>>> +++ b/mm/hugetlb.c
>>>>>>>> @@ -2653,7 +2653,7 @@ static int __init hugetlb_init(void)
>>>>>>>> mutex_init(&hugetlb_fault_mutex_table[i]);
>>>>>>>> return 0;
>>>>>>>> }
>>>>>>>> -subsys_initcall(hugetlb_init);
>>>>>>>> +device_initcall(hugetlb_init);
>>>>>>>>
>>>>>>>> /* Should be called on processing a hugepagesz=... option */
>>>>>>>> void __init hugetlb_add_hstate(unsigned int order)
>>>>>>>>
>>>>>>>> makes the problem go away.
>>>>>>>
>>>>>>> Helps more if a patch is delivered.
>>>>>>
>>>>>> The problem is that the original change was intentional. So I do not not
>>>>>> what the right fix is.
>>>>>
>>>>> Thanks for the report ; let me see if I can work out what TIMER_STATS
>>>>> is doing to cause this sometime today.
>>>>>
>>>>
>>>> Hmmm? CONFIG_TIMER_STATS is set in my config and I am not seeing the
>>>> issue. Not sure, but it looks like Christian is building/running on
>>>> s390. This 'might' be a contributing factor.
>>>
>>> I do not see how CONFIG_TIMER_STATS contributes to this issue. However,
>>
>> I looked at all the TIMER_STATS ifdef blocks and was also thinking the
>> same thing. If it did toggle the problem then it was a red herring.
>> My test config had this set and I retested x86-64 today with it set.
>>
>>> 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 <holzheu@linux.vnet.ibm.com>
> Date: Wed Jan 20 19:22:16 2016 +0100
>
> s390/numa: move numa_init_late() from device to arch_initcall
>
> 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.carstens@de.ibm.com>
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
>
Ah, ok. thanks. Yes that makes a lot of sense. Thanks for pointing me
to this patch.
next prev parent reply other threads:[~2016-01-29 8:23 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-28 9:16 Regression: 4.5-rc1 (bisect: hugetlb: make mm and fs code explicitly non-modular vs CONFIG_TIMER_STATS) Christian Borntraeger
2016-01-28 9:40 ` Hillf Danton
2016-01-28 9:48 ` Christian Borntraeger
2016-01-28 14:37 ` Paul Gortmaker
2016-01-28 15:05 ` Mike Kravetz
2016-01-28 22:18 ` Mike Kravetz
2016-01-28 22:59 ` Paul Gortmaker
2016-01-29 0:27 ` Mike Kravetz
2016-01-29 8:23 ` Christian Borntraeger [this message]
2016-01-29 14:24 ` Paul Gortmaker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56AB2182.4010902@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=dave@stgolabs.net \
--cc=hillf.zj@alibaba-inc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mike.kravetz@oracle.com \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=nyc@holomorphy.com \
--cc=paul.gortmaker@windriver.com \
--cc=rientjes@google.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.