================================================================ GM-2.1.X Changes ================================================================ [Additional recent changes merged from gm-2.0.X are listed under "GM-2.0.X Changes" below.] gm-2.1.29_Linux (July 9, 2008) 1) Fix out-of-order GOT packets. gm-2.1.28_Linux (August 21, 2007) 1) Fix fabric hang which could occur on non-LX cards on lossy network. gm-2.1.28_Windows (January 4, 2007) BUG FIXES 1) Include all bug fixes in gm-2.0.28_Windows gm-2.1.27a_Solaris (September 21, 2006) BUG FIXES 1) Include all bug fixes in gm-2.0.27a_Solaris gm-2.1.27_Solaris (September 1, 2006) BUG FIXES 1) Include all bug fixes in gm-2.0.27_Solaris gm-2.1.26_Linux (May 31, 2006) BUG FIXES 1) Include all bug fixes in gm-2.0.26_Linux gm-2.1.25_Linux (internal release) BUG FIXES 1) Include all bug fixes in gm-2.0.25_Linux gm-2.1.24_Linux (December 28, 2005) BUG FIXES 1) Include all bug fixes in gm-2.0.24_Linux gm-2.1.23_Linux (October 31, 2005) BUG FIXES 1) Include all bug fixes in gm-2.0.23_Linux gm-2.1.22_Linux (Aug. 12, 2005) BUG FIXES 1) Include all bug fixes in gm-2.0.22_Linux gm-2.1.21_AIX (May 13, 2005) BUG FIXES 1) Better detection of false interrupts from Myrinet nic to eliminate performance degradation due to excessive error logging 2) Improved locking in AIX IP to fix possible deadlock in ifconfig 3) Keep separate DMA handles for IP transmit, receive and GM to avoid contention and possible system lockups with IP over Myrinet ENHANCEMENTS 1) Transmit Done interrupt coalescing to improve transmit performance gm-2.1.21_Linux (April 28, 2005) BUG FIXES 1) Fully reset F-cards upon driver unload/reload gm-2.1.20_Linux (internal release) BUG FIXES 1) Include all bug fixes in gm-2.0.20_Linux [Version numbers gm-2.1.10 to gm-2.1.19 have been skipped.] gm-2.1.9_AIX (internal release) BUG FIXES 1) Added lock to synchronize interrupt handlers to work around an AIX multiple-cpu interrupt scheduling problem. 2) Remove all GM directories in /opt when uninstalling LPP. 3) gm_start boot and post-install script and inittab entry added gm-2.1.9_Linux (February 25, 2005) BUG FIXES 1) Fixed gm_get() performance problems due to out of order packets. ENHANCEMENTS 1) For packets larger than 64KBytes, improve throughput up to 15%. gm-2.1.8_Solaris (February 11, 2005) ENHANCEMENTS 1) Include all enhancements in gm-2.0.18_Solaris. BUG FIXES 1) Include all bug fixes in gm-2.0.18_Solaris. gm-2.1.8_Linux (February 9, 2005) ENHANCEMENTS 1) Include all enhancements in gm-2.0.18_Linux. BUG FIXES 1) Include all bug fixes in gm-2.0.18_Linux. gm-2.1.7_Solaris (February 5, 2005) ENHANCEMENTS 1) Include all enhancements in gm-2.0.17_Solaris. BUG FIXES 1) Include all bug fixes in gm-2.0.17_Solaris. gm-2.1.7_Linux (January 19, 2005) ENHANCEMENTS 1) Double the number of nodes supported on a network. gm-2.1.6_Solaris ENHANCEMENTS 1) Add support for solaris 10 on UltraSPARC platforms. 2) Support solaris 9 and 10 on x86 platforms. gm-2.1.6_Linux (December 3, 2004) ENHANCEMENTS 1) Improved error reporting in case of MCP failure. 2) Improved small message latency. BUG FIXES 1) Add missing header in gm_autostress.c to fix compilation problems. 2) Rename a variable in gm_stress.c to avoid a name conflict in Gentoo Linux. 3) Add additional strings in our startup script that are needed for the version of insserv used by chkconfig in SLES9. 4) Improve some assertion checks in the gm driver that had become too conservative for 2.6 kernels (or at least some of them). 5) Fix "Bad interface" firmware panic. 6) Fix bug which turned ACKs into huge packet, congesting network. gm-2.1.5_Linux (November 10, 2004) ENHANCEMENTS 1) Include all enhancements in gm-2.0.15_Linux. BUG FIXES 2) Include all bug fixes in gm-2.0.15_Linux. gm-2.1.4_Linux BUG FIXES 1) Restore mapper functionality for networks of diameter 5 and larger (broken by gm-2.1.3_Linux enhancement 3). gm-2.1.3_Linux BUG FIXES 1) Fix problem where stale mapper state is left in MCP. This can result in mappers appearing to become inoperative when the active mapper is moved from one host to another without a GM reload. 2) Fix problem which could result in YP_CANCEL timeout when running older versions of MPICH (pre- 1.2.5..11). 3) Updated gm_get() and gm_put() documentation to indicate that these calls require a send token. ENHANCEMENTS 1) Implement /etc/init.d/gm {start|stop} mapper 2) Lift the "port N to port N" routing requirement to better support miswired networks and mixed D- and E-card networks. 3) Reduced GM_MAX_NETWORK_DIAMETER from 16 to 8, to make more firmware memory available, improving scalability. gm-2.1.2_Linux ENHANCEMENTS 1) Propagate firmware parity errors to GM client applications, causing them to exit with an error code instead of hanging. 2) gm_board_info now reports node type for non-GM nodes 3) New command gm_purge to remove stale node entries from gm_board_info output which show up as "????" 4) After an SRAM parity error is detected, gather and report more information about it. 5) Under Linux, allow memory registration in different processes for same port, useful for kernel ports, and sockets-gm 6) Improve performance when receiving packets from ethernet hosts behind Myricom XM Ethernet bridges. 7) Support variant of linux 2.6 with new VM 8) Include all enhancements from gm-2.0.12_Linux 9) Send timeout increased to allow time for hardware swaps while jobs are running. 10) Reply to mapper packets in the firmware to improve time for mapper convergance. BUG FIXES 1) Fix gm_ip_timeouts that could occur if the GM driver was called with a misaligned stack. 2) Close a race in the ethernet interrupt handler which could cause a token leak, and eventually a gm_ip_timeout(). 3) Corrects linux bug when exhausting IOMMU slots for registered pages in the middle of grow_hash_page_table. Should only affect ppc64. 4) linux ppc64 bug fix for forking() programs 5) Include all bug fixes from gm-2.0.12_Linux 6) Correct a pointer-to-64integer sign-extension problem on mixed 32bit/64bit arch 7) Reduce the amount of physical memory that GM can pin, and fix the "machine becomes unresponsive when beginning to swap" problem present on some Linux kernels (e.g., RedHat/Suse). 8) Fix a race in the alarm code, which could cause alarms to be dropped. 9) Fix a race with 32bit applications running on a 64bit platform with 2 NICs gm-2.1.1_Linux ENHANCEMENTS 1) Included enhancements from gm-2.0.11_Linux BUG FIXES 1) Included all bug fixes from gm-2.0.11_Linux 2) Removed some inappropriate warnings 3) Eliminated erroneous packet dropping on PCIXD cards. 4) MacOSX IOMMU fixes. 5) Fixed NACK storms (and the resulting performance degradation) for some network loads. gm-2.1.0_Linux ENHANCEMENTS 1) Added dispersive routing support to reduce network congestion hot spots. 2) Added support for PCIXE (LANai2XP) dual-ported interfaces. 3) Updated mapper to support (1) and (2). 4) Revised gm_board_info output to display the additional route information. 5) Disabled support for interfaces other than PCIXD and PCIXE interfaces. 6) Added RELEASE_NOTES file. 7) Added "configure --with-num-routes=1" option to allow users to disable route dispersion. ================================================================ GM-2.0.X Changes ================================================================ gm-2.0.28_Linux (August 21, 2007) gm-2.0.28_Windows (January 4, 2007) BUG FIXES 1) Fix a bug where Windows machines may not see all nodes. gm-2.0.27a_Solaris (September 21, 2006) BUG FIXES 1) Fix a bug where amd64/solaris/gcc does not generate 64-bit libraries correctly. gm-2.0.27_Solaris (September 1, 2006) BUG FIXES 1) Fix a machine panic when Solaris 10's reboot process automatically unloads gm/myri, but out of order. gm-2.0.26_Linux (May 31, 2006) BUG FIXES 1) Fixing problem recognizing F card as (pci14c1,8044) on solaris boxes 2) Fix the harmless situation leading to the warning: "Limited fork() support with GM ports opened" 3) use a bigger portion of the IOMMU on ppc64 when it is dedicated 4) Turn off links when host becomes non-responsive to prevent backing up the fabric by failing to consume packets. 5) Improve reporting on SRAM Parity Error detection. gm-2.0.25_Linux (internal release) ENHANCEMENTS 1) Use kbuild to build the driver for Linux >= 2.6.10 gm-2.0.24_Linux (December 28, 2005) ENHANCEMENTS 1) work around removal of deprecated functions in Linux >= 2.6.14 2) work around cases when BIOS doesn't assign our Expansion ROM, causing gm to fail loading due to kernel thinking there is a pci resource collision. 3) use a bigger portion of the IOMMU on ppc64 when it is dedicated 4) Add API to read counters, gm_get_counters() 5) gm_dma_malloc()'ed memory can now be used with "O_DIRECT" file I/O. 6) Increase fatal send timeout to 15 minutes, to simplify network maintenance on large clusters. BUG FIXES 1) Handle ppc64 machines with no IOMMU (some Xserve) gm-2.0.23_Linux (October 31, 2005) BUG FIXES 1) used_bogus_recv situations were reported in used_bogus_send_cnt 2) Allow GM ethernet driver to use non-GM IOMMU space on ppc64 to avoid resource starvation of myri0 when running large mpich-gm jobs. 3) Avoid compilation warnings with linux kernels >= 2.6.14 ENHANCEMENTS 1) add gm_register_memory_ex_phys() to the GM kernel API to register memory at a given physical/bus address 2) Support for Linux kernel version >= 2.6.11 on powerpc64. gm-2.0.22_MacOSX BUG FIXES 1) Fix problems loading the GM driver on revisions of MacOSX 10.4 newer than 10.4.0 gm-2.0.22_Linux (Aug. 12, 2005) BUG FIXES 1) Trivial changes in the Makefile to fix problems caused by having CDPATH set which can result in 'cd' returning output. 2) Initialize the NIC SRAM before any read activity, to avoid any spurious parity error at init time. 3) Fix leak which caused mapper problem when overlong raw packets received. 4) ppc64/Linux compilation fix with kernels >= 2.6.10. 5) fix possible data corruption on machines where a 0 DMA addr is actually used: typically some POWER4 and POWER5. 6) workaround a possible mpich-gm message corruption problem on linux kernel [2.6.9-2.6.12] by setting vm.legacy_va_layout=1 ENHANCEMENTS 1) Linux: allow private read-only data to be gm_registered (such areas will be upgraded to read-write during registration) 2) Improved interrupt safety with rigorous synchronization. 3) Added Linux "gm_linux_intr_style" module parameter, which may be set to "default", "safest", or "fastest". 4) Add linux configure option: --with-module-dir= to specify a non-default location for the gm kernel modules. 5) Support for newer/upcoming linux releases (2.6.13,2.6.12-mm) 6) Better autodetection for --with-linux/--with-linux-build options 7) Support x86 Suse kernel including the "mm_track" patch gm-2.0.21_AIX (May 13, 2005) BUG FIXES 1) Better detection of false interrupts from Myrinet nic to eliminate performance degradation due to excessive error logging 2) Improved locking in AIX IP to fix possible deadlock in ifconfig 3) Keep separate DMA handles for IP transmit, receive and GM to avoid contention and possible system lockups with IP over Myrinet ENHANCEMENTS 1) Transmit Done interrupt coalescing to improve transmit performance gm-2.0.21_MacOSX (April 29, 2005) BUG FIXES 1) Worked around problems with "echo" in the MacOSX server boot-time shell which was preventing GM from loading at boot. ENHANCEMENTS 1) Added support for MacOSX 10.4 gm-2.0.21_Linux (April 28, 2005) BUG FIXES 1) Linux: remove the "GM: this build might not be supported" message from the kernel log 2) Linux 2.6: disable udev/sysfs usage for GM by default (when using /etc/init.d/gm start script): avoid races in device creation/removal ENHANCEMENTS: 1) Linux 2.6 using udev: allow use of "modprobe gm;modprobe -k gm" (or autoloading) to start/stop gm (including mapper) as an alternative to /etc/init.d/gm {start,stop}" gm-2.0.20_Solaris and gm-2.0.20_Linux (internal releases) BUG FIXES 1) Fixed a bug which would prevent the use of any physical memory above 4GB on Solaris/i86pc and Solaris/amd64. 2) Recognize "ia32e" as an x86_64 variant. 3) Make mt tools build again on x86_64 variants (broken in 2.0.19). 4) Linux2.4/powerpc64+ia64: bug fix associated with the module warning "no activate_page, swapping might cause unresponsive state" 5) Linux: unset any ARCH variable coming the environment to avoid possible conflicts with the kernel use of it 6) Mapper fix to prevent non-convergence due to alarm drops. 7) Mapper fix to prevent non-convergence due to MCP not replying to scouts. gm-2.0.19_Linux and gm-2.0.19_MacOSX (February 25 and 28, 2005) BUG FIXES 1) Fix a fairness bug which could allow a program sending small packets continuously on one port could shut out all send traffic on another port. 2) Fixed firmware crash when processing concurrent remote gm_yp queries. 3) Correctly detect powerpc64 when using the IBM XLC compiler. Previously, it was mis-detected as powerpc (32-bit) with this compiler. 4) On 64-bit Linux systems other than IA64 and Alpha with "configure --disable-32b": install libraries in lib64/ instead of lib/. gm-2.0.18_Solaris (February 11, 2005) ENHANCEMENTS 1) Add Solaris AMD64 support by removing the gm_mmap and gm_segmap entry points in favor of using the devmap API. gm-2.0.18_Linux (February 9, 2005) BUG FIXES 1) Install Linux 64-bit libraries in a "lib64" directory on systems that conventionally do so. (All but Alpha and Itanium.) 2) On mixed 32/64-bit Linux systems, call the 32-bit shared library "libgm.so.0" for binary compatibility with 32-bit systems. 3) For Linux x86_64/AMD64/EM64T systems, automatically enable 32-bit and 64-bit support by default in the "configure" script. 4) Fixed an unlikely segfault in an error path of the gm_yp tests program. 5) Fixed high Ethernet emulation loads unfairly slowing GM performance. ENHANCEMENTS 1) Add support for all combination of icc w/wo -no-gcc in gm.h/gm_stbar.h 2) Added Solaris AMD64 support. 3) Added support for "F-cards" (PCI rev6). gm-2.0.17_Solaris (February 5, 2005) ENHANCEMENTS 1) Add Solaris AMD64 support. BUG FIXES 1) Correct the definition of GM_{ST,READ,WRITE}BAR for different senarios, such as GNUC/SUNPRO_C or sparcv8/sparcv9. 2) Modify configure.in for Solaris AMD64 while not disturbing solaris/x86/gcc platform. Set CC=cc for amd64-pc-solaris only, i not other i386-pc-solaris platforms. 3) modify gm_arch_install make GM loaded on AMD64 correctly. gm-2.0.17_Linux (January 19, 2005) ENHANCEMENTS 1) Make the GM gateway cache and connection hash tables less succeptible to SRAM parity errors. 2) Linux support for gm_registering "huge-pages" 3) 4 level page table support for x86_64 linux kernels >= 2.6.11 BUG FIXES 1) Fixed "gm_yp --each" bug that prevented it from printing results for the node with the largest GM node ID. 2) Fix an sanity check in the linux fork code which was too strict. It could trigger a PANIC(...gm_arch_fork..) under some circumstances. 3) Dont' count as two (or more) independent registrations, the gm-registration of the same page in different ports or processes. 4) Add a memory barrier instruction between event detection and further processing to avoid the possibility of getting stale data (ppc64). 5) Never force PCI-X max_mem_read_byte_count larger than 2048, to avoid triggering bugs in some PCI-X chipsets. 6) Fix page table hash clustering, which was hurting performance for some applications, especially those opening multiple ports. 7) Suppress some dead code in driver/linux which prevented compilation or loading with some kernels >= 2.6.10. gm-2.0.16_Solaris ENHANCEMENTS 1) Add support for solaris 10 on UltraSPARC platforms. 2) Support solaris 9 and 10 on x86 platforms. gm-2.0.16_Linux (December 3, 2004) BUG FIXES 1) Add missing header in gm_autostress to fix compilation problems. 2) Rename a variable in gm_stress.c to avoid a name conflict in Gentoo Linux. 3) Add additional strings in our startup script that are needed for the version of insserv used by chkconfig in SLES9. 4) Improve some assertion checks in the gm driver that had become too conservative for 2.6 kernels (or at least some of them). ENHANCEMENTS 1) Improves error reporting in case of MCP failure. 2) Automatically generate a SCALABILITY file for each source release, reporting the scalability limits of GM on various systems for each supported NIC. 3) Added new "gm_yp" user-level GM YP query utility. This utility make it easier to determine which nodes are usable on very large clusters which may not have all nodes properly configured at the same time. 4) Added new "gm_yp()" API function for performing GM YP queries. 5) Added a new "gm.mapper_id" YP query to report whether the nodes mapper is running, and to report the map version and mapper that configured the node. On very large clusters with some malfunctioning nodes, this makes it easy to determine the largest subset of nodes with internally consistent routes. 6) Added a new "gm.version" YP query to make it easy to confirm that all nodes are running the same version of GM. 7) Added a new "gm.idle_ports" YP query to report which GM ports are not currently in use. gm-2.0.15_MacOSX (November 15, 2004) BUG FIXES 1) Install GM startup script as /System/Library/StartupItems/GM/GM on MacOSX rather than /System/Library/StartupItems/GM/gm to fix issues with loading GM at boot on MacOSX systesm with case sensitive filesystems. gm-2.0.15_Linux (November 10, 2004) ENHANCEMENTS 1) Added mapper support for xbar32 networks (those using 14U enclosures). 2) Linux: if the "--with-linux" option is not specified, the default is now "/lib/modules/`uname -r`/build" (was /usr/src/linux). This default location is the one used by all current major distributions. 3) Linux: Support for sysfs and automatic creation of device files by udev. 4) New gm_autostress network debugging tool. It randomly sends 4KB bogus raw packets out each interface in the host along randomly selected routes to generate network traffic on as many links as possible (including to XM Ethernet bridge nodes). Myrinet monitoring line cards can then be used to detect any in-use link with CRC errors. When stressing a network for debugging purposed, one will want to run gm_autostress on as many nodes as possible to maximize the network load. 5) Linux: minor updates for recent/upcoming 2.6 releases 6) Linux/ppc64: auto-detect IOMMU size BUG FIXES 1) Fix a bug that would cause the mapper to spontaneously exit if it ever received an oversized bogus packet (such as those generated by gm_autostress). 2) Add a watchdog timer to ensure the firmware does not auto-reply to mapper packets if the host crashes or is unresponsive for more than 30 seconds. Firmware auto-replies in this case can cause map distribution to fail on other nodes in the cluster. gm-2.0.14_Linux ENHANCEMENTS 1) If the NIC "not responding" condition is ever encountered, print a message to the console indicating if the cause is a NIC SRAM parity error. 2) Removed the firmware-imposed 1600 node limit. A 2048-node limit remains in the mapper but will be lifted soon. BUG FIXES 2) Eliminate duplicate packets when gm_get() is used with gm_put() or gm_*send*(). gm-2.0.13_Linux and gm-2.0.13_MacOSX ENHANCEMENTS 1) Support for Linux/x86 kernels with 4G/4G split (including Fedora). 2) The firmware page table cache holds twice as many PTEs without requiring more memory. 3) The firmware is significantly more tolerant of SRAM parity errors, especially when idle. 4) Implement /etc/init.d/gm {start|stop} mapper (without module load/unload) BUG FIXES 1) Fix problem where stale mapper state is left in MCP. This can result in mappers appearing to become inoperative when the active mapper is moved from one host to another without a GM reload. 2) RHEL3 page_count and ppc64 patches 3) Fix problem which could result in YP_CANCEL timeout when running older versions of MPICH (pre- 1.2.5..11). gm-2.0.12_Linux (October 12, 2004) ENHANCEMENTS 1) Lanai SRAM parity and other firmware errors are now propagated to the application rather than just silently hanging the firmware. 2) gm_board_info now reports node type for non-GM nodes 3) New command gm_purge to remove stale node entries from gm_board_info output which show up as "????" 5) Improve fork() support for more variants of linux 2.6 kernels, and possibly other patched kernels 6) After an SRAM perity error is detected, gather and report more information about it. 7) Improve performance when receiving packets from ethernet hosts behind Myricom XM Ethernet bridges. 8) Support variant of linux 2.6 with new VM 9) Prevent some NIC parity errors by reloading the firmware program .text section each time a port is opened. 10) Reply to mapper packets in the firmware to speed improve time for mapper convergance. 11) Send timeout increased to allow time for hardware swaps while jobs are running. BUG FIXES 1) Fix gm_ip_timeouts that could occur if the GM driver was called with a misaligned stack. 2) Close a race in the ethernet interrupt handler which could cause a token leak, and eventually a gm_ip_timeout(). 3) linux/ppc64 bug fix for forking() program 4) Eliminate a send deadlock for dense communication patterns, especially those using gm_get(). 5) Fix sign-extension problem from 32bit pointer to 64bit integer on mixed 32/64bit archs. 6) Reduce the amount of physical memory that GM can pin, and fix the "machine becomes unresponsive when beginning to swap" problem present on some Linux kernels (e.g., RedHat/Suse). 7) Fix race in the alarm code, which would cause alarms to be dropped 8) Fix a race with 32bit applications running on a 64bit platform with 2 NICs gm-2.0.11_MacOSX_FreeBSD BUG_FIXES 1) Limited memory registration on G5s to prevent IOMMU exhaustion (MacOSX) 2) Fixed several bugs that would prevent the driver from unloading cleanly (MacOSX) gm-2.0.11_Linux (March 31, 2004) ENHANCEMENTS 1) Changed the number of send/receive tokens, so the same values are used on all platforms (does not affect ia32). BUG_FIXES 1) Fix gm_yp bug triggered by interrupting gm_board_info with SIGSTOP (or other signal) 2) Fix a memory corruption problem occuring with 2.0.10 with Redhat AS kernels 3) Fix a bug in which could prevent ethernet emulation from transmitting packets after a connection timeout. 4) Fix module generation when using linux 2.6 kernel on ia64 5) Add support for linux versions >= 2.6.4 6) Fixed RedHat not auto-unloading the GM drivers on shutdown. 7) Fixed a "gm_allsize -v" bug. gm-2.0.10_Solaris ENHANCEMENTS 1) Incorporated the newest mapper change. 2) Added support for Solaris/x86. gm-2.0.10_Linux ENHANCEMENTS 1) Improve ethernet emulation performance for interfaces with small (1500 byte) MTUs. 2) Linux/powerpc64 : you can now boot without eeh-force-off 3) Port to linux-2.6.x kernels 4) Modified mapper parameters to support 2 map files per NIC (one for each physical port on PCIXE cards). 5) Added a --port= parameter to gm_set_name to allow the host name to be changed while the mapper is running. 6) Added "-R" (ring) option to gm_stress to generate traffic around a ring. BUG_FIXES 1) Fixed bug which causes ethernet emulation to stop working after receiving a corrupted IP packet. 2) Fix a linux bug causing "already locked page" harmless message or sometimes a panic("!was_locked...") 3) Fix a bug in gm_set_route_ex() that can interfere with mapping. 4) Fix PCIXE card hardware initialization. 5) Various mapper fixes, making the mapper incompatible older mappers on remote nodes. gm-2.0.9_Windows BUG_FIXES 1) Fixed an inability to acquire a resource on PAE systems. 2) Fixed some pointer arithmetic to use 64 bits for PAE support. 3) Set the ioctl status value to be the same as the return value. gm-2.0.9_Linux ENHANCEMENTS 1) Update the mapper, for peaceful coexistence with Myricom MX, Myricom XM Ethernet bridges, and gm-2.1.0 on the same Myrinet. 2) Support 64k pages for Itanium. 3) Added support to gm_simpleroute to allow customers to perform hardware loopback tests. 4) Intel C compiler v8.0 compatibility added. 5) More efficient use of kernel memory on large memory 32-bit linux hosts. BUG_FIXES 1) Fixed a bug which could cause driver memory corruption when multiple processes were opening and closing ports simultaneously. 2) Fixed a bug which could result in a program which closed a GM port hanging forever. /bin/ps would also hang. 3) Fixed bug which causes ethernet emulation to stop working after a while. 4) Fixed bug causing port hangs when using gm_get() in an environment with high CRC error rate. 5) Fixed GM memory registration bug on machines running a kernel restricted to 4Gb of memory (non-PAE kernel) with memory strictly greater than 4Gb. 6) Fixed a bug which occasionally caused Lanai prints to have trailing garbage 7) Fixed a bug which caused ethernet-over-myrinet multicast to not work properly. 8) Fixed gmcp_mod_rand() randomness, for better error recovery. 9) Secure /dev/gmp* devices on Solaris. 10) Restore gm_allsize "--fork-parent" option. 11) Fix incompatibility with older Linux kernels that don't export set_page_dirty(). gm-2.0.8_Solaris BUG FIXES 1) Fixed a bug in solaris ethernet driver which only affects x86's. 2. Fixed a signal handling bug in solaris driver. gm-2.0.8_Linux ENHANCEMENTS 1) Provided support for shm segments and shared file mappings on Linux. BUG FIXES 1) Fixed a bug which could result in memory corruption on x86 Linux machines with more than 4GB of RAM. 2) Fixed firmware resource leak (probably introduced in GM-2.0) that could cause ports to become unusable and report "port still shutting down" when the client programs attempt to open the port. 3) Allow non-GM kernel modules that include gm.h to be compiled with -DGM_KERNEL. 4) Eliminate the inclusion of the user header sys/types.h when non-GM kernel modules include gm_internal.h, which they should not need to do. 5) Reprioritize event handling on LANaiX interfaces (PCIXD and PCIXE cards) to avoid a firmware lockup caused by hardware send FIFO send completion count overrun. gm-2.0.7_MacOSX_FreeBSD BUG FIXES 1) Fixed a mapper bug triggered by non trivial xbar compares. 2) Relaxed driver/library version checking to gm-1.6 levels. ENHANCEMENTS 1) Ethernet over Myrinet - Promiscuous mode now off by default and settable using standard interfaces. 2) Better support for registering large amounts of memory (MacOSX) 3) Support for the IBM Visual Age compilers (MacOSX) 4) Support for G5 hosts and MacOSX 10.2.7 (MacOSX) 5) Improved support for FreeBSD 5 (FreeBSD) gm-2.0.6_Linux BUG FIXES 1) Fix 32-bit application support on 64-bit kernels, effecting AMD64 and POWERPC64. 2) Much faster mapping, thanks to a mapper timeout fix. 3) Fixed Ethernet driver unloading while sending/receiving Ethernet packets. 4) Restore the use of the used_bogus_send_cnt and used_bogus_recv_cnt counters. 5) Linux driver now calls pci_enable_device() for LinuxBIOS compatibility. ENHANCEMENTS 1) Ethernet gateway caching added, for efficient use of LANaiXM Ethernet bridges embedded in Myrinet switch Gigabit Ethernet line cards. 2) Added gm_register_memory_ex() to the GM API. 3) Upgrades to the example programs in gm/examples/. The changes mainly fall into these categories: * to comply with the change in the GM API between GM-1 and GM-2; * to make the sending and reciving programs use different ports, so that they may be run on the same Myrinet interface; and * to improve the coding style and eliminate unnecessary GM API calls. 4) Made the --verbose ouput of some install scripts more verbose. 5) The Linux "gm stop" script now ifconfig's down all myri* interfaces. 6) Added support for the amd64 PGI compiler. gm-2.0.5_Linux BUG FIXES 1) Eliminate the possibility of message corruption caused by a race condition when other memory is deregistered during the message transfer. gm-2.0.4_Linux BUG FIXES 1) Configure LANaiX hardware properly to support hardware flow control, improving many-to-one performance. 2) Increase GM_SEND_TIMEOUT for compatibility with the LANaiX's deep HW FIFOs, improving many-to-one performance. 3) Fix NACK generation to avoid all send timeouts not caused by packet corruption, misrouting, or connection initiation, so the increased GM_SEND_TIMEOUT should not effect performance. 4) Fix misreporting of unstripped route bytes as misaligned CRC32's in the output of gm_counters. 5) Reorganized the output of gm_counters and gm_debug for clarity. 6) Eliminate false "LANai not responding" reports by eliminating the race condition that caused them. 7) Fix interrupt delivery testing. 8) Fixed a mapper bug that was causing some network links to be overloaded, effecting performance on large clusters. 9) Fixed UDP performance drop introduced in gm-2.0.3. 10) Fixed remote DMA accesses on mixed 32-bit/64-bit networks. ENHANCEMENTS 1) Added mapper support for static maps. 2) Added --clear flag to gm_counters to clear counters. (privileged command) 3) Add a "--enable-perr-polling" configuration option to poll PCIXD interfaces each second to detect the PCI PERR (parity error) bit. This option should only be used on systems which ignore PCI parity errors. 4) Added "gm_stress --put" option. gm-2.0.3_Linux BUG FIXES 1) On SMP Linux kernels, fixed a low-level driver blocking bug that could cause blocking to hang. 2) Fix buffer overrun in _gm_build_id for users who build GM in directories with very long paths. 3) Fix some internal structure alignment problems on some systems using 64-bit pointers. 4) Fix sbin/gm_install_drivers to handle unusual characters in command line options. 5) Render harmless calling gm_allow_remote_memory_access() multiple times, since at least one client application does this. 6) Fix a memory registration bug that could cause DMAable pages to be swapped out. gm-2.0.2_Linux BUG FIXES 1) Check for LANai SRAM parity errors on LANaiX hardware. 2) Adjust payload_len in Ethernet-over-Myrinet packets for compatibility with Myricom LANai XM Ethernet bridges. 3) Make GM less likely to experience GM_SEND_TARGET_NODE_UNREACHABLE timeouts on networks with very high CRC error rates. 4) Explicitly export symbols in the Linux kernel, so we export only the intended symbols. gm-2.0.1_Linux BUG FIXES 1) Fixed incorrect NACK processing that was causing "reliable" packets to be corrupted, open ports to appear to be closed, and myriad other misbehaviors when triggered. 2) Initialize state for node_id 0 (the unused node ID) to prevent user applications from triggering a firmware assertion if they incorrectly pass this node ID to the GM API. 3) Fixed some mapper problems affecting large clusters. 4) Fixed a mapper bug that prevented gm_board_info from reporting the network as fully configured. 5) Restored "(mapper)" labelling in the output of gm_board_info, which had disappeared in gm-2.0. 6) Fixed port closure page table cleanup. If a client application exited uncleanly (without deregistering all of its memory) then the driver might not properly remove all page table entries for the port, which could lead to data corruption for subsequent programs using the same port. 7) Fail gracefully if there are more nodes on the network than can be supported by the firmware. 8) Workaround an apparent bug in ServerWorks Grand Champion PCI-X chipsets triggered by PIO reads by avoiding PIO reads during regular operation. gm-2.0_Linux ENHANCEMENTS 1) Added support for PCIXD interfaces. 2) Restructured firmware for more flexibility. 3) Improved Ethernet-over-Myrinet performance and reduced overhead. 4) Eliminated global "GM node ID" assignment from the mapper, greatly simplifying mapping. 5) Improved Mapper that supports multiple mappers and is automatically started by the driver loading scripts. 6) gm_get() support added (single-sided remote DMA read) 7) New Ethernet-over-Myrinet encapsulation to support Ethernet bridging and route dispersion. 8) Added software loopback support. Packets to and from the same network interface card are looped back in the network interface card for improved performance and to fully support point to point (switchless) Myrinet connections. 9) Made GM library incur fewer cache misses. 10) 16 Ports supported by default (13 available for customer applications). 11) Revised DMA performance measurements to used chained DMAs to better measure the performance potential of PCI-X. 12) Added support for automatic driver and mapper loading at boot for Red Hat, Debian, and Suse 8.2. BUG FIXES 1) Make the GM API header (gm.h) not generate and warnings under "gcc -Wall -Wundef -W" and only a single warning under "icc -Wall" (the Intel compiler). IMPORTANT API CHANGE There is a small but important semantic change to the GM API, which makes the GM-2 API not fully backwards compatible with the GM-1 API. If you are using middleware such as MPICH-GM or Sockets-GM, you must use a recent release especially modified for GM-2 compatibility. This change may require changes in other software layered above the GM API. The semantic change is as follows: The GM "node IDs" passed to and from the API are now local IDs that only have meaning only for ports on a single network interface card (NIC). These value should not be passed over the network to ports associated with other NICs. If a program needs to pass a node reference over the network, it can use gm_node_id_to_global_id() to generate 32-bit global IDs that can safely be passed around the network, but must be converted back to a local node ID on the receiver with gm_global_id_to_node_id(). (Global IDs should never be passed to other GM API functions.) gm_unique_id's (NIC MAC addresses) and host names may be used similarly, but are more expensive. OTHER USER-VISIBLE CHANGES 1) GM-2 and GM-1 should not be used on the same network at the same time. 2) Added "--no-yp" option to gm_board_info. Since GM-2 uses network queries to resolve some information about the network state, and this option prevents all such queries when gm_board_info is run. 3) Added "--verify" option to gm_board_info. Host name to node ID checking is now optional in gm_board_info, because it generates a significant amount of network traffic (O(N^2) packets on an N node network). 4) Added "--wait" option to gm_board_info, which causes it to wait for a mapper to configure the network before reporting. 5) The output of gm_board_info is somewhat different for PCIXD cards than earlier cards. This may affect some users' scripts if they parse the output of gm_board_info. 6) Mapper state is now stored in /var/run/gm_mapper/ when the mapper is started automatically. 7) Some GM configuration files may exist in /etc/gm/. 8) The user-level mapper must be running on all nodes to be mapped. ------------------------------------------------------------------------------ gm-1.6.7 (March 9, 2007) BUG FIXES 1) Fix a firmware bug that could rarely cause 4GB packets to be sent with bad CRCs, leading to 12 second performance hiccups for rare applications. ENHANCEMENTS 1) Require lanai-gcc-2.95.2..1.6 for optimal performance ----------------------------------------------------------------------------- gm-1.6.6 (internal release only) BUG FIXES 1) Fix a linux bug causing "already locked page" harmless message or sometimes a panic("!was_locked...") ----------------------------------------------------------------------------- gm-1.6.5 (February 8, 2004) ENHANCEMENTS 1) Provided support for shm segments and shared file mappings on Linux. BUG FIXES 1) Fix for congestion problems which resulted in spurious "node unreachable" errors under heavy load. 2) Consume packets even when host machine becomes unresponsive in order not to back up packets into the fabric and clog links. 3) Fixed GM memory registration bug on machines running a kernel restricted to 4Gb of memory (non-PAE kernel) with memory strictly greater than 4Gb. 4) Fixed a bug which could cause driver memory corruption when multiple processes were opening and closing ports simultaneously. 5) Fixed a bug which could result in a program which closed a GM port hanging forever. /bin/ps would also hang. ------------------------------------------------------------------------------ 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. 3) Support for AIX 4.3 and AIX 5L 5.1. ----------------------------------------------------------------------------- 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.