From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17506 invoked by alias); 31 Jan 2013 07:11:29 -0000 Received: (qmail 17391 invoked by uid 48); 31 Jan 2013 07:11:08 -0000 From: "bugdal at aerifal dot cx" To: glibc-bugs@sourceware.org Subject: [Bug libc/15088] New: glibc wrongly defines _POSIX_PRIORITY_SCHEDULING Date: Thu, 31 Jan 2013 07:11:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: libc X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: bugdal at aerifal dot cx X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org X-SW-Source: 2013-01/txt/msg00180.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=15088 Bug #: 15088 Summary: glibc wrongly defines _POSIX_PRIORITY_SCHEDULING Product: glibc Version: unspecified Status: NEW Severity: normal Priority: P2 Component: libc AssignedTo: unassigned@sourceware.org ReportedBy: bugdal@aerifal.cx CC: drepper.fsp@gmail.com Classification: Unclassified The _POSIX_PRIORITY_SCHEDULING macro is specified by POSIX to indicate that the implementation supports the Process Scheduling [PS] option group, documented here: http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_04 On Linux, glibc defines _POSIX_PRIORITY_SCHEDULING, but does not implement the Process Scheduling functionality of POSIX; Linux does not even support the required functionality. What's worse, glibc DOES provide functions with the same names as the functions in the Process Scheduling group (sched_*), but the glibc semantics for these functions are radically different from those specified in Process Scheduling. In particular, the glibc functions do not take a process id as their argument; they take a kernelspace tid, which is not even available to applications because glibc does not provide gettid(). Even if passed the pid (which is also the tid of the main thread), these functions only change the scheduling properties for a single thread, not for the process. Linux does not even support process-level scheduling options, only thread-level ones. Since it doesn't seem realistic to remove the erroneous functionality the sched_* functions are providing now, I think a reasonable solution would be to redefine _POSIX_PRIORITY_SCHEDULING to -1 or 0 and have sysconf return -1 for it. If glibc does not advertise support the the Process Scheduling option, then it's under no obligation to provide the standard sched_* functions, nor to avoid providing conflicting functions with the same names. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.