I am sponsoring this fast-track case for myself.
This proposal will time out 11/30/2007.
The proposal in this case is to delete the sched_nicelim and sched_nice
members of 'struct sched_param'. See bugid:
4468577 Define or Remove sched_nicelim and sched_nice from sched_param struct
These fields were introduced into 'struct sched_param' in 1993, as part
of the POSIX scheduling project. They are not specified by POSIX.
They appear in no Solaris man pages. The only mention of them in any
Sun document is in the specification file, 930908.spec.ps, in the PSARC case:
PSARC 1993/295 P1003.4 Compliance - Phase II
but no description of them exists in that PSARC case.
The only mention of them when searching in Google is in a
Solaris to HP-UX porting guide:
http://devrsrc1.external.hp.com/STKS/impacts/i232.html
which says:
Problem description
The sched_param data structure defined in sched.h on Solaris
systems contains two more fields than the sched_param data
structure (also defined in sched.h) on HP-UX systems.
The two fields are:
int sched_nicelim; /* nice value limit for SCHED_OTHER policy */
int sched_nice; /* nice value for SCHED_OTHER policy */
Solution description
Review your code and make the applicable changes to resolve this
issue. You will need to remove any occurrences of sched_nicelim
and sched_nice before recompiling your code.
If your application relies on the values of sched_nicelim and
sched_nice, you will need to compute them using the nice()
function. Refer to the manpage for more information.
John Zolnowsky gives some history in the Evaluation of 4468577:
The sched_nicelim and sched_nice members were indeed introduced
into the sched_param structure as a Solaris-specific extension.
The motivation was to provide full access to the functionality
provided for the TS class under priocntl. However, this exension
was never fully designed or implemented, and those members were
left around as a result of this incomplete work.
Since the introduction of the priocntl(2) PC_DONICE interface:
PSARC/2000/247 Priority Control Enhancements
provides a much better and class-independent method for
dealing with the nice condition of processes and threads,
and since the two abandoned members of 'struct sched_param',
sched_nicelim and sched_nice, cannot be used in any meaningful
way (they yield incorrect nice values for SCHED_OTHER processes),
they should be deleted (keeping the size of 'struct sched_param'
unchanged).
The proposed release binding for this case is "patch release"
so it can be back-ported as a patch to SunOS 5.10 if desirable.
Roger Faulkner