gm-1.6.4
BUG FIXES

1) Fix to the configure script when using Compaq compilers to build GM on
   Alpha Linux.
2) Workaround for Itanium bug when using strncpy() from the libc of
   RedHat Advanced Server.
3) Fix for gm_stbar NOTICE message that occurs on Itaniums.
4) Fix to the mmap_sem.patch that will affect Linux kernels < 2.4.3.
5) Fix to add functionality to the gm_set_speed utility to clear the
   BEAT_ENABLE in the MYRINET register.
6) Fix to relax the lib/driver checking to that of gm-1.5.x.
7) gm_board_info reports more helpful error messages in place of the
   less helpful "No boards found or all ports busy"

ENHANCEMENTS
1) Fix to support SuSe highpte support (2.4.18 and higher).
2) Significant performance improvements in the MCP; both latency and
   bandwidth are improved with respect to gm-1.6.3.
3) Support for AIX 4.3 and 5.1

-----------------------------------------------------------------------------
gm-1.6.3
BUG FIXES

1) gm_allsize: now exits when ^C is pressed prior to establishing a
   connection
2) Fixed build problems with RedHat Advanced Server and
   Workstation kernels.
3) Fixed kernel panics when using gm_fork on older 2.4.x (x <= 2.4.10)
   kernels
4) Includes all bugfixes found in gm-1.5.2.4.
5) Fixed Solaris kernel locking issue effecting Solaris SMP machines.
6) Fixed some Solaris installation issues.

ENHANCEMENTS
1) Linux shared libraries are now supported.
2) MII support for Linux 2.4.x (x >= 2.4.6) with PCI64B and PCI64C
   boards.  This provides support for doing ethernet channel bonding
   with Myrinet.

-----------------------------------------------------------------------------
gm-1.6
BUG FIXES
1) gm_board_info: eliminated the arbitrary ceiling of 4 on board numbers probed
   by the program.  It will now continue listing boards until four consecutive
   candidate board numbers do not identify actual boards on the host.
2) All applications using the API: An arbitrary ceiling of 9 on unit numbers
   has been removed.  An interface can now be opened regardless of its GM unit
   number.
3) Test programs gm_allsize, gm_counters, gm_debug, gm_dirsend, and gm_nway:
   errors in handling the '--port', '--remote-port', '-p', and '-d' options
   have been fixed.

gm-1.6
ENHANCEMENTS
1) Included shared libraries in Solaris and Linux releases.
2) Include both 32-bit and 64-bit libraries for 64-bit Solaris.
3) Include special firmware code to support streaming DMAs on sun hardware
   using the Schizo PCI bridge, enhancing performance.
4) A new class of application programs, called 'example' programs (as distinct
   from 'test' programs), has been introduced to the standard GM distribution.
   These example programs are intended to illustrate the use of the GM API.
   Their program source is found in a new examples/ subdirectory of the GM
   source tree.  The initial programs in this class are gm_simple_example_recv
   and gm_simple_example_send.
5) A usage example has been added to the output of "gm_nway --help".

-----------------------------------------------------------------------------

gm-1.5.2.4

ENHANCEMENTS
1) Support for MacOS X 10.2

-----------------------------------------------------------------------------

gm-1.5.2.3

ENHANCEMENTS
1) Support for FreeBSD 5.0 as of FreeBSD-5.0DP1

-----------------------------------------------------------------------------

gm-1.5.2.2

BUG FIXES
1) Fixed a long-standing bug where alarms could fail to work if an
application canceled alarms frequently (such as by calling
gm_blocking_receive())
2) Fixed a small memory leak in the Tru64 ethernet emulation driver.
This leak only affects customers using NFS over GM on Tru64.
3) Improved support for GM module unloading on Tru64.


ENHANCEMENTS
1) Updated myri* include files to latest versions.
2) Tru64, MacOS-X, and FreeBSD now support IP multicast over GM
ethernet emulation.
3) Tru64 GM kernel module loads much faster.

-----------------------------------------------------------------------------

gm-1.5.2.1

BUG FIXES
1) Fix several bugs in the fork support for Linux, potentially causing kernel 
   panics.
2) Re-enabled the system() overload using vfork instead of fork for performance 
   purposes.
