Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #148

Re: pthread question

Newsgroups comp.programming.threads
From Geoff Clare <geoff@clare.See-My-Signature.invalid>
Subject Re: pthread question
References (3 earlier) <4DC95F77.DAF3CBB4@web.de> <22dq98-9jj.ln1@leafnode-msgid.gclare.org.uk> <4DCA9ADB.4A4E28FC@web.de> <580t98-5kb.ln1@leafnode-msgid.gclare.org.uk> <4DCBE067.143100C0@web.de>
Date 2011-05-13 14:00 +0100
Message-ID <6kmv98-kr1.ln1@leafnode-msgid.gclare.org.uk> (permalink)
Organization Zen Internet

Show all headers | View raw


Alexander Terekhov wrote:

>
> Geoff Clare wrote:
> [...]
>> >> > "For application threads with scheduling allocation domains of size
>> >> > greater than one, the rules defined for SCHED_FIFO, SCHED_RR, [TSP] and
>> >> > SCHED_SPORADIC shall be used in an implementation-defined manner."
>> >> >
>> >> > Translation: no rules whatsoever.
>> >>
>> >> The way the domain-size-one rules are applied to larger domains is
>> >> "implementation-defined", which means implementations are required
>> >> to document how they are applied.  Not quite the same as "no rules
>> >> whatsoever".
>> >
>> > In praxis "implementation-defined" means undocumented to begin with.
>> 
>> Huh?  XBD7 section 2.1.2:
>> 
>>     A conformance document with the following information shall be
>>     available for an implementation claiming conformance to POSIX.1-2008.
>>     [...]
>>     The conformance document shall describe the behavior of the
>>     implementation for all implementation-defined features defined in
>>     POSIX.1-2008. This requirement shall be met by listing these
>>     features and providing either a specific reference to the system
>>     documentation or providing full syntax and semantics of these
>>     features.
>> 
>> > Anyway since "implementation-defined" can change from version to version
>> > by even the same vendor it does mean "no rules whatsoever" in disguise.
>> 
>> No, it means each implementor chooses their own rules, but they must
>> tell you what those rules are.  . . . 
>
> Well, at 
>
> http://www.opengroup.org/csq/public/search.mhtml?t=XY1&sort=bycomponent
>
> I can't find anything regarding rules for scheduling allocation domains
> of size greater than one. Do you have a link?

The Open Group's CSQs don't cover everything the POSIX Conformance
Document (PCD) has to cover.

Originally I think the idea was that the PCD would be supplied with
the system's developer documentation.  Of course, these days it
would make sense for them to be provided online, but it's up to
each implementor how they want to provide it.  It does seem that
they are not easy to find online.  I was able to find one for
HP-UX, but it was an old one from before pthreads were added to the
standard. One that I did find with the relevant information is for
QNX:

www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_prog/posix_conformance.html

According to that document, this is what QNX does:

    For threads with scheduling allocation domains of size greater
    than one, the rules defined for SCHED_FIFO, SCHED_RR, and
    SCHED_SPORADIC are followed such that if the thread becomes the
    head of its thread list, the thread may become the runnable thread
    on any processor in its scheduling allocation domain if it has a
    higher priority than the running thread on one of those processors.

    This may in turn result in the preempted thread's becoming the
    running thread on a different processor if that thread also has a
    scheduling allocation domain of size greater than one and its
    priority is higher than the running thread on one of the other
    processors in its scheduling allocation domain.

    If a thread's scheduling allocation domain has a size greater than
    one, a runnable thread selects the processor on which it becomes
    the runnable thread as follows:

      1. For each processor in the thread's scheduling allocation domain,
      find the processor whose running thread has the lowest priority
      that is less than this thread.

      2. If the search identifies only one processor, select that
      processor and make the thread the running thread on that processor.

      3. If the search identifies more than one processor, select the
      processor on which the thread previously ran before becoming a
      blocked thread.

      4. If the thread hadn't run on any of the selected processors
      before becoming a blocked thread, select the first processor
      that was found in the search.

-- 
Geoff Clare <netnews@gclare.org.uk>

Back to comp.programming.threads | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

pthread question p6 c6d6 <p6c6d6@gmail.com> - 2011-05-08 21:28 -0700
  Re: pthread question Vaclav Haisman <v.haisman@sh.cvut.cz> - 2011-05-09 07:11 +0200
  Re: pthread question Joshua Maurice <joshuamaurice@gmail.com> - 2011-05-09 11:49 -0700
    Re: pthread question David Schwartz <davids@webmaster.com> - 2011-05-09 12:24 -0700
      Re: pthread question Joshua Maurice <joshuamaurice@gmail.com> - 2011-05-09 14:22 -0700
        Re: pthread question "Chris M. Thomasson" <cristom@charter.net> - 2011-05-09 15:33 -0700
        Re: pthread question David Schwartz <davids@webmaster.com> - 2011-05-10 01:22 -0700
    Re: pthread question Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2011-05-10 13:47 +0100
      Re: pthread question Alexander Terekhov <terekhov@web.de> - 2011-05-10 17:53 +0200
        Re: pthread question Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2011-05-11 13:46 +0100
          Re: pthread question Alexander Terekhov <terekhov@web.de> - 2011-05-11 16:19 +0200
            Re: pthread question Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2011-05-12 13:26 +0100
              Re: pthread question Alexander Terekhov <terekhov@web.de> - 2011-05-12 15:28 +0200
                Re: pthread question Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2011-05-13 14:00 +0100
                Re: pthread question Alexander Terekhov <terekhov@web.de> - 2011-05-13 22:59 +0200
                Re: pthread question Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2011-05-16 13:28 +0100

csiph-web