All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: sparclinux@vger.kernel.org
Subject: Re: Linux Sparc FPU register corruption
Date: Wed, 10 Jun 2015 07:50:06 +0000	[thread overview]
Message-ID: <20150610075006.GD10311@aurel32.net> (raw)
In-Reply-To: <49B61131-8512-493B-BF49-7B2362383CCF@google.com>

On 2015-06-09 12:02, David Miller wrote:
> From: James Y Knight <jyknight@google.com>
> Date: Tue, 9 Jun 2015 08:13:58 -0400
> 
> > Um, but my test isn't testing what is being stored to memory at
> > all. It is storing to memory and **never loading from the memory
> > after**. Why would writing FROM fp registers TO memory corrupt the
> > *registers* due to a missing memory barrier?
> 
> The memory barrier is necessary for two reasons, only one of them is
> to handle the asynchronousness of the memory operations.
> 
> The other reason is that there are strict rules for accessing the FPU
> register file around block loads and stores.
> 
> Therefore if you don't do the proper memory barriers you can get
> corrupted FPU register as well as memory contents.
> 
> And complicating things even more, what you can get away with is
> different on every single cpu variant.  That's why I really wish

So it means the userland code doesn't run the same on the various
CPU. How are we supposed to do with static binaries?

> debian didn't disable multiarch as that makes the code use the
> UltraSPARC-I/II/III memcpy, which might not be %100 kosher on
> Niagara-T1 and later.

The UltraSPARC-I/II/III memcpy code might have issues, but it clearly
works a lot better than the Niagara-T1 code on a Niagara-T1 machine.
Disabling multiarch support improves a lot the stability on these
machines.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

  parent reply	other threads:[~2015-06-10  7:50 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-09  4:11 Linux Sparc FPU register corruption James Y Knight
2015-06-09  7:34 ` David Miller
2015-06-09  7:46 ` David Miller
2015-06-09 12:13 ` James Y Knight
2015-06-09 18:16 ` David Miller
2015-06-09 19:02 ` David Miller
2015-06-09 20:45 ` David Miller
2015-06-09 21:54 ` James Y Knight
2015-06-09 23:37 ` David Miller
2015-06-10  7:50 ` Aurelien Jarno [this message]
2015-06-10  9:18 ` David Miller
2015-06-10  9:33 ` Aurelien Jarno
2015-06-10 14:40 ` James Y Knight
2015-06-10 18:02 ` David Miller
2015-06-10 18:07 ` David Miller
2015-06-10 20:22 ` David Miller
2015-06-18 16:51 ` David Mattli
2015-06-19 10:50 ` David Miller
2015-08-05  1:06 ` David Miller
2015-08-05  5:07 ` Sam Ravnborg

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=20150610075006.GD10311@aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=sparclinux@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 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.