From: Benjamin Herrenschmidt <benh@au1.ibm.com>
To: David Miller <davem@davemloft.net>, pasha.tatashin@oracle.com
Cc: linux-s390@vger.kernel.org, borntraeger@de.ibm.com,
heiko.carstens@de.ibm.com, linux-kernel@vger.kernel.org,
mhocko@kernel.org, linux-mm@kvack.org,
sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [v3 0/9] parallelized "struct page" zeroing
Date: Wed, 17 May 2017 09:50:57 +1000 [thread overview]
Message-ID: <1494978657.21847.74.camel@au1.ibm.com> (raw)
In-Reply-To: <20170512.133742.2144484253675877904.davem@davemloft.net>
On Fri, 2017-05-12 at 13:37 -0400, David Miller wrote:
> > Right now it is larger, but what I suggested is to add a new optimized
> > routine just for this case, which would do STBI for 64-bytes but
> > without membar (do membar at the end of memmap_init_zone() and
> > deferred_init_memmap()
> >
> > #define struct_page_clear(page) \
> > __asm__ __volatile__( \
> > "stxa %%g0, [%0]%2\n" \
> > "stxa %%xg0, [%0 + %1]%2\n" \
> > : /* No output */ \
> > : "r" (page), "r" (0x20), "i"(ASI_BLK_INIT_QUAD_LDD_P))
> >
> > And insert it into __init_single_page() instead of memset()
> >
> > The final result is 4.01s/T which is even faster compared to current
> > 4.97s/T
>
> Ok, indeed, that would work.
On ppc64, that might not. We have a dcbz instruction that clears an
entire cache line at once. That's what we use for memset's and page
clearing. However, 64 bytes is half a cache line on modern processors
so we can't use it with that semantic and would have to fallback to the
slower stores.
Cheers,
Ben.
next prev parent reply other threads:[~2017-05-16 23:52 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 [this message]
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=1494978657.21847.74.camel@au1.ibm.com \
--to=benh@au1.ibm.com \
--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=mhocko@kernel.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).