3) Initialization of the PCI Parity Error bit in the PCI config space (PERR)
   to 0 at load time of the driver. This bit may be set to 1 during POST, and
   stay high during operations, without real parity error detected on the PCI.

ENHANCEMENTS
1) New feature in the mapper to set the same MAC address to multiple NICs in 
   the same host, useful for channel bonding and high availability.
2) Small documentation change for ATI conflict on Linux.
3) gm_stress update about transient error management.

-----------------------------------------------------------------------------

gm-1.5.2

BUG FIXES
1) Fixed a problem (enabled directed sends) that resulted in mpich-gm not
   working on compact builds (compact builds are only for LANai4 based cards
   with 512k sram).
2) Applied a patch from CSPI for their custom systems with embedded LANai chips.
3) Integrated McKinley patch for cache-line-size.
4) More robust check to enable gm_registering private file mappings
  (previous check was not allowing registering initialized data when working
   from NFS in the case of the Suse-2.4.4 kernel).
5) Flag LANAI SRAM mapping from user-space as not coredumpable (was causing 
   deadlock during coredump with kernel 2.4.17 but not with any other kernels).
6) Poll patch to force changing ports when polling.
7) Log dispatch bug (only important for this debugging mode) fixed.
8) Rotate the send queue to fix livelock situation.
9) Set DEBUG register to disable output to DEBUG pin.
10) Write extra PULSEs periodically to ensure that one is not missed.
11) Fixed a memory leak in the Tru64 ethernet emulation driver.  This
   leak would only affect customers running NFS servers on Tru64 and
   exporting files over GM.
12) Fix in gm_unique_id_to_node_id that could corrupts caller memory 
    on 64 bit architecture (copying 8 byte instead of 4 byte for the node_id.
13) Fix in the example programs, wrongly using gm_free instead of gm_dma_free 
    to free DMA-able memory.

ENHANCEMENTS
1) Linux devfs support.
2) gm_stress.c - added command-line options for the minimum number of 
   receives/size and a barrier timeout.
3) PAE support for x86 Linux kernels with more than 4GB of physical memory.
4) Use of the official Linux device number allocated to Myricom GM to
   avoid collision.  The previous one will still work during the 
   transition period.
5) Added /dev/myricom into the path looking for the gm device entries.
6) Relaxed version checking so that an executable compiled with gm-1.5.2
   can be run on nodes with different versions of gm-1.5.x loaded.
7) Linux support for fork() in programs with GM ports opened.
8) A usage example has been added to the output of "gm_nway --help".

-----------------------------------------------------------------------------
gm-1.5.1
BUG FIXES
1) Fixed a driver incompability with kernels >= 2.4.14 causing Oops.
2) Fixed a bug in the ether/ip driver causing an "GM assertion failure" panic
in case of memory shortage.
3) Fixed memory size detection for ia64.
4) Fixed port closure bug on Sparcs.
5) Fixed bug in linux driver that could sometimes cause a panic when a GM
process was running under a debugger (totalview and maybe others).
6) Release driver mutex when the kernel sleeps, allowing basic concurrency
in GM when one thread is sleeping.

ENHANCEMENTS
1) Support to register PCI mappings on x86.
2) Workarounds for some alpha/powerpc kernel bugs (driver compatible with
more kernels).
3) Partial support for x86/PAE kernels (restricted to machines with less
than 4Gb mem).
4) Added MODULE_LICENSE.
5) Significant increase in the amount of DMA-able memory which can be allocated
when memory registration is not supported (Solaris 2.7).
6) FreeBSD and Tru64 ethernet emulation support has been totally
revamped and features better error recovery, higher performance, and
receive side checksum offloading for IPv4 TCP and UDP (FreeBSD 4.1 and
higher, Tru64 5.1 and higher).

-----------------------------------------------------------------------------
gm-1.5
BUG FIXES
1) Linux driver completely revisited. Works for Linux 2.2.X and 2.4.X, 
on all platforms and with all memory configuration.
2) Fixed a race condition between the memory registration and the swapper 
in Linux 2.4.X
3) Memory registration can now fail silently, used by the new MPICH-GM 
to implement a registration cache.
4) Fixed gm_nway "-v" bug.
5) Fixed problem when user specifies configure option "--enable-printing".
6) Linux ethernet emulation fixes.

