All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Waiman Long <waiman.long@hpe.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, x86@kernel.org,
	linux-kernel@vger.kernel.org,
	Scott J Norton <scott.norton@hp.com>,
	Douglas Hatch <doug.hatch@hp.com>
Subject: Re: [RFC PATCH 1/3] lib/list_batch: A simple list insertion/deletion batching facility
Date: Thu, 28 Jan 2016 19:35:26 +0100	[thread overview]
Message-ID: <20160128183526.GX6356@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <56AA45B4.20401@hpe.com>

On Thu, Jan 28, 2016 at 11:45:40AM -0500, Waiman Long wrote:
> Using xchg_release() looks OK to me. As this feature is enabled on x86 only
> for this patch, we can make the change and whoever enabling it for other
> architectures that have a real release function will have to test it.

Ah, I was more thinking about:

	/*
	 * We rely on the memory barrier implied by xchg() below to
	 * ensure the node initialization is complete before its
	 * published.
	 */

And then use xchg() like you already do.


> >READ/WRITE_ONCE() provide _no_ order what so ever. And the issue here is
> >that we must not do any other stores to nptr after the state_done.
> >
> 
> I thought if those macros are accessing the same cacheline, the compiler
> won't change the ordering and the hardware will take care of the proper
> ordering. Anyway, I do intended to change to use smp_store_release() for
> safety.

The macros use a volatile cast, and that ensures the compiler must emit
the store and must emit it as a single store. I'm not 100% sure on the
rules of the compiler reordering volatile accesses, they are not a
compiler barrier.

  reply	other threads:[~2016-01-28 18:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 16:03 [RFC PATCH 0/3] lib/list_batch: A simple list insertion/deletion batching facility Waiman Long
2016-01-26 16:03 ` [RFC PATCH 1/3] " Waiman Long
2016-01-27 16:34   ` Peter Zijlstra
2016-01-27 20:22     ` Waiman Long
2016-01-27 20:54       ` Peter Zijlstra
2016-01-28 16:45         ` Waiman Long
2016-01-28 18:35           ` Peter Zijlstra [this message]
2016-01-26 16:03 ` [RFC PATCH 2/3] lib/list_batch, x86: Enable list insertion/deletion batching in x86-64 Waiman Long
2016-01-26 21:44   ` Andi Kleen
2016-01-27 16:38     ` Peter Zijlstra
2016-01-27 20:34     ` Waiman Long
2016-01-26 16:03 ` [RFC PATCH 3/3] vfs: Enable list batching for the superblock's inode list Waiman Long

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=20160128183526.GX6356@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=doug.hatch@hp.com \
    --cc=hpa@zytor.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=scott.norton@hp.com \
    --cc=tglx@linutronix.de \
    --cc=viro@zeniv.linux.org.uk \
    --cc=waiman.long@hpe.com \
    --cc=x86@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 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.