Linux Fast-STREAMS -- history of user visible changes. 2007-06-24 $Id$ Copyright (c) 2001-2007 OpenSS7 Corporation. Copyright (c) 1997-2000 Brian Bidulock See the end for copying conditions (for this file). The sections that follow provide information on OpenSS7 releases of the `Linux Fast-STREAMS' package. Major changes for release streams-0.9.2.3 ------------------------------------------ This is the twelveth `OpenSS7 Project' release of `Linux Fast-STREAMS'. `LiS' was fully deprecated as of the previous release and `Linux Fast-STREAMS' is the only STREAMS package contained in the OpenSS7 Master Package (since `openss7-0.9.2.D'). This release is a stable, production grade release. The release includes maintenance support for recent distributions and tool chain, but also includes some performance and feature upgrades and inspection bug fixes. Major features since the last public release are as follows: - Support build on openSUSE 10.2. - Support build on Fedora 7 and 2.6.21 kernel. - The `strace(8)', `strerr(8)' utilities and `log(4)' driver have had some corrections. The STREAMS trace logger is now an excellent way for trace logging of fielded production drivers. A number of OpenSS7 drivers have already been converted to use this facility. - Support build on CentOS 5.0 (RHEL5). - Support build on Ubuntu 7.04. - Significant rework of the Stream head and both enabling and backenabling utilities. Handling of enabling flags QWANTR and QWANTW were not being performed quite properly. Also, service procedures for the read side stream head queue was added to defer wakeups when possible. The result is very significant performance improvements (like it wasn't fast enough already). STREAMS-based pipes in this package now perform 2 to 5 times (yes %200 to %500) faster than the old legacy 4.1BSD/SVR4 Linux pipes currently in the kernel: perhaps we should shout the "Fast" too. The impact of these performance changes is that `Linux Fast-STREAMS' now runs faster and looser on SMP systems: if your drivers have race conditions they will likely be exacerbated by this version. - Corrected a few bugs. See BUGS in the release for more information. - Significant rework of STREAMS syncrhonization. OSF/1-Mentat style syncrhonization levels, Solaris style perimeters, and SVR 4.2 style load refusal are fully supported. Some idiosynchracies of AIX, HP-UX, MacOT and VxWorks is also supported. - Updated to gettext 0.16.1. - Changes to support build on 2.6.20-1.2307.fc5 and 2.6.20-1.2933.fc6 kernel. - Supports build on Fedora Core 6. - Support for recent distributions and tool chains. Major changes for release streams-0.9.2.2 ------------------------------------------ This is the eleventh `OpenSS7 Project' release of `Linux Fast-STREAMS'. `LiS' was fully deprecated as of the previous release and `Linux Fast-STREAMS' is now the only STREAMS package contained in the OpenSS7 Master Package (since `openss7-0.9.2.D'). This release is a stable, production grade release for `Linux Fast-STREAMS'. The release is primarily a maintenance release to support recent distributions and tool chain. Major features since the last public release are as follows: - Fix for clone open failure locking problems, demand loading of clone minors, an error in clone minor device deregistration, and an error in queue syncrhornization. See `http://www.openss7.org/codefiles/streams-0.9.2.3/BUGS' in the release for more information. - Added feature to perform automatic reference counting of modules for the `esballoc(9)' free routines on Linux 2.6 kernels. See new `esballoc(9)'. - Added versions to all exported symbols. Made LFS unique functions GPL export. - Improvements to the common build environment with better support for standalone package builds on 2.4 kernels. - Support for autoconf 2.61, automake 1.10 and gettext 0.16. - Support for Ubuntu 6.10 distribution and bug fixes for i386 kernels. Major changes for release streams-0.9.2.1 ------------------------------------------ This is the tenth `OpenSS7 Project' release of `Linux Fast-STREAMS'. The release number has been moved from the 0.9a sequence to 0.9.2 to indicate that the package has moved to a production grade. `LiS' has been fully deprecated by this release and `Linux Fast-STREAMS' is now the only STREAMS package contained in the OpenSS7 Master Package (`openss7-0.9.2.D'). This release is a stable, production grade release for `Linux Fast-STREAMS'. The release is primarily a maintenance release. Some minor defect corrections have been applied, but no significant development has occurred. The release provides the following enhancements and fixes: - Testing of, and a few bug corrections to, the strlog() feature. Trace and error logging working well. - Support for most recent 2.6.18 kernels (including Fedora Core 5 with inode diet patch set). - The package now builds a replacement libLiS and libpLiS library so that user applications written to work with LiS-2.18.1 through LiS-2.18.6 do no need to be recompiled. Added versions to all library symbols in all three libraries. - Minor bug fixes to STREAMS library. isastream(3) and fattach(3) must not contain an asynchronous thread cancellation point, but they could. Added asynchronous thread cancellation protection to these functions to remove any thread cancellation points. - Now builds 32-bit compatibility libraries, as well, and tests them against 64-bit kernel modules and drivers. The `make installcheck' target will now automatically test both 64-bit native and 32-bit compatibility versions, one after the other, on 64-bit platforms. - Many documentation updates for all OpenSS7 packages. Automated release file generation making for vastly improved and timely text documentation present in the release directory. - Dropped support for `LiS'. - Updated `init' scripts for proper addition and removal of modules. - Start assigning majors at major device number 231 instead of major device number 230. Assign major device number 230 explicitly to the clone device. Package will now support extended ranges of minor devices on 2.6 kernels under `Linux Fast-STREAMS' only. `streams' now supports expanded addressable minor device numbers, permitting 2^16 addressable minor devices per major device number on 2.6 kernels: `LiS' cannot support this change. - Better detection of SUSE distributions, release numbers and SLES distributions: support for additional `SuSE' distributions on `ix86' as well as `x86_64'. Added distribution support includes `SLES 9', `SLES 9 SP2', `SLES 9 SP3', `SLES 10', `SuSE 10.1'. - Improved compiler flag generation and optimizations for recent `gcc' compilers and some idiosyncratic behaviour for some distributions (primarily SUSE). - Optimized compilation is now available also for user level programs in addition to kernel programs. Added new `--with-optimize' option to `configure' to accomplish this. - Added `--disable-devel' `configure' option to suppress building and installing development environment. This feature is for embedded or pure runtime targets that do not need the development environment (static libraries, manual pages, documentation). - Added `send-pr' script for automatic problem report generation. - The package will now build doxygen(1) html documentation with the 'doxy' make target. See 'make help' or README-make in the distribution for more information. Major changes for release streams-0.7a.6.rc3 --------------------------------------------- Third release candidate. - Minor bug fixes to STREAMS library. isastream(3) and fattach(3) must not contain an asynchronous thread cancellation point, but they could. Added asynchronous thread cancellation protection to these functions to remove any thread cancellation points. - The package will now build doxygen(1) html documentation with the 'doxy' make target. See 'make help' or README-make in the distribution for more information. - Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modules and drivers. The `make installcheck' target will now automatically test both 64-bit native and 32-bit compatibility versions, one after the other, on 64-bit platforms. - Added versions to all library symbols. - Automated release file generation making for vastly improved and timely text documentation present in the release directory. - Many documentation updates for all OpenSS7 packages. - This release candidate includes the changes made to the strsctp drivers at the `2006 SCTP Interop' at the `University of British Columbia'. This version was interoperability tested with all implementations present. - This release candidate provides support for additional `SuSE' distributions on `ix86' as well as `x86_64'. Added distribution support includes `SLES 9', `SLES 9 SP2', `SLES 9 SP3', `SLES 10', `SuSE 10.1'. - Better detection of SUSE distributions, release numbers and SLES distributions. - Optimized compilation is now available also for user level programs in addition to kernel programs. Added new `--with-optimize' option to `configure' to accomplish this. - Improved compiler flag generation and optimizations for recent `gcc' compilers and some idiosyncratic behaviour for some distributions (primarily SUSE): - Remove `-fno-reorder-blocks' and `-fno-reorder-functions' options added by some recent 2.6 `Makefile's for `x86_64' architecture: it impedes performance optimizations. - Remove `-ffunction-sections' option added by some recent 2.6 `Makefile's for `x86_64' architecture: this is an insane option and should never have been used. - Add `-ffreestanding' that some older 2.6 `Makefile's (such as that with `SLES 9 2.6.5' kernel) neglect to add to the `gcc' command line. - `SLES 10' expands the directory before `autoconf.h' on the `gcc' command line for some reason. `configure' script watches out for this now. - Updated `init' scripts for proper addition and removal of modules. - Start assigning majors at major device number 231 instead of major device number 230. Assign major device number 230 explicitly to the clone device. - `streams' now supports expanded addressable minor device numbers, permitting 2^16 addressable minor devices per major device number on 2.6 kernels: `LiS' cannot support this change. This release is an internal release candidate and was not publicly released. Major changes for release streams-0.7a.6.rc2 --------------------------------------------- Second release candidate. This release candidate also contains the results of performance testing of the new second generation "UDP" driver (implemented completely in "STREAMS" instead of using an internal socket). This release candidate also contains support for `SuSE 10.1'. This release is an internal release candidate and was not publicly released. Major changes for release streams-0.7a.6rc1 -------------------------------------------- Release candidate for Mark Fugate. Added `--enable-devel' `configure' option for embedded targets. Added `send-pr' script for automatic problem report generation. This release is an internal release candidate and was not publicly released. Major changes for release streams-0.7a.5 ----------------------------------------- This release is primarily to support additional compilers (gcc 4.0.2), architectures (x86_64, SMP, 32-bit compatibility), recent Linux distributions (EL4, SuSE 10, LE2006, OpenSuSE) and kernels (2.6.15). - Changes to wait queues. Split single wait queue into four independent wait queues. Reworked wait queues for both old style (2.4) and new style (2.6) semantics. - Changes to satisfy gcc 4.0.2 compiler. - Corrected build flags for Gentoo and 2.6.15 kernels as reported on mailing list. Build and run tested on FC4 i686 and x86_64 kernels based on 2.6.15. - Corrections for and testing of 64-bit clean compile and test runs on x86_64 architecture. Some bug corrections resulting from gcc 4.0.2 compiler warnings. - Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMP on x86_64. This package should now run well on N-way Xeons even with Hyper-Threading enabled. - Corrections and validation of 32-bit compatibility over 64-bit on x86_64. Should apply well to other 64-bit architectures as well. This is a public beta test release of the package. Major changes for release streams-0.7a.4 ----------------------------------------- This is primarily a bug fixes release and corrections resulting from testing. Major changes for release streams-0.7a.3 ----------------------------------------- With this release version numbers were changed to reflect an upstream version only to be consistent with other OpenSS7 package releases. All `RPM' release numbers will be `-1$(PACKAGE_RPMEXTRA)' and all `Debian' release numbers will be `_0'. If you wish to apply patches and release the package, please bump up the release number and apply a suitable release suffix for your organization. We leave `Debian' release number `_1' reserved for your use, so you can still bundle the source in the `.dsc' file. Major changes for this release include build against Linux 2.6 kernels and popular distributions based on the 2.6 kernel as well as wider distribution support. This was an internal beta test release and was not released publicly. Major changes for release streams-0.7a-3 ----------------------------------------- Updates to common build process. Documentation updates. This was an internal alpha test release and was not released publicly. Major changes for release streams-0.7a-2 ----------------------------------------- Removed all XTI/TLI and Linux networking code, headers and documentation from streams distribution and set epoch at 0. Linux networking code has been migrated to the strxnet, strinet and strsctp packages. The purpose for doing this was to allow the Linux networking to build against `Linux Fast-STREAMS' as well as `Linux STREAMS' and is a preparation for phasing out LiS and phasing in LfS. This was an internal alpha test release and was not released publicly. Initial release streams-0.7a-1 ------------------------------- This is the initial release of the Linux Fast-STREAMS package for Linux. This is intended as a high-performance, production replacement for `Linux STREAMS (LiS)'. Linux Fast-STREAMS has the following features: - optimized for Linux kernels. - prepared for mainstream Linux kernel adoption. - lindented and follows kernel coding practises. - compatibility modes for AIX, HPUX, OSF, Solaris, UnixWare, SVR 4.2 and LiS. - supports all major SVR4.2 variants. - licensed under GPL with commercial licensing available. - supports full SVR 4.2 MP synchronization models. - runs at SoftIRQ. - provides common SVR 4.2 system tunable parameters and sysctls. - provides /proc file system access for debugging and performance tuning. - provides a full set of common STREAMS modules and drivers. - provides full name-streams device and shadow special file system support. This was an internal alpha test release and was not released publicly. ----- ========================================================================= Copyright (c) 2001-2007 OpenSS7 Corporation Copyright (c) 1997-2000 Brian Bidulock All Rights Reserved. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work. ------------------------------------------------------------------------- U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on behalf of the U.S. Government ("Government"), the following provisions apply to you. If the Software is supplied by the Department of Defense ("DoD"), it is classified as "Commercial Computer Software" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any successor regulations) and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency of the Government other than DoD, it is classified as "Restricted Computer Software" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR (or any successor regulations). ========================================================================= Commercial licensing and support of this software is available from OpenSS7 Corporation at a fee. See http://www.openss7.com/ ========================================================================= vim: ft=README tw=72 nocindent nosmartindent formatoptions+=tcqlorn