ENHANCEMENTS
1) Can register MUCH more memory than gm-1.4.1
2) MCP performance improved by disabling costly asserts.
3) GM security is now enabled by default, so only root can run the mapper.
   Unix sysadmins may "chmod 666 /dev/gmp*" to allow anyone to run the
   mapper, but this is discouraged, as it allows mere users to clobber
   the cluster configuration.
4) Configure option --enable-new-features on by default.
5) Added gm_config_info feature to generate configure info for support issues.
6) Fixed obsolete reference to the "scripts" directory... now called
        "share" in accordance with the Gnu coding standards.
7) Auto-detect page size for ia64.
8) Report error if multiple page sizes are enabled.
9) Improved error reporting of incompatible configure options.
10) Defined a new GM_API_VERSION in gm.h.
11) README and README-linux files updated.
12) Removed the configure option "--enable-crc32" option.
13) Removed obsolete gam directory.
14) Linux driver now includes receive side checksum offloading for
    IPv4 TCP and UDP.

-----------------------------------------------------------------------------
gm-1.4.1
BUG FIXES
1) mt compile errors under Msoft compiler.
2) Better protection in MCP for bad mapper messages.
3) Added diagnostic printfs to linux driver for asserts.
4) Fixed gm_ticks() to avoid a potential (but never observed) timer glitch.
5) gm_receive*() will now never return a GM_SLEEP_EVENT.
6) gm_receive*() and gm_blocking_receive*() calls may now be safely mixed.
7) Fixed a bug where mixing gm_cancel_alarm() and gm_receive*() would break
   the GM alarm feature.
8) Fixed problems with linux-2.4 large memory configurations (pci_map).
9) Fixes for IRIX (in 1.4.1pre1):
   * Fixed a bug that caused application lockout under certain conditions.
     The problem was over-zealous locking on the part of the IRIX-specific
     code in GM.  The locking was relaxed.
   * Fixed a bug that caused a spurious application-program assertion
     failure under certain conditions at close time.
10) Fixed a minor security flaw in the Windows support.
11) Removed blocking_recv changed added in gm-1.4pre56. (1.4.1pre6)
12) Fixed driver unload in Windows 2000.
13) Fixed a bug when multiple alarms expire simultaneously.
14) Removed unused progression code. (1.4.1pre8)
15) Added pci_set_dma_mask support for linux >= 2.4.3 (1.4.1pre10)
16) redefined gm_assert() for better optimization (1.4.1pre10)
17) Fixed gm_board_info to correct label printout. (1.4.1pre12)
18) Linux fork/system works! (1.4.1pre12)
19) Removed buffer "loaning" from tru64 IP driver (1.4.1pre13)
20) Fixed compile/configure problems with user "test" (1.4.1pre13)

ENHANCEMENTS
1) Added gm_wait() and progression code in LANai.
2) Added timestamps to mapper printfs.
3) Enhancements for IRIX (in 1.4.1pre4):
   * Rationalized the structure of the /usr/myricom/ directory on the host.
   * Cleaned up support for libgm.so.
   * Added chkconfig and init.d support for automating mapper start and stop.
4) Relocking a page takes less system resources under NT.
5) Added Gallatin cleanup for FreeBSD compile (1.4.1pre10)
6) Improved the interactive help from gm_allsize and gm_debug.
7) gm_debug now prints the identity of the target hardware platform that it
   was built for.
8) gm_board_info now decodes the max_lanai_speed information, and the
   board_type and bus_type lines have been eliminated.
9) gm_nway has major improvements in its command-line interface, help
   response, and internal logic.
10) Removed printf for gm_register_memory driver failures (1.4.1pre10)
11) Removed printf from LANai for send failures ((1.4.1pre11)
12) Turn on --enable-new-features as default (1.4.1pre12)
13) Increased the maximum about of locable memory in linux. (1.4.1pre12)
14) file_mapper is now built and installed in sbin automatically. (1.4.1pre12)
15) gm_allsize extended to test forking ('--fork-parent', '--fork-child') and
    to test bi-directional summed bandwidth ('--both-ways'). (1.4.1pre12)
16) Options for test programs standardized to POSIX style, and '--help' option
    provided for each. (1.4.1pre12)
