Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
News

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."
This discussion has been archived. No new comments can be posted.

Next Generation POSIX Threading Version 1.9.0

Comments Filter:
  • by Anonymous Coward
    NGPT Release 1.9.0 is the first "unstable" release of the NGPT 2.0 development tree. This release
    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.
  • ...It will also enable Linux to provide threading services that are more in line with the capabilities of the commerical Unix operating system such as IBM AIX and SGI IRIX.

    Cough - no mention of sun threads (Solaris).

    • From Solaris 2.5 to Solaris 8, POSIX threads on Solaris have been built on Sun threads. My understanding is that with Solaris 9, Sun has finally decided that POSIX threads are here to stay, and built their Sun threads on top of POSIX threads.
    • Cough - no mention of sun threads (Solaris)

      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.

  • It provides process-shared mutexes under Linux -- but we can already do that with spin-locks.

    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!

Love may laugh at locksmiths, but he has a profound respect for money bags. -- Sidney Paternoster, "The Folly of the Wise"

Working...