(comments are relative to the draft PDF retrieved 2010-02-16 @ 4:30pm CST with md5sum "0fd54c6370574a93db13d3f5589d4b98") I would like to propose alternative text for signal handling in the MPIT performance interface. The relevant text from the current draft (page 21, lines 3-5 and page 22, lines 24-25) is reproduced below: -------8<------- 3| The routines in this section to start and stop performance variables must be safely 4| callable from any asynchronous execution context, such as a signal or interrupt handler, to 5| allow their use in sampling-based tools. ... 24| The routines in this section to read, write, and reset performance variables must be 25| callable from signal handlers to allow their use in sampling- based tools. -------8<------- My proposed alternative: -------8<------- Advice to implementors. Although MPI places no requirements on the interaction with external mechanisms such as signal handlers, it is strongly recommended that the routines in this section to start and stop performance variables should be safe to call in asynchronous contexts. Examples of asynchronous contexts include signal handlers and interrupt handlers. Such safety permits the development of sampling-based tools. High quality implementations should strive to make the results of any such interactions intuitive to users, and attempt to document restrictions where deemed necessary. (End of advice to implementors.) ... Advice to implementors. Although MPI places no requirements on the interaction with external mechanisms such as signal handlers, it is strongly recommended that the routines in this section to read, write, and reset performance variables should be safe to call in asynchronous contexts. Examples of asynchronous contexts include signal handlers and interrupt handlers. Such safety permits the development of sampling-based tools. High quality implementations should strive to make the results of any such interactions intuitive to users, and attempt to document restrictions where deemed necessary. (End of advice to implementors.) -------8<------- MPI has been careful in the past to leave signal safety and signal handling as a quality of implementation issue (see MPI-2.2 pp22:14, pp23:36, pp24:24, and pp384:45). I think that this was a wise decision and that we should carry it forward into new versions of the MPI Standard. I believe that with my proposed text implementations will almost always support signal safety, excepting situations where it is too difficult or impossible to do so. Alternatively, the current MPIT text is incompatible with MPI-2.2 section 2.7 (and probably elsewhere). At the very least a proposal to change that (perfectly good, IMO) text is needed. -Dave