1
1

29 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
3f5541349a Add UC copyright
This commit was SVN r5009.
2005-03-24 12:43:37 +00:00
Brian Barrett
60a1ca77e9 * Updates to make MIPS actually work. Could clean up the assembly a bit :)
This commit was SVN r4469.
2005-02-18 23:16:04 +00:00
Brian Barrett
927c5be6c8 NOTE: You need to re-autogen after this commit. Sorry :(
* SPARC Assembly fixes:
  - Use SPARC assembly type only when not able to use the SPARC v9
    instruction set (instead of previous whenever sizeof(void*) == 4
  - Use SPARCV9_32 (aka sparc v8plus) and SPARCV9_64 (aka sparc v9) when
    possible.  Already were doing so for the 64bit, but on 32bit we
    were falling back to SPARC.
  - Implemented SPARCV9_32 atomic operations
  - Emit warning if user is going to get SPARC atomic, as that probably
    isn't what the user wants for best performance.
* Started shell of MIPS assembly.  Does not work, but wanted something
  so that everyone would only have to re-autogen once today....

This commit was SVN r4465.
2005-02-18 20:10:29 +00:00
Brian Barrett
3213187beb * Fix warning with redefining #define
* Fix compiler error on Sparc64 when not inlining assembly
* Fix error in Sparc64 compare&swap operations.  Now pass test suite

This commit was SVN r4436.
2005-02-15 18:37:47 +00:00
Brian Barrett
a2caf839c0 * Initial try at making OMPI atomic operations work properly on Solaris
- SPARC32 has spinlocks and "pseudo atomic" math
  - SPARC64 has spinlocks, compare & set, atomic math (still in s/w)

This commit was SVN r4433.
2005-02-14 22:07:08 +00:00
Brian Barrett
0ad4523212 * Rather than having two .c files, one for inlining one for not, do some
magic via the command line and symlinks

This commit was SVN r4431.
2005-02-14 21:36:59 +00:00
Prabhanjan Kambadur
c66bd5a3a1 Defining OMPI_ATOMIC_ things to the right values. Before, they were simply defined (but not defined to a value). Now they are defined to 1 (correctly). This makes the new atomic scheme work on windows
This commit was SVN r4430.
2005-02-14 18:30:54 +00:00
Brian Barrett
4265304230 * Clean up some minor build system ick in the atomic operations
* Make sure the update.sh scripts all use OMPI_WANT_SMP_LOCKS
* Add sparc (32bit) assembly
  - Memory barriers
  - spinlocks
  - emulate add/sub using the spinlock table with hashed lookups, as
    suggested by the linux kernel folk (better than the other option,
    requiring the counters only use 24 bits)

This commit was SVN r4429.
2005-02-14 18:04:23 +00:00
Brian Barrett
9f61d1d8a3 * Clean up some problems with the atomic operation interface discovered
during testing.  In particular, we can't have a cmpset macro that can
  deal with pointers without some really evil voodoo.  So have a
  different macro for pointers
* Add more detailed testing of the atomics using AM's test framework.
  More to come...

This commit was SVN r4191.
2005-01-27 21:08:35 +00:00
Brian Barrett
9c1a277804 * Update build system to support non-GCC inline assembly, including detection
of assembler format
* Fix minor bugs in AMD64, PPC, and IA32 assembly for atomic operations
* Clean up the #defines to look for when examining level of atomic operation
  support

This commit was SVN r4183.
2005-01-27 01:39:55 +00:00
Jeff Squyres
4f0adc3ab2 - Add a missing #define
- Change the params of 2 functions to match what they're always called
  with 

This commit was SVN r4091.
2005-01-21 13:52:57 +00:00
George Bosilca
a61a24f545 added support for em64t (cf. Torsten Hoefler).
This commit was SVN r3828.
2004-12-16 02:13:29 +00:00
Jeff Squyres
616269a9be Add HLRS copyright
This commit was SVN r3665.
2004-11-28 20:09:25 +00:00
Jeff Squyres
e9ed717748 First cut at copyrights: IU, UTK, and some OSU. LANL and HLRS still
pending.

This commit was SVN r3655.
2004-11-22 01:38:40 +00:00
George Bosilca
aa3b983749 Init function have 2 arguments.
This commit was SVN r3492.
2004-11-03 16:52:02 +00:00
Rich Graham
4c5d6417a2 restore old unlock code for now.
This commit was SVN r3489.
2004-11-03 15:58:52 +00:00
George Bosilca
efba8d0803 Add an initializer for the atomic locks.
This commit was SVN r3464.
2004-11-01 22:16:23 +00:00
Prabhanjan Kambadur
59032bceff this is some cleanup which was breaking on windows. the atomic.h removal of STATIC INLINE macro because goerge removed its use from all files
This commit was SVN r3434.
2004-10-29 15:23:10 +00:00
George Bosilca
9972663a12 Pedentic changes in atomic.h :)
Correct the ompi_object_update function to work correctly with the supplied increment.

This commit was SVN r3418.
2004-10-28 22:33:40 +00:00
Jeff Squyres
c678abf70a More fixes for atomic from George. He swears it will work now.
This commit was SVN r3416.
2004-10-28 22:24:45 +00:00
George Bosilca
a267e2671a Add protections around 32 and 64 bits code. The 32 bits is not really usefull but I want to have both of them similar. Anyway, some architectures does not provide 64 bits atomic operations, so they will never get compiled. Let's just hope nobody use them ...
- remove all unsigned from the */atomic.h files
 - export defines depending on the architecture

This commit was SVN r3408.
2004-10-28 20:32:12 +00:00
Prabhanjan Kambadur
17fee6d394 Put back the missing bracket ...
This commit was SVN r3406.
2004-10-28 20:02:20 +00:00
Prabhanjan Kambadur
08234850b6 geogre's sugesstions
This commit was SVN r3404.
2004-10-28 19:54:02 +00:00
George Bosilca
fdaaae5998 Update the atomic stuff. Not all architectures provide the "fastest" atomic one. The only required atomic
operations are actually the compare_and_set 32 and 64 bits. For all others atomic there is a fallback in sys/atomic.c

For ia32 I add a workaround the ebx register. When compiling with -fPIC ebx is reserved for the shared object interface (store some global pointer). On the same time cmpxchg8b use ebx and ecx to store the new value. The workaround save the ebx content before cmpxchg8b and restore it afterward. There is still a possible bug !!! If we get interrupted between the push and pop of the ebx then we will definitivelly crash ...

This commit was SVN r3387.
2004-10-28 17:32:27 +00:00
Prabhanjan Kambadur
4257467fec this is the big windows commit. there are more things which have gone into this than i can remember. but basically, we are looking for
1. header file and source file protections using #ifdef WIN32
2. new files and directories to support windows functionality
3. appropritate linkage symbols added (OMPI_DECLSPEC) for windows
4. some functions are unimplemented on the windows side. this is mostly
because there might not be need to implement it in windows land. eg., forking
a daemon off
5. Introduced locking mechanisms for windows

This commit was SVN r3286.
2004-10-22 16:06:05 +00:00
David Daniel
b1ff3e50c2 Closing in on compilation with Solaris (and other non-GNU) compilers.
This commit was SVN r2244.
2004-08-19 23:34:46 +00:00
David Daniel
927ef83454 This is a large check-in related to switching from
os/atomic.h  -->  include/sys/atomic.h

WARNING:  There are almost certainly some bugs introduced here, but I
believe that using this system will get us to a stable and portable
library faster in the long run.

Other changes:

threads/mutex

  Reorganized to use pthreads or asm atomic operations as available.
  Untested Windows implementation added using InterlockedExchange() funcion.

threads/thread

  Added an untested Windows implementation

other places

  Updates to include the "right" header files or to use
  ompi_atomic_add_int() rather that fetchNadd() etc.

This commit was SVN r2221.
2004-08-18 23:24:27 +00:00
David Daniel
a1688d5b9f more atomic.h changes
This commit was SVN r2157.
2004-08-16 01:13:25 +00:00
David Daniel
b6f3022954 Updating top-level atomic.h
This commit was SVN r2148.
2004-08-15 21:44:39 +00:00