From: Segher Boessenkool <segher@kernel.crashing.org>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>,
Paul Mackerras <paulus@samba.org>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
mikey@neuling.org
Subject: Re: powerpc: Add an inline function to update HID0
Date: Tue, 4 Aug 2015 21:30:57 -0500 [thread overview]
Message-ID: <20150805023057.GT11083@gate.crashing.org> (raw)
In-Reply-To: <20150804100858.1F272140306@ozlabs.org>
On Tue, Aug 04, 2015 at 08:08:58PM +1000, Michael Ellerman wrote:
> > +static inline void update_hid0(unsigned long hid0)
> > +{
> > + /*
> > + * The HID0 update should at the very least be preceded by a
> > + * a SYNC instruction followed by an ISYNC instruction
> > + */
> > + mb();
> > + mtspr(SPRN_HID0, hid0);
> > + isync();
>
> That's going to turn into three separate inline asm blocks, which is maybe a
> bit unfortunate. Have you checked the generated code is what we want, ie. just
> sync, mtspr, isync ?
The "mb()" is not such a great name anyway: you don't want a memory
barrier, you want an actual sync instruction ("sync 0", "hwsync",
whatever the currently preferred spelling is).
The function name should also say this is for POWER8 (the required
sequences are different for some other processors; and some others
might not even _have_ a HID0, or not at 1008). power8_write_hid0
or such?
For writing it as one asm, why not just
asm volatile("sync ; mtspr %0,%1 ; isync" : : "i"(SPRN_HID0), "r"(hid0));
instead of the stringify stuff?
Segher
next prev parent reply other threads:[~2015-08-05 2:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-04 8:30 [PATCH] powerpc: Add an inline function to update HID0 Gautham R. Shenoy
2015-08-04 10:08 ` Michael Ellerman
2015-08-04 10:57 ` Gautham R Shenoy
2015-08-04 11:06 ` [PATCH v2] " Gautham R. Shenoy
2015-08-04 14:06 ` Madhavan Srinivasan
2015-08-05 2:00 ` Michael Ellerman
2015-08-05 2:30 ` Segher Boessenkool [this message]
2015-08-05 6:54 ` Gautham R Shenoy
2015-08-05 7:08 ` [PATCH v3] powerpc: Add an inline function to update POWER8 HID0 Gautham R. Shenoy
2015-08-14 4:54 ` Sam Bobroff
2015-08-14 8:59 ` Shreyas B Prabhu
2015-08-17 8:03 ` [v3] " Michael Ellerman
2015-08-09 2:29 ` powerpc: Add an inline function to update HID0 Benjamin Herrenschmidt
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=20150805023057.GT11083@gate.crashing.org \
--to=segher@kernel.crashing.org \
--cc=ego@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mikey@neuling.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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.