linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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: Thu, 1 Jun 2017 10:46:09 +0200	[thread overview]
Message-ID: <20170601084609.GF32677@dhcp22.suse.cz> (raw)
In-Reply-To: <2fa60098-d9be-f57d-cb86-3b55cfe915b7@oracle.com>

On Wed 31-05-17 23:35:48, Pasha Tatashin wrote:
> >OK, so why cannot we make zero_struct_page 8x 8B stores, other arches
> >would do memset. You said it would be slower but would that be
> >measurable? I am sorry to be so persistent here but I would be really
> >happier if this didn't depend on the deferred initialization. If this is
> >absolutely a no-go then I can live with that of course.
> 
> Hi Michal,
> 
> This is actually a very good idea. I just did some measurements, and it
> looks like performance is very good.
> 
> Here is data from SPARC-M7 with 3312G memory with single thread performance:
> 
> Current:
> memset() in memblock allocator takes: 8.83s
> __init_single_page() take: 8.63s
> 
> Option 1:
> memset() in __init_single_page() takes: 61.09s (as we discussed because of
> membar overhead, memset should really be optimized to do STBI only when size
> is 1 page or bigger).
> 
> Option 2:
> 
> 8 stores (stx) in __init_single_page(): 8.525s!
> 
> So, even for single thread performance we can double the initialization
> speed of "struct page" on SPARC by removing memset() from memblock, and
> using 8 stx in __init_single_page(). It appears we never miss L1 in
> __init_single_page() after the initial 8 stx.

OK, that is good to hear and it actually matches my understanding that
writes to a single cacheline should add an overhead.

Thanks!
-- 
Michal Hocko
SUSE Labs

      reply	other threads:[~2017-06-01  8:46 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
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 [this message]

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=20170601084609.GF32677@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).