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
next prev 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.