The NetBSD Project

CVS log for src/common/lib/libc/arch/i386/atomic/atomic.S

[BACK] Up to [cvs.NetBSD.org] / src / common / lib / libc / arch / i386 / atomic

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.36 / (download) - annotate - [select for diffs], Sat Jul 30 14:11:00 2022 UTC (20 months, 2 weeks ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, HEAD
Changes since 1.35: +13 -16 lines
Diff to previous 1.35 (colored) to selected 1.14 (colored)

x86: Eliminate mfence hotpatch for membar_sync.

The more-compatible  LOCK ADD $0,-N(%rsp)  turns out to be cheaper
than MFENCE anyway.  Let's save some space and maintenance and rip
out the hotpatching for it.

Revision 1.35 / (download) - annotate - [select for diffs], Sat Apr 9 23:32:51 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.34: +15 -9 lines
Diff to previous 1.34 (colored) to selected 1.14 (colored)

Introduce membar_acquire/release.  Deprecate membar_enter/exit.

The names membar_enter/exit were unclear, and the documentation of
membar_enter has disagreed with the implementations on sparc,
powerpc, and even x86(!) for the entire time it has been in NetBSD.

The terms `acquire' and `release' are ubiquitous in the literature
today, and have been adopted in the C and C++ standards to mean
load-before-load/store and load/store-before-store, respectively,
which are exactly the orderings required by acquiring and releasing a
mutex, as well as other useful applications like decrementing a
reference count and then freeing the underlying object if it went to
zero.

Originally I proposed changing one word in the documentation for
membar_enter to make it load-before-load/store instead of
store-before-load/store, i.e., to make it an acquire barrier.  I
proposed this on the grounds that

(a) all implementations guarantee load-before-load/store,
(b) some implementations fail to guarantee store-before-load/store,
and
(c) all uses in-tree assume load-before-load/store.

I verified parts (a) and (b) (except, for (a), powerpc didn't even
guarantee load-before-load/store -- isync isn't necessarily enough;
need lwsync in general -- but it _almost_ did, and it certainly didn't
guarantee store-before-load/store).

Part (c) might not be correct, however: under the mistaken assumption
that atomic-r/m/w then membar-w/rw is equivalent to atomic-r/m/w then
membar-r/rw, I only audited the cases of membar_enter that _aren't_
immediately after an atomic-r/m/w.  All of those cases assume
load-before-load/store.  But my assumption was wrong -- there are
cases of atomic-r/m/w then membar-w/rw that would be broken by
changing to atomic-r/m/w then membar-r/rw:

https://mail-index.netbsd.org/tech-kern/2022/03/29/msg028044.html

Furthermore, the name membar_enter has been adopted in other places
like OpenBSD where it actually does follow the documentation and
guarantee store-before-load/store, even if that order is not useful.
So the name membar_enter currently lives in a bad place where it
means either of two things -- r/rw or w/rw.

With this change, we deprecate membar_enter/exit, introduce
membar_acquire/release as better names for the useful pair (r/rw and
rw/w), and make sure the implementation of membar_enter guarantees
both what was documented _and_ what was implemented, making it an
alias for membar_sync.

While here, rework all of the membar_* definitions and aliases.  The
new logic follows a rule to make it easier to audit:

	membar_X is defined as an alias for membar_Y iff membar_X is
	guaranteed by membar_Y.

The `no stronger than' relation is (the transitive closure of):

- membar_consumer (r/r) is guaranteed by membar_acquire (r/rw)
- membar_producer (w/w) is guaranteed by membar_release (rw/w)
- membar_acquire (r/rw) is guaranteed by membar_sync (rw/rw)
- membar_release (rw/w) is guaranteed by membar_sync (rw/rw)

And, for the deprecated membars:

- membar_enter (whether r/rw, w/rw, or rw/rw) is guaranteed by
  membar_sync (rw/rw)
- membar_exit (rw/w) is guaranteed by membar_release (rw/w)

(membar_exit is identical to membar_release, but the name is
deprecated.)

Finally, while here, annotate some of the instructions with their
semantics.  For powerpc, leave an essay with citations on the
unfortunate but -- as far as I can tell -- necessary decision to use
lwsync, not isync, for membar_acquire and membar_consumer.

Also add membar(3) and atomic(3) man page links.

Revision 1.34 / (download) - annotate - [select for diffs], Sat Apr 9 22:53:36 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.33: +3 -3 lines
Diff to previous 1.33 (colored) to selected 1.14 (colored)

i386/membar_ops: Upgrade membar_enter from R/RW to RW/RW.

This will be deprecated soon but let's avoid leaving rakes to trip on
with it arising from disagreement over the documentation (W/RW) and
implementation and usage (R/RW).

Revision 1.33 / (download) - annotate - [select for diffs], Sat Apr 9 12:07:29 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.32: +7 -1 lines
Diff to previous 1.32 (colored) to selected 1.14 (colored)

x86: Add a note on membar_sync and mfence.

Revision 1.32 / (download) - annotate - [select for diffs], Sat Apr 9 12:07:17 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.31: +6 -3 lines
Diff to previous 1.31 (colored) to selected 1.14 (colored)

x86: Omit needless store in membar_producer/exit.

On x86, every store is a store-release, so there is no need for any
barrier.  But this wasn't a barrier anyway; it was just a store,
which was redundant with the store of the return address to the stack
implied by CALL even if issuing a store made a difference.

Revision 1.31 / (download) - annotate - [select for diffs], Sat Apr 9 12:07:00 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.30: +6 -13 lines
Diff to previous 1.30 (colored) to selected 1.14 (colored)

x86: Every load is a load-acquire, so membar_consumer is a noop.

lfence is only needed for MD logic, such as operations on I/O memory
rather than normal cacheable memory, or special instructions like
RDTSC -- never for MI synchronization between threads/CPUs.  No need
for hot-patching to do lfence here.

(The x86_lfence function might reasonably be patched on i386 to do
lfence for MD logic, but it isn't now and this doesn't change that.)

Revision 1.30 / (download) - annotate - [select for diffs], Wed Apr 6 22:47:56 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored) to selected 1.14 (colored)

Nix trailing whitespace in files of membars, atomics, and lock stubs.

Will be touching many of these files soon for functional changes.

No functional change intended.

Revision 1.29 / (download) - annotate - [select for diffs], Fri May 1 08:32:50 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.28: +11 -13 lines
Diff to previous 1.28 (colored) to selected 1.14 (colored)

Use the hotpatch framework when patching _atomic_cas_64.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Apr 26 14:49:17 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.27: +29 -21 lines
Diff to previous 1.27 (colored) to selected 1.14 (colored)

Use the hotpatch framework for LFENCE/MFENCE.

Revision 1.27 / (download) - annotate - [select for diffs], Sun Apr 26 13:59:44 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.26: +17 -17 lines
Diff to previous 1.26 (colored) to selected 1.14 (colored)

Remove unused argument in macro.

Revision 1.26 / (download) - annotate - [select for diffs], Sun Apr 26 13:54:02 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.25: +1 -2 lines
Diff to previous 1.25 (colored) to selected 1.14 (colored)

Remove unused.

Revision 1.25 / (download) - annotate - [select for diffs], Sun Apr 26 13:37:14 2020 UTC (3 years, 11 months ago) by maxv
Branch: MAIN
Changes since 1.24: +3 -8 lines
Diff to previous 1.24 (colored) to selected 1.14 (colored)

Drop the hardcoded array, use the hotpatch section.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Apr 25 15:26:16 2020 UTC (3 years, 11 months ago) by bouyer
Branch: MAIN
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored) to selected 1.14 (colored)

Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor

Revision 1.22.24.3 / (download) - annotate - [select for diffs], Tue Apr 21 19:37:43 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.22.24.2: +1 -1 lines
Diff to previous 1.22.24.2 (colored) to branchpoint 1.22 (colored) next main 1.23 (colored) to selected 1.14 (colored)

Ooops, restore accidently removed files from merge mishap

Revision 1.22.24.2, Tue Apr 21 18:41:16 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.22.24.1: +1 -1 lines
FILE REMOVED

Sync with HEAD

Revision 1.23.8.1 / (download) - annotate - [select for diffs], Tue Apr 14 16:51:13 2020 UTC (4 years ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored) next main 1.24 (colored) to selected 1.14 (colored)

Force _atomic_cas_cx8 only for XENPV; x86_patch works fine for (PV)HVM

Revision 1.22.24.1 / (download) - annotate - [select for diffs], Mon Jun 10 21:41:05 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.22: +6 -1 lines
Diff to previous 1.22 (colored) to selected 1.14 (colored)

Sync with HEAD

Revision 1.22.22.1 / (download) - annotate - [select for diffs], Sat Jul 28 04:32:56 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.22: +6 -1 lines
Diff to previous 1.22 (colored) next main 1.23 (colored) to selected 1.14 (colored)

Sync with HEAD

Revision 1.23 / (download) - annotate - [select for diffs], Wed Jul 18 13:39:36 2018 UTC (5 years, 9 months ago) by bouyer
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, ad-namecache-base3, ad-namecache-base, ad-namecache
Branch point for: bouyer-xenpvh
Changes since 1.22: +6 -1 lines
Diff to previous 1.22 (colored) to selected 1.14 (colored)

On Xen, always alias _atomic_cas_64 to _atomic_cas_cx8. AFAIK Xen doesn't
support CPUs that don't support cx8.
i386 XENPAE_DOMU boots again.

Revision 1.19.12.1 / (download) - annotate - [select for diffs], Tue Aug 19 23:45:13 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.19: +38 -17 lines
Diff to previous 1.19 (colored) next main 1.20 (colored) to selected 1.14 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.20.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:47:05 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.20: +37 -17 lines
Diff to previous 1.20 (colored) next main 1.21 (colored) to selected 1.14 (colored)

Rebase.

Revision 1.22 / (download) - annotate - [select for diffs], Fri May 23 03:17:31 2014 UTC (9 years, 11 months ago) by uebayasi
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-maxphys-20171202, tls-earlyentropy-base, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-base, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.21: +21 -1 lines
Diff to previous 1.21 (colored) to selected 1.14 (colored)

Put missing END() markers to set ELF symbol size.

Revision 1.19.6.1 / (download) - annotate - [select for diffs], Thu May 22 11:26:28 2014 UTC (9 years, 11 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.19: +18 -17 lines
Diff to previous 1.19 (colored) next main 1.20 (colored) to selected 1.14 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.21 / (download) - annotate - [select for diffs], Tue Apr 22 19:27:17 2014 UTC (9 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9
Changes since 1.20: +17 -17 lines
Diff to previous 1.20 (colored) to selected 1.14 (colored)

The kernel uses 64 bit atomic ops.

Revision 1.20 / (download) - annotate - [select for diffs], Tue Feb 18 10:16:55 2014 UTC (10 years, 2 months ago) by martin
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.19: +2 -1 lines
Diff to previous 1.19 (colored) to selected 1.14 (colored)

Provide most missing __sync_*64 primitives for i386

Revision 1.19 / (download) - annotate - [select for diffs], Wed Jan 12 23:12:10 2011 UTC (13 years, 3 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-pagecache-tag8, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, khorben-n900, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored) to selected 1.14 (colored)

Allow use of traditional CPP to be set on a per platform base in sys.mk.
Honour this for dependency processing in bsd.dep.mk.  Switch i386 and
amd64 assembly to use ISO C90 preprocessor concat and drop the
-traditional-cpp on this platform.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Nov 26 07:40:34 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, rmind-uvmplock-base, matt-premerge-20091211, matt-mips64-premerge-20101231
Changes since 1.17: +7 -3 lines
Diff to previous 1.17 (colored) to selected 1.14 (colored)

Use strong alias within the kernel namespace regardless of if we're
dealing with a hard or soft kernel (kernel linker doesn't support
weak symbols).

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:23:11 2009 UTC (14 years, 11 months ago) by jym
Branch: jym-xensuspend
Changes since 1.16: +5 -1 lines
Diff to previous 1.16 (colored) next main 1.17 (colored) to selected 1.14 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.13.4.2 / (download) - annotate - [select for diffs], Fri Apr 3 17:42:36 2009 UTC (15 years ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b
Changes since 1.13.4.1: +5 -1 lines
Diff to previous 1.13.4.1 (colored) to branchpoint 1.13 (colored) next main 1.14 (colored)

Pull up following revision(s) (requested by enami in ticket #645):
	common/lib/libc/arch/i386/atomic/atomic.S: revision 1.17
	sys/arch/amd64/amd64/spl.S: revision 1.21
	sys/arch/x86/x86/patch.c: revision 1.17
So that profile kernel runs again,
- Adjust the size of functions used to patch.
- Fix the jump offset of mcount call when patching functions.
Approved by Andrew Doran.

Revision 1.17 / (download) - annotate - [select for diffs], Thu Apr 2 00:19:02 2009 UTC (15 years ago) by enami
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base
Changes since 1.16: +5 -1 lines
Diff to previous 1.16 (colored) to selected 1.14 (colored)

So that profile kernel runs again,
- Adjust the size of functions used to patch.
- Fix the jump offset of mcount call when patching functions.

Approved by Andrew Doran.

Revision 1.13.4.1 / (download) - annotate - [select for diffs], Mon Feb 2 03:06:12 2009 UTC (15 years, 2 months ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-0-RC3, netbsd-5-0-RC2
Changes since 1.13: +11 -6 lines
Diff to previous 1.13 (colored) to selected 1.14 (colored)

Pull up following revision(s) (requested by ad in ticket #343):
	common/lib/libc/arch/i386/atomic/atomic.S: revision 1.14
	sys/arch/x86/include/cpufunc.h: revision 1.9
	sys/arch/x86/x86/identcpu.c: revision 1.12
	sys/arch/x86/x86/cpu.c: revision 1.60
	sys/arch/x86/x86/patch.c: revision 1.15
PR kern/40213 my i386 machine can't boot because of tsc
- Patch in atomic_cas_64() twice. The first patch is early and makes it
  the MP-atomic version available if we have cmpxchg8b. The second patch
  strips the lock prefix if ncpu==1.
- Fix the i486 atomic_cas_64() to not unconditionally enable interrupts.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Jan 12 02:53:29 2009 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Branch point for: jym-xensuspend
Changes since 1.15: +2 -5 lines
Diff to previous 1.15 (colored) to selected 1.14 (colored)

include sys/param.h for _HARDKERNEL instead of homegrown def.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Jan 4 18:21:38 2009 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.14: +8 -4 lines
Diff to previous 1.14 (colored)

Opt for libc versions in case of _KERNEL && !_RUMPKERNEL.
(kernel version uses sti/cli and is not PIC)

Revision 1.14 / (download) - annotate - [selected], Fri Dec 19 11:21:24 2008 UTC (15 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.13: +11 -6 lines
Diff to previous 1.13 (colored)

PR kern/40213 my i386 machine can't boot because of tsc

- Patch in atomic_cas_64() twice. The first patch is early and makes it
  the MP-atomic version available if we have cmpxchg8b. The second patch
  strips the lock prefix if ncpu==1.

- Fix the i486 atomic_cas_64() to not unconditionally enable interrupts.

Revision 1.12.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:26:45 2008 UTC (15 years, 10 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.12: +22 -22 lines
Diff to previous 1.12 (colored) next main 1.13 (colored) to selected 1.14 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.9.4.2 / (download) - annotate - [select for diffs], Wed Jun 4 02:02:57 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.9.4.1: +22 -22 lines
Diff to previous 1.9.4.1 (colored) to branchpoint 1.9 (colored) next main 1.10 (colored) to selected 1.14 (colored)

sync with head

Revision 1.13 / (download) - annotate - [select for diffs], Sun May 25 15:56:11 2008 UTC (15 years, 10 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, netbsd-5-base, netbsd-5-0-RC1, matt-mips64-base2
Branch point for: netbsd-5
Changes since 1.12: +22 -22 lines
Diff to previous 1.12 (colored) to selected 1.14 (colored)

enable profiling of assembly functions.

Revision 1.9.4.1 / (download) - annotate - [select for diffs], Sun May 18 12:28:45 2008 UTC (15 years, 11 months ago) by yamt
Branch: yamt-pf42
Changes since 1.9: +10 -17 lines
Diff to previous 1.9 (colored) to selected 1.14 (colored)

sync with head.

Revision 1.12 / (download) - annotate - [select for diffs], Sat May 3 05:43:05 2008 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored) to selected 1.14 (colored)

whitespace.

Revision 1.11 / (download) - annotate - [select for diffs], Sat May 3 05:41:40 2008 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
Changes since 1.10: +10 -10 lines
Diff to previous 1.10 (colored) to selected 1.14 (colored)

rename END to ENDLABEL.  i'll use END for other purpose.  ok by Andrew Doran.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Apr 28 20:22:52 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
Changes since 1.9: +1 -8 lines
Diff to previous 1.9 (colored) to selected 1.14 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.7.2.3 / (download) - annotate - [select for diffs], Sun Mar 23 00:12:41 2008 UTC (16 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.7.2.2: +24 -15 lines
Diff to previous 1.7.2.2 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored) to selected 1.14 (colored)

sync with HEAD

Revision 1.9 / (download) - annotate - [select for diffs], Sun Feb 10 13:25:46 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base
Branch point for: yamt-pf42
Changes since 1.8: +19 -1 lines
Diff to previous 1.8 (colored) to selected 1.14 (colored)

Add atomic_cas_foo_ni().

Revision 1.8 / (download) - annotate - [select for diffs], Sat Feb 9 13:42:21 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.7: +6 -15 lines
Diff to previous 1.7 (colored) to selected 1.14 (colored)

membar_enter was doing the wrong thing. For x86 we can alias:

	membar_enter -> membar_consumer
	membar_exit -> membar_producer

Revision 1.7.2.2 / (download) - annotate - [select for diffs], Wed Jan 9 01:20:53 2008 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.7.2.1: +368 -0 lines
Diff to previous 1.7.2.1 (colored) to branchpoint 1.7 (colored) to selected 1.14 (colored)

sync with HEAD

Revision 1.7.2.1, Thu Dec 20 23:46:10 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
Changes since 1.7: +0 -368 lines
FILE REMOVED

file atomic.S was added on branch matt-armv6 on 2008-01-09 01:20:53 +0000

Revision 1.7 / (download) - annotate - [select for diffs], Thu Dec 20 23:46:10 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Branch point for: matt-armv6
Changes since 1.6: +16 -2 lines
Diff to previous 1.6 (colored) to selected 1.14 (colored)

- Make __cpu_simple_lock and similar real functions and patch at runtime.
- Remove old x86 atomic ops.
- Drop text alignment back to 16 on i386 (really, this time).
- Minor cleanup.

Revision 1.6 / (download) - annotate - [select for diffs], Thu Dec 20 01:27:24 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.5: +46 -2 lines
Diff to previous 1.5 (colored) to selected 1.14 (colored)

64-bit atomic ops for i386.

Revision 1.5 / (download) - annotate - [select for diffs], Sun Dec 9 17:38:51 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, cube-autoconf-base, cube-autoconf
Changes since 1.4: +49 -1 lines
Diff to previous 1.4 (colored) to selected 1.14 (colored)

Add missing strong aliases.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Nov 29 17:29:40 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base
Changes since 1.3: +5 -5 lines
Diff to previous 1.3 (colored) to selected 1.14 (colored)

atomic_add_* takes signed integers, the others take unsigned.

Revision 1.3 / (download) - annotate - [select for diffs], Wed Nov 28 18:02:29 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.2: +2 -3 lines
Diff to previous 1.2 (colored) to selected 1.14 (colored)

A lock prefix on xchg is meaningless.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Nov 28 15:24:38 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.1: +10 -15 lines
Diff to previous 1.1 (colored) to selected 1.14 (colored)

Fix up a few minor problems.

Revision 1.1 / (download) - annotate - [select for diffs], Wed Nov 28 01:33:47 2007 UTC (16 years, 4 months ago) by ad
Branch: MAIN
Diff to selected 1.14 (colored)

x86 atomic ops.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>