17) Committed initial AIX code (1.4.1pre13)
18) GM_UNINSTALL created (IRIX only) (1.4.1pre14)
19) '--timestamp', '--versionstamp', and '--no-versionstamp' options added to
    gm_allsize, and gmperf.pl modified to specify '--versionstamp' for all
    invocations of gm_allsize. (1.4.1pre14)

----------------------------------------------------------------------------
gm-1.4
BUG FIXES
1) Modified gm_open to fail if libgm version doesn't match kernel version.
2) fixed gm_hash bugs for small data sizes
3) Fixed solaris ethernet problems (gm-1.4pre28)
4) Fixed shortcut bug with messages that crossed a page boundary. (gm-1.4pre35)
5) Fixed Tru64 IP driver to use different DMA scheme. (gm-1.4pre36)
6) Fixed kfree_skb in hard IRQ for linux-2.4 (gm-1.4pre36)
7) Fixed -fill-gm-id-gaps implementation in mapper (gm-1.4pre39)
8) Removed linux IP driver copies on send. (gm-1.4pre39)
9) Fixed variance in DMA test reported by gm_debug (gm-1.4pre40)
10) Fixed linux-2.4 IP driver queuing when out of send_tokens (gm-1.4pre40)
11) lanai-gcc (LANai7) fixed a bug in 64-bit register-to-register moves (gm-1.4pre41)
12) Fixed problem with ethernet broadcast and new-features (gm-1.4pre42)
13) Fixed a bug in linux-2.4 that led to oops when ctrl-Cing out of a program. (gm-1.4pre44)
14) Modified linux physical address testing to avoid linux-2.4 problems. (gm-1.4pre45)
15) Fix for linux-2.4 directcopy. (gm-1.4pre45)
16) Fix for changes in linux-2.2.18. (gm-1.4pre45)
17) Fix for linux NFS mouting over Myrinet on alphas. (gm-1.4pre48)
18) Fix for vxWorks send - now we free the mbuf chain. (gm-1.4pre50)
19) Fix for highmem and linux-2.4. (gm-1.4pre50)
20) Fix for local_mutex problems. (gm-1.4pre51)
21) Added a copy for small packets in Tru64 IP driver. (gm-1.4pre51)
22) More changes for directcopy and linux-2.2 / linux-2.4 (gm-1.4pre52)
23) Better locking for solaris open/close/set_port_num. (gm-1.4pre53)
24) Added spinlocks for linux interrupts and IP transmit code (gm-1.4pre56)
24) Added locking for osf1 open/close/set_port_num. (gm-1.4pre56)
25) Changed solaris init script to be S24myrinet rather than S99. (gm-1.4pre56)
26) Added alphaev67 to config.sub. (gm-1.4)

ENHANCEMENTS
1) The IP driver now compiles and works correctly on freebsd-stable 4.1.
   See README-FreeBSD.
2) GM is now supported on IRIX 6.5, except that IP support is not working.
   See README-irix.
3) Added nack_down support (gm-1.4pre27)
4) Added a check for gcc-2.96 to abort compilation. 2.96 is buggy for kernel compile.
5) Added mapper option -ignore-node-type. (gm-1.4pre49)
6) Added better printout for the mt/deadlock program. (gm-1.4pre50)
7) Better vxworks IP support. (gm-1.4pre51)
8) Better (more consistent) linux kernel printing. (gm-1.4pre51)
9) Turned on DDI_DMA_STREAMING for gm buffers in solaris. (gm-1.4pre51)
10) Turned off DDI_DMA_STREAMING for gm in solaris (gm-1.4pre52, 2001-02-19)
11) Solaris driver now can find hostname. (gm-1.4pre52)
12) gm_board_info now decodes the lanai_cpu_version, e.g., "LANai7.2" (gm-1.4pre52)


--------------------------------------------------------------------------------
gm-1.3.1
BUG FIXES
1) fixed L7 support to include LANai7.0
2) fixed bug in mt makefile
3) fixed bug in powerpc endian flag definition
4) LANai7 and LANai9 MCP compiled code was buggy due to lanai-gcc bugs.

ENHANCEMENTS
1) Modified --enable-new-features to NOT turn on CRC32.
   This allows L7/L9 (new features) to talk to L4 nodes


