Thread (46 messages) 46 messages, 7 authors, 2017-06-01

Re: [v3 0/9] parallelized "struct page" zeroing

From: Matthew Wilcox <willy@infradead.org>
Date: 2017-05-10 21:11:37
Also in: linux-mm, linux-s390, lkml, sparclinux

On Wed, May 10, 2017 at 02:00:26PM -0400, David Miller wrote:
From: Matthew Wilcox <willy@infradead.org>
Date: Wed, 10 May 2017 10:17:03 -0700
quoted
On Wed, May 10, 2017 at 11:19:43AM -0400, David Miller wrote:
quoted
I guess it might be clearer if you understand what the block
initializing stores do on sparc64.  There are no memory accesses at
all.

The cpu just zeros out the cache line, that's it.

No L3 cache line is allocated.  So this "wipe everything" behavior
will not happen in the L3.
There's either something wrong with your explanation or my reading
skills :-)

"There are no memory accesses"
"No L3 cache line is allocated"

You can have one or the other ... either the CPU sends a cacheline-sized
write of zeroes to memory without allocating an L3 cache line (maybe
using the store buffer?), or the CPU allocates an L3 cache line and sets
its contents to zeroes, probably putting it in the last way of the set
so it's the first thing to be evicted if not touched.
There is no conflict in what I said.

Only an L2 cache line is allocated and cleared.  L3 is left alone.
I thought SPARC had inclusive caches.  So allocating an L2 cacheline
would necessitate allocating an L3 cacheline.  Or is this an exception
to the normal order of things?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help