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