gm-1.3.0
BUG FIXES
1) Solaris GM_INSTALL (S99myrinet) to use modload to make driver load "sticky".
2) Fixed gm.h for i386 solaris compiles with Sun compiler.
3) Fixed CRC32 for pt-to-pt links.

ENHANCEMENTS
1) Added a printf to kernel log when MCP can't convert user VMA to a DMA addr.
2) Added PCI64B (LANai9) support.
3) --enable-new-features is the default configure option now
   If you need to compile for L4 interfaces - use --disable-new-features





gm-1.2.1
BUG FIXES
1) Solaris GM_INSTALL script now works for newer versions of Solaris 
   and SBus cards.
2) Solaris GM_INSTALL (S99Myrinet) now uses modload to make 
   driver load "sticky".
3) Fixed gm.h for i386 solaris compiles with Sun compiler.

ENHANCEMENTS
1) Added a printf to kernel log when MCP can't translate a user VMA 
   into a DMA address.



gm-1.2
BUG FIXES
1) --enable-galvantech_workaround was broken, especially header checksums
2) strengthened the end-to-end GM checksum when 
   --enable-galvantech_workaround is set
3) Fixed sparc64-linux support
4) Mapper changes to better handle large dynamic networks.
5) gm_nway -v (verify) tests now work correctly
6) FreeBSD now compiles for 4.0-current (3/2/2000)
7) Solaris driver modified to work with gcc-2.8.1 compiler (varargs problems)
8) Fixed gm_register_memory support to return proper errors. It never
   was able to return a failure status. This could result in programs sending
   messages from buffers that were not pinned.
9) Fixed linux driver to correctly handle multiple port opens at once.
10) Fixed bugs in osf1 (Tru64) support for ioctls. 
11) Fixed support for 256KB and 512KB boards.
13) Fixed linux driver to correctly handle registration of the same page on
    different ports.
14) Fixed linux BIGMEM support
15) Made gm_host_name_to_node_id case-insensitive
16) Fixed crc32 support for datagrams (broken in gm-1.2pre11)
17) Fixed Tru64 support for accessing globals (gm_counters, gm_debug)


ENHANCEMENTS
1) Added LANai7-only CRC32 on all packets.
   	./configure --enable-new-features
   to turn it on
2) Added LANai7-only major increase in the page_cache in LANai. 
      ./configure --enable-new-features to turn it on
3) Added "real" 64-bit Virtual Memory Address support. 
4) Added solaris7 64-bit support for Ultrasparcs (requires sun C/C++ compiler)
5) Added gm_counters to dump packet counts.
6) Increased GM-Ethernet MTU to 9000 when using --enable-new-features
7) Cleaned up vxworks support and added MCP750 support.
8) Added gm_register_memory support to Tru64
9) Added gm_datagram_send()
10) Added the directcopy support for local copy for MPI-GM/SMP.
11) Cleaned up the pre-build support so that only one source tarball needs
    to be produced.
12) Added more counters to MCP and gm_counters to track packet drops
    from not having any receive buffers.
13) Linux driver now allows SHMEM memory to be registered.



gm-1.1.4
Fixed Tru64-V4.0F multiple board support.

gm-1.1.3
Added support for compact (256KB cards) on 8KB page systems with 32bit
pointers.  Support for compact 8KB page systems with 64bit pointers
(e.g. alphas) requires GM_MAX_PAGE_HASH_CACHE_INDEX (in
include/gm_types.h) to be 127.


gm-1.1.2
Added support for 128 byte hostnames.
Changed page hash cache replacement strategy back to least most
recently used (LMRU).
This fixes the performance dropoff for large messages.
Cleaned up FreeBSD support. It only worked for a single process
acessing the card. Cleaned up FreeBSD Ethernet support too.
FreeBSD 4.0 support complete.
Rewrote gm_allsize.
Alarm callbacks may now call gm_set_alarm() safely.
Fixed Tru64 SMP support.
Verified Tru64-V5.0 support works.
Added --enable-galvantech_workaround configure option to checksum all
GM packets and certain DMA transfers from the host. This is only
for LANai4 and all hosts in the network must have this configured
in.


gm-1.1.1
Fixed some problems building from source outside Myricom.
Fixed major problems in the mapper related to nodes going
up and down and mapper going passive and active.
Fixed a bug introduced in gm-1.1 that caused memory corruption in 
the LANai. gm-1.1 is not safe for general use.

