public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
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

  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