Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2013 20:55:04 -0700
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        Ed Schouten <ed@80386.nl>, "freebsd-mips@FreeBSD.org" <freebsd-mips@freebsd.org>, FreeBSD-arch <freebsd-arch@freebsd.org>
Subject:   Re: Kernelspace C11 atomics for MIPS
Message-ID:  <CACVs6=_X5vOfR%2BQOgvz6P-j3jUoNoK9hCFvz80fGRL3-PgBf5g@mail.gmail.com>
In-Reply-To: <CAJ-Vmo=vNbT9majPCZ8ugzPsNzh46DTD4mMDX-cuxx9Og91ptw@mail.gmail.com>
References:  <CAJOYFBD502MYbkVR2hnVDTYWOvOUr15=OPyjotNvv%2BZ09vQ1OQ@mail.gmail.com> <D02AF210-5129-40AB-9481-3F0A44575E98@bsdimp.com> <CAJ-Vmo=vNbT9majPCZ8ugzPsNzh46DTD4mMDX-cuxx9Og91ptw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 3, 2013 at 7:45 PM, Adrian Chadd <adrian@freebsd.org> wrote:

> Speaking of this; any idea why the SYNC operators have 8 NOPs following
> them?
>
> I noticed that when going through disassemblies of various mips24k .o
> files.
>

To drain the pipeline on certain deficient (and mostly older) CPUs by way
of guesswork and a little vague magic.  Most CPUs we support, I would
guess, do not need this, and it continues to exist solely for hysterical
reasons.

I've certainly gotten rid of them and some other cargo cult synchronization
on Octeon for testing and had it survive under considerable load, and
occasionally with some slight speedups (for some more commonly-used or
slower things than Just a Bunch Of NOPs.)

The trouble is that proving they aren't necessary requires being rigorous
and careful in understanding documentation and errata, and FUD about their
possible necessity is somewhat-intimidating.  It's not an easy kind of
corruption/unreliability/etc., to prove the lack of empirically.

Juli.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACVs6=_X5vOfR%2BQOgvz6P-j3jUoNoK9hCFvz80fGRL3-PgBf5g>