gm-1.1
Mapper handles arbitrarily large networks.
GM nodes support a diameter of 24 hops.
Optimized MCP produces better latency and bandwidth.
Support for 66MHz PCI operation.
Support for pre-build MCPs (no need for lanai3 tools to build GM).

gm-1.087
mt: added better "ping" information for testing nets.
mt: mapper changes to support dynamic timeout adjustment

gm-1.086
Modified gm_set_host_name/gm_get_host_name  to properly handle 
operations if node is the mapper. Also changed gm_board_info,
gm_setname and libgm/gm_open.


gm-1.085
CSPI MAP-26xx changes to driver and MCP (LANai 5).
Modifications to drivers/solaris2.5/gm_install to 
handle the PCI64 cards.

gm-1.084
More FreeBSD IP additions/modifications.
CSPI MAP-26xx files added to vxworks tree.
More barrel simulation mapper changes.


gm-1.083
Started Force pcore-750 vxworks support.
Added some linux driver mods to make he driver more
robust to inopportune unloads etc.
Begin better FreeBSD support including IP.
Irix IP driver updates.
Mapper barrel-shift support added.
Changes to tests to support NT and vxworks compiles.
gm_board_info now prints the id of the node that configured
the routing tables.

gm-1.081
Fixed a bug in linux driver related to memory registration.
gm_arch_lock_user_buffer_page now checks return codes from 
functions and reports any errors.

Added DMA in both directions in MCP initialization.

Fixed a bug in gm_install for PCI64 cards (pci103c,106b)

gm-1.08
Added GM_CAN_REGISTER_MEMORY to vxworks support
Fixed some tests to compile/run under vxworks.
Modified libgm/gm_directed_send to print a warning
when called with non-aligned pointers or length.

gm-1.07
Fixed a syntax error in libgm/gm_register.c that showed up
in kernel builds. 
Completed mapper -never-set-hostname additions.


gm-1.06
vxworks support fixed - it was broken after gm-1.02.
Misc solaris changes to support special mapping boards.
_PAGE_PWT added to linux driver to prevent x86 boxes from 
mapping LANai memory into write-combining space.
Misc linux function prototype changes.
Mapper -very-verbose will dump packets.
mapper -never-set-hostname added 
Fixed mapper -unchanged-maps 
gm_setname added to tools/tests. Allows user to
set the gm-hostname to anything.


gm-1.05

Misc linux fixes for compiling SMP and 2.0.x.
Misc linux IP cleanup.
NT fixes to get gm-1.05 to compile and run.
Fixed NT port_close problem that would kill off the mapper
and send it into 100% CPU utilization.
Better OSF1 (Digital Unix) install script.
Fixes to gm.h to properly support inlining.
gm_bcopy.c cleaned up to have a little better error checking.
Mapper fixed to support pt-to-pt. Support mistakenly removed in 
gm-1.04. scout-tries increased from 3 to 13.
LogP, board_info, gm_allsize, gm_nway minimal changes.

gm-1.04

Fixed a mapper bug introduced in gm-1.02.
This would cause the mapper to produce incorrect
routes. You should not use the mapper from gm-1.02 or gm-1.03.
Some FreeBSD support added.

gm-1.03

Added gm_simpleroute.c in tests.
Fixed register memory bugs for linux.
Added comments to active.args to document mapper options.
Mapper change to correctly handle passive mappers waking up.
Tru64 (OSF1 V4.0) Alpha support added.
PPC Linux support added.


gm-1.02

Generic
added test-and-set of PCI config bits for
	memory
	dma master
	memory-write-and-invalidate

Better support for compiling gm with Portland Group, and Sun
compilers.

Added a gm_blocking_receive_no_spin() function
to reduce CPU utilization by mapper and other processes
that sleep a lot.

Fixed bugs in alarm code to make sure all alarm references
use 64bits.

Mapper changes to prepare to support bridging to ethernets.

GM nway mods.


Linux
Modifed the GM_INSTALL script to delay after removing the module
Added config options for re-directing the kernel_source location
for the build.
Cleaned up Alpha support
Added sparc-64 support
Fixed a problem with registering memory

NT
Cleaned up NT code to provide NT support for 1.02.

Solaris
Added some flags to support "mapping-special" cards.


