From owner-freebsd-threads@FreeBSD.ORG Sun Jun 29 23:24:05 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E9B7137B401; Sun, 29 Jun 2003 23:24:05 -0700 (PDT) Received: from InterJet.elischer.org (12-233-125-100.client.attbi.com [12.233.125.100]) by mx1.FreeBSD.org (Postfix) with ESMTP id B735443F85; Sun, 29 Jun 2003 23:24:04 -0700 (PDT) (envelope-from julian@elischer.org) Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id XAA45856; Sun, 29 Jun 2003 23:23:59 -0700 (PDT) Date: Sun, 29 Jun 2003 23:23:58 -0700 (PDT) From: Julian Elischer To: Petri Helenius In-Reply-To: <005001c33e8f$6d90d6c0$44d5473e@PETEX31> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: deischen@freebsd.org cc: freebsd-threads@freebsd.org Subject: Re: rtprio and kse X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jun 2003 06:24:06 -0000 On Mon, 30 Jun 2003, Petri Helenius wrote: > > > > The rtprio() call affects the KSEG in which the thread runs. > > So it is the KSEG that has the realtime priority, and all > > threads that run in that KSEG will be affected. This doesn't > > affect other KSEGs, so if you are creating system scope > > threads (each has their own KSEG and KSE), they will only > > be affected if you call rtprio() from their threads. > > > So if I interpret this correctly, to achieve the "expected" result, > one should link with -lthr, not -lkse? Expected result being > priorities apply only to threads which call for it. yes and no.. That's only YOUR expectation.. if your thread is a "scope-process" thread then you cannot expect your thread to go to rt priority without effecting the priority of the rest of the group it is a part of. That's what the process-scope part means... The thread's priority is only relevant within teh process as a whole and doesn;t effect it's priority vs other processes. Your thread is only scheduled within the scope of the process it is a part of. if the process is not at rt priority, then the thread cannot really be.. If your thread is "system scope" then each thread can have an independent priority from the system's point of view. If you link with libthr you are specifying that all threads are "scope system" threads. in libkse you get a choice of which you want. So to answer your original point.. if you want "scope system" threads and a system-wide scheduling priority then you need to ask for that.. but.. that;s expeceted. Note.. asking for a new thread to be "scope system" is something that I leave to Dan to tell you about :-) > > Does -lthr have any (known) issues with spinlocks like linuxthreads has, where > a thread with rtprio going into a spinlock might monopolize the CPU > and the other thread never gets a quantum to actually release the lock? probably. it's a programmer error to do that.. > > Pete > > _______________________________________________ > freebsd-threads@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-threads > To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org" >