
Next Generation POSIX Threading Version 1.9.0 15
axehind writes "IBM announced release 1.9.0 of NGPT (Next Generation POSIX Threading). The goal of this project is to attempt to solve the problems associated with the use of the pthreads library on Linux and improve significantly on the POSIX compliance of pthreads on Linux. It's licensed under the LGPL and can be downloaded here."
Next Generation POSIX Threading (Score:1, Informative)
is fully suitable as a replacement for LinuxThreads by either a single user or group or and entire
distribution. The NGPT team plans to do releases almost weekly of this 1.9.x tree until the release
of NGPT 2.0.
In this release, we've concentrated on primarily on a single area, shared mutexes. NGPT mutex operations
now respect the pshared option. Please note, however, this is very early code and could cause you
some problems.
The binary RPMs supplied with this release are based on and built for use with a 2.4.19pre8 or better
kernel that has the new "officially" sanctioned support for NGPT. In addition it is necessary for
you to apply the new patch-futex-2.4.19-pre8 patch, included in this release. This patch is based on
new functionality already provided in the 2.5 kernel that will eventually be backported to the 2.4
kernel and support. NGPT takes advantage of the functionality provided by this patch to efficiently
handle mutexes, both shared and non-shared. This patch is **ABSOLUTELY REQUIRED**. NGPT will not
function without it. The installation instructions have changed a bit as well and you should
check the INSTALL file for the updated instructions.
You can build the library from source by downloading the source tarball or source rpm and
consulting the INSTALL file.
If you are running with a 2.5.x experimental kernel, it's best that run with 2.5.20 or higher since
it will already have the required changes for NGPT. You will also have to rebuild NGPT from either
the source tarball or rpm.
As an UNSTABLE RELEASE, this release is not suitable for use in a production environment, however, it
should be noted that we have done fairly extensive testing and you should find this release relatively
free of problems. If you encounter any problems with this release please post them to the NGPT website
and the development team will address them.
Known Problems
==============
1. In LinuxThreads, credentials are thread based. In NGPT running on a uniprocessor machine,
credentials are process based as demanded by POSIX. However, on an SMP machine, this is
not yet true.
2. This release will work only on IA32 (x86), IA64, PowerPC and S/390 architectures. We're
always looking for folks with specific platform experience to port NGPT to additional
hardware platforms.
3. There is currently no built-in support in gdb for debugging NGPT based applications. However,
to debug a program linked with NGPT you can set the environment variable MAXNATIVETHREAD=1 to
disable M:N threading making it relatively simple to use the standard issue gdb.
4. NGPT has only been tested with 2.5.20 or higher of the experimental kernels.
Humorous (Score:2)
Cough - no mention of sun threads (Solaris).
Re:Humorous (Score:2)
Re:Humorous (Score:1)
The fact that Sun called their threads "Light Weight Processes" might give you a clue why that might be ;-)
"No, you can't just call fork() and pretend it's a thread!"
Jon.
Very nice, but how does it actually help? (Score:1)
What about process-shared semaphores in shared memory? There's no mention of those in change log or release notes. You could fake semaphores with spin-locks (and lots of spinning) or use SysV semaphores. So that hasn't changed.
Support for dual-CPU boxes? Not yet, apparently.
The NGPT folks had initially thought that they'd make the PTHREAD_PROCESS_SHARED attribute available almost a year ago, so, if you can hack this stuff, and have time, please help them!