The NetBSD Project

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

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Sat Jul 20 16:11:27 2024 UTC (6 months ago) by martin
Branches: netbsd-10
CVS tags: netbsd-10-1-RELEASE
Diff to: previous 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29: +3 -1 lines
Pull up following revision(s) (requested by riastradh in ticket #764):

	common/lib/libc/arch/i386/atomic/atomic.S: revision 1.37
	sys/arch/xen/include/xenring.h: revision 1.8
	sys/arch/i386/i386/cpufunc.S: revision 1.52
	sys/arch/amd64/amd64/cpufunc.S: revision 1.68
	sys/arch/xen/include/hypervisor.h: revision 1.60
	common/lib/libc/arch/x86_64/atomic/atomic.S: revision 1.30

xen: Don't hotpatch away LOCK prefix in xen_mb, even on UP boots.

Both xen_mb and membar_sync are designed to provide store-before-load
ordering, but xen_mb has to provide it in synchronizing guest with
hypervisor, while membar_sync only has to provide it in synchronizing
one (guest) CPU with another (guest) CPU.

It is safe to hotpatch away the LOCK prefix in membar_sync on a
uniprocessor boot because membar_sync is only designed to coordinate
between normal memory on multiple CPUs, and is never necessary when
there's only one CPU involved.

But xen_mb is used to coordinate between the guest and the `device'
implemented by a hypervisor, which might be running on another
_physical_ CPU even if the NetBSD guest only sees one `CPU', i.e.,
one _virtual_ CPU.  So even on `uniprocessor' boots, xen_mb must
still issue an instruction with store-before-load ordering on
multiprocessor systems, such as a LOCK ADD (or MFENCE, but MFENCE is
costlier for no benefit here).

No need to change xen_wmb (release ordering, load/store-before-store)
or xen_rmb (acquire ordering, load-before-load/store) because every
x86 store is a store-release and every x86 load is a load-acquire,
even on multiprocessor systems, so there's no hotpatching involved
anyway.

PR kern/57199

Revision 1.31: download - view: text, markup, annotated - select for diffs
Tue Jul 16 22:45:10 2024 UTC (6 months, 1 week ago) by riastradh
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +8 -1 lines
amd64: Fix performance regression in uniprocessor atomics/membars.

Back in 2022, I eliminated the MFENCE hotpatch in membar_sync because
it's essentially always more expensive than LOCK ADD with no benefit
for CPU/CPU store-before-load ordering.  (It is relevant only for
non-temporal stores or write-combining memory.)

https://mail-index.netbsd.org/source-changes/2022/07/30/msg140047.html

But in that change, I made a mistake and _also_ eliminated the LOCK
hotpatch on uniprocessor amd64.  And our assembler gas helpfully
interprets uppercase LOCK just like lowercase lock and assembles them
the same way, so I didn't notice.

This change restores the LOCK hotpatch, so that when booting on a
uniprocessor system (or a uniprocessor guest on a multicore host),
the LOCK prefix is replaced by NOP for a cheaper instruction.

Found by puzzling over how my explanation for PR kern/57199 could
possibly be correct when (on an amd64 guest) ddb x/i membar_sync kept
showing the lock prefix even in uniprocessor boots.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Tue Jul 16 22:44:38 2024 UTC (6 months, 1 week ago) by riastradh
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +3 -1 lines
xen: Don't hotpatch away LOCK prefix in xen_mb, even on UP boots.

Both xen_mb and membar_sync are designed to provide store-before-load
ordering, but xen_mb has to provide it in synchronizing guest with
hypervisor, while membar_sync only has to provide it in synchronizing
one (guest) CPU with another (guest) CPU.

It is safe to hotpatch away the LOCK prefix in membar_sync on a
uniprocessor boot because membar_sync is only designed to coordinate
between normal memory on multiple CPUs, and is never necessary when
there's only one CPU involved.

But xen_mb is used to coordinate between the guest and the `device'
implemented by a hypervisor, which might be running on another
_physical_ CPU even if the NetBSD guest only sees one `CPU', i.e.,
one _virtual_ CPU.  So even on `uniprocessor' boots, xen_mb must
still issue an instruction with store-before-load ordering on
multiprocessor systems, such as a LOCK ADD (or MFENCE, but MFENCE is
costlier for no benefit here).

No need to change xen_wmb (release ordering, load/store-before-store)
or xen_rmb (acquire ordering, load-before-load/store) because every
x86 store is a store-release and every x86 load is a load-acquire,
even on multiprocessor systems, so there's no hotpatching involved
anyway.

PR kern/57199

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sat Jul 30 14:11:00 2022 UTC (2 years, 5 months ago) by riastradh
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, 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
Branch point for: netbsd-10
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +13 -23 lines
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.28: download - view: text, markup, annotated - select for diffs
Sat Apr 9 23:32:52 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +15 -9 lines
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.27: download - view: text, markup, annotated - select for diffs
Sat Apr 9 22:53:45 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -3 lines
x86_64/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.26: download - view: text, markup, annotated - select for diffs
Sat Apr 9 12:07:29 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +7 -1 lines
x86: Add a note on membar_sync and mfence.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Sat Apr 9 12:07:17 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +6 -3 lines
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.24: download - view: text, markup, annotated - select for diffs
Sat Apr 9 12:07:00 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +6 -13 lines
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.23: download - view: text, markup, annotated - select for diffs
Wed Apr 6 22:47:57 2022 UTC (2 years, 9 months ago) by riastradh
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2 lines
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.22: download - view: text, markup, annotated - select for diffs
Sun Apr 26 14:49:17 2020 UTC (4 years, 9 months ago) by maxv
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +27 -21 lines
Use the hotpatch framework for LFENCE/MFENCE.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Sun Apr 26 13:59:44 2020 UTC (4 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +27 -27 lines
Remove unused argument in macro.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Apr 26 13:54:03 2020 UTC (4 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +1 -2 lines
Remove unused.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Apr 26 13:37:14 2020 UTC (4 years, 9 months ago) by maxv
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +3 -11 lines
Drop the hardcoded array, use the hotpatch section.

Revision 1.17.24.3: download - view: text, markup, annotated - select for diffs
Tue Apr 21 19:37:48 2020 UTC (4 years, 9 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.17.24.2: preferred, colored; branchpoint 1.17: preferred, colored; next MAIN 1.18: preferred, colored
Changes since revision 1.17.24.2: +1 -1 lines
Ooops, restore accidently removed files from merge mishap

Revision 1.17.24.2
Tue Apr 21 18:41:21 2020 UTC (4 years, 9 months ago) by martin
Branches: phil-wifi
FILE REMOVED
Changes since revision 1.17.24.1: +1 -1 lines
Sync with HEAD

Revision 1.17.24.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 21:41:06 2019 UTC (5 years, 7 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -1 lines
Sync with HEAD

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Feb 17 07:34:44 2019 UTC (5 years, 11 months ago) by isaki
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-4-RELEASE, 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, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base, ad-namecache
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -1 lines
Add missing export of atomic_or_64 (since rev1.1).

Revision 1.16.12.1: download - view: text, markup, annotated - select for diffs
Tue Aug 19 23:45:14 2014 UTC (10 years, 5 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +32 -1 lines
Rebase to HEAD as of a few days ago.

Revision 1.16.24.1: download - view: text, markup, annotated - select for diffs
Sun Aug 10 06:47:06 2014 UTC (10 years, 5 months ago) by tls
Branches: tls-earlyentropy
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +32 -1 lines
Rebase.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu May 22 15:23:11 2014 UTC (10 years, 8 months ago) by uebayasi
Branches: 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-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, 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, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-8-base, netbsd-8-3-RELEASE, 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
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +32 -1 lines
Put missing END() markers to set ELF symbol size.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Wed Jan 12 23:12:10 2011 UTC (14 years ago) by joerg
Branches: MAIN
CVS tags: yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, 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: tls-maxphys, tls-earlyentropy
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +2 -2 lines
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.15: download - view: text, markup, annotated - select for diffs
Thu Nov 26 07:40:34 2009 UTC (15 years, 2 months ago) by pooka
Branches: 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
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +7 -3 lines
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.14: download - view: text, markup, annotated - select for diffs
Mon Jan 12 02:53:29 2009 UTC (16 years ago) by pooka
Branches: 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, jym-xensuspend
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -5 lines
include sys/param.h for _HARDKERNEL instead of homegrown def.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Jan 4 18:46:16 2009 UTC (16 years ago) by pooka
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +8 -4 lines
Do not use lockpatches with _RUMPKERNEL (non-PIC ... and pointless).

Revision 1.11.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 23 04:26:45 2008 UTC (16 years, 7 months ago) by wrstuden
Branches: wrstuden-revivesa
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +32 -32 lines
Sync w/ -current. 34 merge conflicts to follow.

Revision 1.9.4.2: download - view: text, markup, annotated - select for diffs
Wed Jun 4 02:02:58 2008 UTC (16 years, 7 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.9.4.1: preferred, colored; branchpoint 1.9: preferred, colored; next MAIN 1.10: preferred, colored
Changes since revision 1.9.4.1: +32 -32 lines
sync with head

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sun May 25 15:56:12 2008 UTC (16 years, 8 months ago) by chs
Branches: 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-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-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, 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, matt-mips64-base2
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +32 -32 lines
enable profiling of assembly functions.

Revision 1.9.4.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:28:46 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +8 -15 lines
sync with head.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat May 3 05:42:38 2008 UTC (16 years, 8 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +8 -8 lines
rename END to ENDLABEL.  i'll use END for other purpose.  ok by Andrew Doran.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:22:52 2008 UTC (16 years, 9 months ago) by martin
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +1 -8 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.7.4.3: download - view: text, markup, annotated - select for diffs
Sun Mar 23 00:12:44 2008 UTC (16 years, 10 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.7.4.2: preferred, colored; branchpoint 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7.4.2: +28 -15 lines
sync with HEAD

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sun Feb 10 13:25:46 2008 UTC (16 years, 11 months ago) by ad
Branches: 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
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +23 -1 lines
Add atomic_cas_foo_ni().

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Feb 9 13:42:21 2008 UTC (16 years, 11 months ago) by ad
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +6 -15 lines
membar_enter was doing the wrong thing. For x86 we can alias:

	membar_enter -> membar_consumer
	membar_exit -> membar_producer

Revision 1.7.4.2: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:21:15 2008 UTC (17 years ago) by matt
Branches: matt-armv6
Diff to: previous 1.7.4.1: preferred, colored; branchpoint 1.7: preferred, colored
Changes since revision 1.7.4.1: +393 -0 lines
sync with HEAD

Revision 1.7.4.1
Mon Dec 10 14:13:12 2007 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
FILE REMOVED
Changes since revision 1.7: +0 -393 lines
file atomic.S was added on branch matt-armv6 on 2008-01-09 01:21:14 +0000

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Dec 10 14:13:12 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base3, yamt-kmem-base2, matt-armv6-base, cube-autoconf-base, cube-autoconf
Branch point for: matt-armv6
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2 lines
Fix _atomic_cas_64. Noted by bouyer@.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sun Dec 9 17:33:56 2007 UTC (17 years, 1 month ago) by ad
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +49 -1 lines
Add missing strong aliases; sure I did this before?

Revision 1.5: download - view: text, markup, annotated - select for diffs
Thu Nov 29 21:59:47 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
CVS tags: yamt-kmem-base, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +5 -3 lines
Fix ia32 -> amd64 thinko.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Nov 29 17:29:41 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -5 lines
atomic_add_* takes signed integers, the others take unsigned.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Wed Nov 28 18:02:29 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +3 -5 lines
A lock prefix on xchg is meaningless.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Wed Nov 28 15:24:38 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +16 -21 lines
Fix up a few minor problems.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Wed Nov 28 01:33:49 2007 UTC (17 years, 2 months ago) by ad
Branches: MAIN
x86 atomic ops.

Diff request

This form allows you to request diffs 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.

Log view options

CVSweb <webmaster@jp.NetBSD.org>