#
296373 |
|
04-Mar-2016 |
marius |
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.3. - Update default pkg(8) configuration to use the quarterly branch.
Approved by: re (implicit) |
#
264375 |
|
12-Apr-2014 |
andreast |
MFC r260607, r260610, r260934:
r260607: The onyx codec works also as module, so add it.
r260610: Described in the man page but not implemented. Here it comes, atomic_swap_32/64. The latter only for powerpc64.
r260934: Fix the resource information for the i2s-a node on certain G5 PowerMacs. This is the first step needed to get the snapper codec working on those machines. The second step is to enable the corresponding I2S device and its clock.
Tested on machines where the snapper codec was already working, a G4 PowerBook and a PowerMac9,1 with a Shasta based macio. The PowerMac7,2/7,3 with a K2 based macio can now also play sound.
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
235946 |
|
24-May-2012 |
bz |
Add a missing " to get closer to compiling.
|
#
235943 |
|
24-May-2012 |
nwhitehorn |
Atomic operation acquire barriers also need to be isync on 64-bit systems.
|
#
235942 |
|
24-May-2012 |
marcel |
Revert isync for ILP32 to sync as per my original change that I discussed with Nathan. Leave __ATOMIC_ACQ as an isync as per Nathan.
|
#
235931 |
|
24-May-2012 |
marcel |
Fix the memory barriers for CPUs that do not like lwsync and wedge or cause exceptions early enough during boot that the kernel will do ithe same. Use lwsync only when compiling for LP64 and revert to the more proven isync when compiling for ILP32. Note that in the end (i.e. between revision 222198 and this change) ILP32 changed from using sync to using isync. As per Nathan the isync is needed to make sure I/O accesses are properly serialized with locks and isync tends to be more effecient than sync.
While here, undefine __ATOMIC_ACQ and __ATOMIC_REL at the end of the file so as not to leak their definitions.
Discussed with: nwhitehorn
|
#
235013 |
|
04-May-2012 |
nwhitehorn |
Fix final bugs in memory barriers on PowerPC: - Use isync/lwsync unconditionally for acquire/release. Use of isync guarantees a complete memory barrier, which is important for serialization of bus space accesses with mutexes on multi-processor systems. - Go back to using sync as the I/O memory barrier, which solves the same problem as above with respect to mutex release using lwsync, while not penalizing non-I/O operations like a return to sync on the atomic release operations would. - Place an acquisition barrier around thread lock acquisition in cpu_switchin().
|
#
234590 |
|
22-Apr-2012 |
nwhitehorn |
Provide a clearer split between read/write and acquire/release barriers. This should really, actually be correct now.
|
#
234584 |
|
22-Apr-2012 |
nwhitehorn |
Clarify what we are doing in r234583 a little better: eieio and isync do not provide general barriers, but only barriers in the context of the atomic sequences here. As such, make them private and keep the global *mb() routines using a variant of sync.
|
#
234583 |
|
22-Apr-2012 |
nwhitehorn |
On non-64-bit systems (which generally don't have lwsync), use eieio and isync to implement read and write barriers, following Appendix B.2 of Book II of the architecture manual. This provides a 25% speed increase to fork() on the PowerPC G4.
|
#
234581 |
|
22-Apr-2012 |
nwhitehorn |
Use lwsync to provide memory barriers on systems that support it instead of sync (lwsync is an alternate encoding of sync on systems that do not support it, providing graceful fallback). This provides more than an order of magnitude reduction in the time required to acquire or release a mutex.
MFC after: 2 months
|
#
222198 |
|
22-May-2011 |
attilio |
Merge r221614,221696,221737,221840 from largeSMP project branch: Rewrite atomic operations for powerpc in order to achieve the following: - Produce a type-clean implementation (in terms of functions arguments and returned values) for the primitives. - Fix errors with _long() atomics where they ended up with the wrong arguments to be accepted. - Follow the sys/type.h specifics that define the numbered types starting from standard C types. - Let _ptr() version to not auto-magically cast arguments, but leave the burden on callers, as _ptr() atomic is intended to be used relatively rarely.
Fix cfi in order to support the latest point.
In collabouration with: bde Tested by: andreast, nwhitehorn, jceel MFC after: 2 weeks
|
#
209975 |
|
13-Jul-2010 |
nwhitehorn |
MFppc64:
Kernel sources for 64-bit PowerPC, along with build-system changes to keep 32-bit kernels compiling (build system changes for 64-bit kernels are coming later). Existing 32-bit PowerPC kernel configurations must be updated after this change to specify their architecture.
|
#
185189 |
|
22-Nov-2008 |
marcel |
Unbreak previous commit.
|
#
185162 |
|
22-Nov-2008 |
kmacy |
- bump __FreeBSD version to reflect added buf_ring, memory barriers, and ifnet functions
- add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own
- add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers
- add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues
This work was supported by Bitgravity Inc. and Chelsio Inc.
|
#
178057 |
|
10-Apr-2008 |
marcel |
Fix copy-n-paste typos in free text.
|
#
178027 |
|
09-Apr-2008 |
marcel |
Reimplement atomic_add, atomic_clear, atomic_set and atomic_subtract so that all implemented variants have proper prototypes. The 8-bit, 16-bit and 64-bit variants are not implemented.
This really fixes the current build breakages caused by type casting and struct aliasing rules.
|
#
178010 |
|
08-Apr-2008 |
marcel |
Quick fix for the kernel build breakage in netgraph and the aliasing warning in libthr. A more elaborate fix is in the works that makes sure that all variants have proper inline functions with proper types.
|
#
177276 |
|
16-Mar-2008 |
pjd |
Implement atomic_fetchadd_long() for all architectures and document it.
Reviewed by: attilio, jhb, jeff, kris (as a part of the uidinfo_waitfree.patch)
|
#
173970 |
|
27-Nov-2007 |
jasone |
Define atomic_readandclear_ptr.
|
#
173928 |
|
26-Nov-2007 |
jb |
Implement the _long functions using u_long rather than trying to cast as uint32_t which is defined as unsigned int. gcc doesn't want to consider that there might not be much difference between an int and a long on a 32 bit architecture.
|
#
173742 |
|
19-Nov-2007 |
jb |
Define atomic_cmpset_acq_long and atomic_cmpset_rel_long so that they use casts rather than just assuming that the compiler will DTRT without complaining.
|
#
171334 |
|
10-Jul-2007 |
marcel |
Cast the arguments to atomic_*_ptr() when mapping it to atomic_*_32() This is a minimal fix.
Approved by: re (kensmith)
|
#
150627 |
|
27-Sep-2005 |
jhb |
Add a new atomic_fetchadd() primitive that atomically adds a value to a variable and returns the previous value of the variable.
Tested on: i386, alpha, sparc64, arm (cognet) Reviewed by: arch@ Submitted by: cognet (arm) MFC after: 1 week
|
#
150182 |
|
15-Sep-2005 |
jhb |
Stop using the '+' constraint modifier with inline assembly. The '+' constraint is actually only allowed for register operands. Instead, use separate input and output memory constraints.
Education from: alc Reviewed by: alc Tested on: i386, alpha MFC after: 1 week
|
#
148067 |
|
15-Jul-2005 |
jhb |
Convert the atomic_ptr() operations over to operating on uintptr_t variables rather than void * variables. This makes it easier and simpler to get asm constraints and volatile keywords correct.
MFC after: 3 days Tested on: i386, alpha, sparc64 Compiled on: ia64, powerpc, amd64 Kernel toolchain busted on: arm
|
#
143063 |
|
02-Mar-2005 |
joerg |
netchild's mega-patch to isolate compiler dependencies into a central place.
This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42.
By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course.
Submitted by: netchild Reviewed by: various developers on arch@, some time ago
|
#
141106 |
|
01-Feb-2005 |
grehan |
- change all u_int_XX to uint_XX - cast param for atomic_subtract_long, since Netgraph uses it.
|
#
109479 |
|
18-Jan-2003 |
grehan |
Fix bugs with operand ordering and unnecessary sync/eieio ops. Mostly obtained from Alpha atomic.h
Approved by: Benno
|
#
103610 |
|
19-Sep-2002 |
grehan |
Fixed branch labels
Approved by: benno
|
#
91207 |
|
24-Feb-2002 |
benno |
Make atomic_cmpset_32 correctly return 0 on failure.
|
#
78878 |
|
27-Jun-2001 |
benno |
Fix the atomic_*_32 operations. These were written before I had the ability to test them properly and before I had a working knowledge of GCC asm constraints.
|
#
78823 |
|
26-Jun-2001 |
benno |
Don't initialise ret in atomic_cmpset_32. Add more synchronisation.
|
#
78693 |
|
24-Jun-2001 |
benno |
Fix asm constraints for atomic_cmpset_32. This fix may also be needed elsewhere.
|
#
78342 |
|
16-Jun-2001 |
benno |
This commit (along with one pending in sys/dev/ofw and one in sys/conf) give us our first minimal glimpse of PowerPC support.
With this code we can get to the "mountroot>" prompt on my Apple iMac. We can't get any further due to lack of clock and interrupt handling, among other things. This does however mean that pmap and VM are initialising.
We're fairly dependant on OpenFirmware at this point, but I hope to add support for other classes of firmware at a later stage.
Reviewed by: obrien, dfr
|
#
70741 |
|
07-Jan-2001 |
benno |
PowerPC atomic operation functions. Some of these are dependant on an inline function (powerpc_mb()) that is yet to come.
Reviewed by: obrien
|
#
70572 |
|
01-Jan-2001 |
obrien |
Shells for the atomic operations FreeBSD needs. This is just waiting for a budding PowerPC ASM guy to fill in the blanks.
|