Updated: 24-SEP-2003 (Use your browsers' Reload button to ensure you're viewing the most recent version)
VMS721_PTHREAD-V0400 (Alpha V7.2-1) PTHREAD ECO Summary
*OpenVMS] VMS721_PTHREAD-V0400 (Alpha V7.2-1) PTHREAD ECO Summary
New Kit Date: 20-SEP-2002
Modification Date: Not Applicable
Modification Type: NEW KIT
Copyright (c) Compaq Computer Corporation 2001,2002. All rights reserved.
PRODUCT: OpenVMS Alpha
COMPONENT: PTHREADs
SOURCE: Compaq Computer Corporation
ECO INFORMATION:
ECO Kit Name: VMS721_PTHREAD-V0400
DEC-AXPVMS-VMS721_PTHREAD-V0400--4.PCSI
ECO Kits Superseded by This ECO Kit: None
ECO Kit Approximate Size: 1376 Blocks
Kit Applies To: OpenVMS Alpha V7.2-1
System/Cluster Reboot Necessary: No
Rolling Re-boot Supported: N/A
Installation Rating: INSTALL_3
3 - To be installed on all systems running
the listed versions of OpenVMS which
are experiencing the problems described.
Kit Dependencies:
The following remedial kit(s) must be installed BEFORE
installation of this kit:
VMS721_UPDATE-V0300
In order to receive all the corrections listed in this
kit, the following remedial kits should also be installed:
None
ECO KIT SUMMARY:
An ECO kit exists for PTHREADS on OpenVMS Alpha V7.2-1. This kit addresses
the following problems:
PROBLEMS ADDRESSED IN VMS721_PTHREAD-V0400 KIT
o The threads library has an abstraction called a Virtual
Processor (VP) for each CPU being used. A given VP can be
executing code at normal or at interrupt level. A flag keeps
track of which, so that certain nested interrupt operations
can be properly handled. This flag can be improperly cleared,
which can cause a context switch to occur in what should have
been an atomic update.
The problem is seen as a process hang at AST level, while one
of the internal null threads is hibernating. This could only
happen on a multi-processor system, in an application with use
of upcalls and multiple kernel threads enabled, under rare
timing conditions.
Images Affected:[SYSLIB]PTHREAD$RTL.EXE
[SYSLIB]PTHREAD$DBGSHR.EXE
o The EXEC and the threads library implement a protocol which
uses shared memory to control when the EXEC can interrupt the
library with an upcall. Certain upcalls may be interrupted by
other upcalls. An accumulator is used to keep track of
nesting. This accumulator only allows 32 levels of nesting.
Normally this is plenty. However, under certain conditions,
activity in a null thread can go deeper than this. When this
happens, the threads library state gets confused and the
process can be terminated. The usual termination is a
DECthreads bugcheck which reports "selected a non-ready
thread" with a negative ID number in the blocked state. This
can only happen when use of upcalls and multiple kernel
threads are enabled on a multi-processor system.
Images Affected:[SYSLIB]PTHREAD$RTL.EXE
[SYSLIB]PTHREAD$DBGSHR.EXE
o On multi-processor systems, the EXEC uses the Inner-Mode
Semaphore (IMS) to serialize execution of many system
services. Upcalls are used to allow the threads library to
execute one thread while another is blocked waiting for the
IMS. The services which the threads library uses to switch
threads are themselves users of the IMS. Under certain
conditions, the result is recursion of IMS-free upcalls. If
the recursion persists long enough, a stack overflow can occur
in a null thread which terminates the process. This can only
happen on a multi-processor system when use of upcalls and
multiple kernel threads are enabled.
Images Affected:[SYSLIB]PTHREAD$RTL.EXE
[SYSLIB]PTHREAD$DBGSHR.EXE
RELATED ARTICLES:
Detailed articles describing the problems listed above may exist in the
OPENVMS database. To view these articles, open the appropriate product
database and perform a query using either of the following search
strings: 'VMS721_PTHREAD-V0400', 'VMS721_PTHREAD' or 'PTHREAD'.
ECO KIT ORDERING INSTRUCTIONS:
If after an evaluation you wish to obtain this kit, request it
electronically using the appropriate Advanced Electronic Services
(AES) Service Tool. If you are not familiar with how to request
kits electronically, open the DIA, WIS or DSNLINK database and
review the article entitled:
[AES] How To Electronically Request ECO Kits Using Service Tools
INSTALLATION NOTES:
No reboot is necessary after successful installation of the kit.
INSTALLATION INSTRUCTIONS:
Install this kit with the POLYCENTER Software installation utility
by logging into the SYSTEM account, and typing the following at the
DCL prompt:
PRODUCT INSTALL VMS721_PTHREAD /SOURCE=[location of Kit]
The kit location may be a tape drive, CD, or a disk directory that
contains the kit.
Additional help on installing PCSI kits can be found by typing
HELP PRODUCT INSTALL at the system prompt
Special Installation Instructions:
o Scripting of Answers to Installation Questions
During installation, this kit will ask and require user
response to several questions. If you wish to automate the
installation of this kit and avoid having to provide responses
to these questions, you must create a DCL command procedure
that includes the following definitions and commands:
- $ DEFINE/SYS NO_ASK$BACKUP TRUE
- Add the following qualifiers to the PRODUCT INSTALL
command and add that command to the DCL procedure.
/PROD=DEC/BASE=AXPVMS/VER=V4.0
- De-assign the logicals assigned
For example, a sample command file to install the
VMS721_PTHREAD-V0400 kit would be:
$
$ DEFINE/SYS NO_ASK$BACKUP TRUE
$!
$ PROD INSTALL VMS721_PTHREAD/PROD=DEC/BASE=AXPVMS/VER=V4.0
$!
$ DEASSIGN/SYS NO_ASK$BACKUP
$!
$ exit
All trademarks are the property of their respective owners.
==========================================================================
| Table of Kit Image Information |
+----------------------------+----------+-----------------+--------------+
| | Overall | Image File | Image Link |
| Image Name | Checksum | Identification | Date/Time |
+----------------------------+----------+-----------------+--------------+
| PTHREAD$DBGSHR.EXE | DA92E01E | V3.15-270 | 12-JUL-2002 |
| | | 21:58:33.21 |
+----------------------------+----------+-----------------+--------------+
| PTHREAD$RTL.EXE | 018EBD43 | V3.15-270 | 12-JUL-2002 |
| | | 21:57:51.50 |
+----------------------------+----------+-----------------+--------------+
|