Date: Thu, 17 Jan 2008 12:25:22 -0800 (PST)
    From: "Roger A. Faulkner" <Roger.Faulkner at sun.com>
    Subject: Re: 2008/039 [POSIX scheduling interfaces]

    > Date: Thu, 17 Jan 2008 10:25:27 -0800 (PST)
    > From: Glenn Skinner <glenn.skinner at sun.com>
    > Subject: Re: 2008/039 [POSIX scheduling interfaces]

    > [various questions concerning stability and compatibility]

    ...
    Yes, but it rectifies a standards violation.  The standards
    interfaces require priorities, low to high, to reflect real
    scheduling priorities, low to high.

    The old behavior of returning nice values (inverted at that) was
    just a badly mistaken bug.

    ...
    Well, my understanding of the scheduler class interfaces in the
    kernel is that it is all uncommitted, unstable, whatever.  Not
    even as high as 'evolving'.

    The priocntl() interfaces are a bit higher, but the PC_GETPRIRANGE
    subcommand in particular is consolidation private:

    From <sys/priocntl.h>:

    #define PC_GETPRIRANGE  5       /* Get global priority range for a class */
                                    /* posix.4 scheduling, not for general use 
*/

    and my addition to this file should also be consolidation private:

    #define PC_DOPRIO       11      /* Set or get priority, not for general use 
*/

    I'm not deleting any visible symbols.  The THREAD_MIN_PRIORITY and
    THREAD_MAX_PRIORITY were never visible as themselves.  Only
    thr_setprio() and thr_getprio() ever documented their ranges.

    What will break?  It's hard to say.  Something that actually
    believed the old stuff worked, I guess.  (It never did.)

    Certainly, third-party scheduling classes will break.
    But I couldn't find any using Google.

Ok, that's what I wanted to know and I'm satisfied with the answers.
Thanks!

                -- Glenn


Reply via email to