From: Michal Hocko <mhocko@kernel.org>
To: Pasha Tatashin <pasha.tatashin@oracle.com>
Cc: linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
linux-s390@vger.kernel.org, borntraeger@de.ibm.com,
heiko.carstens@de.ibm.com, davem@davemloft.net
Subject: Re: [v3 0/9] parallelized "struct page" zeroing
Date: Wed, 10 May 2017 09:24:19 +0200 [thread overview]
Message-ID: <20170510072419.GC31466@dhcp22.suse.cz> (raw)
In-Reply-To: <fae4a92c-e78c-32cb-606a-8e5087acb13f@oracle.com>
On Tue 09-05-17 14:54:50, Pasha Tatashin wrote:
[...]
> >The implementation just looks too large to what I would expect. E.g. do
> >we really need to add zero argument to the large part of the memblock
> >API? Wouldn't it be easier to simply export memblock_virt_alloc_internal
> >(or its tiny wrapper memblock_virt_alloc_core) and move the zeroing
> >outside to its 2 callers? A completely untested scratched version at the
> >end of the email.
>
> I am OK, with this change. But, I do not really see a difference between:
>
> memblock_virt_alloc_raw()
> and
> memblock_virt_alloc_core()
>
> In both cases we use memblock_virt_alloc_internal(), but the only difference
> is that in my case we tell memblock_virt_alloc_internal() to zero the pages
> if needed, and in your case the other two callers are zeroing it. I like
> moving memblock_dbg() inside memblock_virt_alloc_internal()
Well, I didn't object to this particular part. I was mostly concerned
about
http://lkml.kernel.org/r/1494003796-748672-4-git-send-email-pasha.tatashin@oracle.com
and the "zero" argument for other functions. I guess we can do without
that. I _think_ that we should simply _always_ initialize the page at the
__init_single_page time rather than during the allocation. That would
require dropping __GFP_ZERO for non-memblock allocations. Or do you
think we could regress for single threaded initialization?
> >Also it seems that this is not 100% correct either as it only cares
> >about VMEMMAP while DEFERRED_STRUCT_PAGE_INIT might be enabled also for
> >SPARSEMEM. This would suggest that we would zero out pages twice,
> >right?
>
> Thank you, I will check this combination before sending out the next patch.
>
> >
> >A similar concern would go to the memory hotplug patch which will
> >fall back to the slab/page allocator IIRC. On the other hand
> >__init_single_page is shared with the hotplug code so again we would
> >initialize 2 times.
>
> Correct, when memory it hotplugged, to gain the benefit of this fix, and
> also not to regress by actually double zeroing "struct pages" we should not
> zero it out. However, I do not really have means to test it.
It should be pretty easy to test with kvm, but I can help with testing
on the real HW as well.
Thanks!
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2017-05-10 7:24 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-05 17:03 [v3 0/9] parallelized "struct page" zeroing Pavel Tatashin
2017-05-05 17:03 ` [v3 1/9] sparc64: simplify vmemmap_populate Pavel Tatashin
2017-05-05 17:03 ` [v3 2/9] mm: defining memblock_virt_alloc_try_nid_raw Pavel Tatashin
2017-05-05 17:03 ` [v3 3/9] mm: add "zero" argument to vmemmap allocators Pavel Tatashin
2017-05-13 19:17 ` kbuild test robot
2017-05-05 17:03 ` [v3 4/9] mm: do not zero vmemmap_buf Pavel Tatashin
2017-05-05 17:03 ` [v3 5/9] mm: zero struct pages during initialization Pavel Tatashin
2017-05-05 17:03 ` [v3 6/9] sparc64: teach sparc not to zero struct pages memory Pavel Tatashin
2017-05-05 17:03 ` [v3 7/9] x86: teach x86 " Pavel Tatashin
2017-05-05 17:03 ` [v3 8/9] powerpc: teach platforms " Pavel Tatashin
2017-05-05 17:03 ` [v3 9/9] s390: " Pavel Tatashin
2017-05-08 11:36 ` Heiko Carstens
2017-05-15 18:24 ` Pasha Tatashin
2017-05-15 23:17 ` Heiko Carstens
2017-05-16 0:33 ` Pasha Tatashin
2017-05-09 18:12 ` [v3 0/9] parallelized "struct page" zeroing Michal Hocko
2017-05-09 18:54 ` Pasha Tatashin
2017-05-10 7:24 ` Michal Hocko [this message]
2017-05-10 13:42 ` Pasha Tatashin
2017-05-10 14:57 ` Michal Hocko
2017-05-10 15:01 ` Pasha Tatashin
2017-05-10 15:20 ` David Miller
2017-05-11 20:47 ` Pasha Tatashin
2017-05-11 20:59 ` Pasha Tatashin
2017-05-12 16:57 ` David Miller
2017-05-12 17:24 ` Pasha Tatashin
2017-05-12 17:37 ` David Miller
2017-05-16 23:50 ` Benjamin Herrenschmidt
2017-05-12 16:56 ` David Miller
2017-05-10 15:19 ` David Miller
2017-05-10 17:17 ` Matthew Wilcox
2017-05-10 18:00 ` David Miller
2017-05-10 21:11 ` Matthew Wilcox
2017-05-11 8:05 ` Michal Hocko
2017-05-11 14:35 ` David Miller
2017-05-15 18:12 ` Pasha Tatashin
2017-05-15 19:38 ` Michal Hocko
2017-05-15 20:44 ` Pasha Tatashin
2017-05-16 8:36 ` Michal Hocko
2017-05-26 16:45 ` Pasha Tatashin
2017-05-29 11:53 ` Michal Hocko
2017-05-30 17:16 ` Pasha Tatashin
2017-05-31 16:31 ` Michal Hocko
2017-05-31 16:51 ` David Miller
2017-06-01 3:35 ` Pasha Tatashin
2017-06-01 8:46 ` Michal Hocko
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=20170510072419.GC31466@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=borntraeger@de.ibm.com \
--cc=davem@davemloft.net \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=pasha.tatashin@oracle.com \
--cc=sparclinux@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).