Problem Text |
We request that the mmap() interface be changed to not require that a write to a read-only segment fail. In particular that the following language be removed from X/Open CAE Specification System Interfaces and Headers, Issue 4, Version 2, page 398, section "DESCRIPTION", paragraph 8: "However, writes shall only be permitted when PROT_WRITE has been set." Dropping this behavior does, by implication, also impact those pages whose access permissions are modified by the mprotect() interface. We ask for this behavior to be dropped since the current line of parallel-vector machines produced by Cray Research do not provide the demand-paged virtual memory environment that the above behavior depends upon. Cray Research was active in the Spec 1170 process to get this issue resolved before the specification reached its final form. The sponsors of the Spec 1170 process developed a model which they felt would allow us to conform and they did resolve the vast majority of our objections. However, a couple of problems remained when the specification was complete. We contacted one of the members of the sponsor team and communicated our concerns to him and he was surprised to find out that we could not conform. He reiterated that it was the intention of the sponsor team that we be able to conform, but he agreed that our interpretation of the technical requirements was correct. There are two key rationales for this change: 1. The intention of the Spec 1170 sponsors was to create a specification to which Cray Research systems could conform. However, this requirement excludes any possibility of our conformance. 2. The behavior is not a positive behavior but is used to isolate faults in malfunctioning programs. This does not preclude the possibility that someone could use this in a positive manner, but that was not the intention of the definers of the specification. Thus, this is really a quality of application implementation issue. It certainly is expected that virtually all implementations will implement this behavior and will thus provide the fault-detection desired from this feature. However, if it is impossible for an implementation to provide this fault detection, that should not be an impediment to conformance.
|