From: david mosberger <dmosberger@gmail.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH 2.6.13-rc1 07/10] IOCHK interface for I/O error handling/detecting
Date: Fri, 08 Jul 2005 19:23:54 +0000 [thread overview]
Message-ID: <ed5aea4305070812231e9dcf50@mail.gmail.com> (raw)
In-Reply-To: <42CB6961.2060508@jp.fujitsu.com>
On 7/8/05, Luck, Tony <tony.luck@intel.com> wrote:
> Cc: list was trimmed because I'm only discussing ia64 issue here.
>
> >I'm not familiar with assembly code for intel compiler. So David,
> >could you write another macro of ia64_mca_barrier() or a proper
> >subroutine instead?
>
> Each of the uses of ia64_mca_barrier() is like this ...
>
> val = *(... *)addr; /* read from I/O address */
>
> ia64_mca_barrier(val); /* consume result */
>
> return val;
>
> Now it appears to me that if you just define ia64_mca_barrier()
> as an empty function (in C):
>
> void
> ia64_mca_barrier(unsigned long v)
> {
> }
>
> then this will force a consumption of the value (since the compiler
> will have to copy it from whatever register it was in to an "out"
> register to pass to the function). Without the call, then the
> compiler will probably allocate "r8" for "val" ... so there will
> be no consumption.
I don't think this is really safe. There is nothing to stop the
compiler from loading the value directly into the out register, which
would again defer consumption of the value (especially if the caller
of ia64_mca_barrier() got inlined itself.
In my opinion, it would be safest to write this in assembly, so we're
_guaranteed_ it will do what we want, no matter how smart the
compilers get. Something along the lines of:
ia64_mca_barrier:
mov r8 = r32
br.ret.sptk.many rp
should do (and I agree that this function needs a comment).
--david
next prev parent reply other threads:[~2005-07-08 19:23 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-06 4:53 [PATCH 2.6.13-rc1 01/10] IOCHK interface for I/O error handling/detecting Hidetoshi Seto
2005-07-06 4:58 ` [PATCH 2.6.13-rc1 02/10] " Hidetoshi Seto
2005-07-06 5:04 ` [PATCH 2.6.13-rc1 03/10] " Hidetoshi Seto
2005-07-12 19:51 ` Linas Vepstas
2005-07-13 0:18 ` [PATCH 2.6.13-rc1 03/10] IOCHK interface for I/O error Benjamin Herrenschmidt
2005-07-13 22:42 ` [PATCH 2.6.13-rc1 03/10] IOCHK interface for I/O error handling/detecting Linas Vepstas
2005-07-13 1:33 ` Hidetoshi Seto
2005-07-06 5:07 ` [PATCH 2.6.13-rc1 04/10] " Hidetoshi Seto
2005-07-06 5:11 ` [PATCH 2.6.13-rc1 05/10] " Hidetoshi Seto
2005-07-18 19:21 ` Grant Grundler
2005-07-06 5:14 ` [PATCH 2.6.13-rc1 06/10] " Hidetoshi Seto
2005-07-06 5:17 ` [PATCH 2.6.13-rc1 07/10] " Hidetoshi Seto
2005-07-08 4:37 ` david mosberger
2005-07-08 5:44 ` Hidetoshi Seto
2005-07-08 19:05 ` Luck, Tony
2005-07-08 19:23 ` david mosberger [this message]
2005-07-08 20:17 ` Luck, Tony
2005-07-11 17:51 ` Jesse Barnes
2005-07-11 18:21 ` Luck, Tony
2005-07-11 19:21 ` david mosberger
2005-07-12 21:14 ` Linas Vepstas
2005-07-13 1:59 ` Hidetoshi Seto
2005-07-06 5:18 ` [PATCH 2.6.13-rc1 08/10] " Hidetoshi Seto
2005-07-12 22:22 ` Linas Vepstas
2005-07-13 1:36 ` Hidetoshi Seto
2005-07-06 5:20 ` [PATCH 2.6.13-rc1 09/10] " Hidetoshi Seto
2005-07-06 5:21 ` [PATCH 2.6.13-rc1 10/10] " Hidetoshi Seto
2005-07-06 6:26 ` [PATCH 2.6.13-rc1 01/10] IOCHK interface for I/O error
2005-07-06 10:15 ` [PATCH 2.6.13-rc1 01/10] IOCHK interface for I/O error handling/detecting Hidetoshi Seto
2005-07-07 18:41 ` Greg KH
2005-07-07 22:27 ` [PATCH 2.6.13-rc1 01/10] IOCHK interface for I/O error Benjamin Herrenschmidt
2005-07-08 12:22 ` [PATCH 2.6.13-rc1 01/10] IOCHK interface for I/O error handling/detecting Hidetoshi Seto
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=ed5aea4305070812231e9dcf50@mail.gmail.com \
--to=dmosberger@gmail.com \
--cc=linux-ia64@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