From owner-freebsd-current@FreeBSD.ORG Sat May 31 02:59:54 2014 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 152109E; Sat, 31 May 2014 02:59:54 +0000 (UTC) Received: from COL004-OMC4S9.hotmail.com (col004-omc4s9.hotmail.com [65.55.34.211]) by mx1.freebsd.org (Postfix) with ESMTP id E36412942; Sat, 31 May 2014 02:59:53 +0000 (UTC) Received: from COL131-DS17 ([65.55.34.201]) by COL004-OMC4S9.hotmail.com with Microsoft SMTPSVC(7.5.7601.22678); Fri, 30 May 2014 19:58:48 -0700 X-TMN: [dzZRrMZkn3OqCZjoXLpCRLbYLckxhJcs] X-Originating-Email: [fredhps10@hotmail.com] Message-ID: From: Fred Pedrisa To: "'Ian Lepore'" References: <02f701cf7c7b$58f226c0$0ad67440$@FreeBSD.org> In-Reply-To: <02f701cf7c7b$58f226c0$0ad67440$@FreeBSD.org> Subject: RES: Thread Scheduler Priority Date: Fri, 30 May 2014 23:59:14 -0300 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQFLhKv5j3QmiEbRctVokj9BOKz7BwIzDj9HnFBWvQA= Content-Language: pt-br X-OriginalArrivalTime: 31 May 2014 02:58:48.0539 (UTC) FILETIME=[3E9E62B0:01CF7C7C] Cc: 'freebsd-current' X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 May 2014 02:59:54 -0000 Hello, This is 'min' and 'max' for the default policy : Min : 0, Max : 103 In my system. -----Mensagem original----- De: owner-freebsd-current@freebsd.org [mailto:owner-freebsd-current@freebsd.org] Em nome de Ian Lepore Enviada em: sexta-feira, 30 de maio de 2014 23:50 Para: Fred Pedrisa Cc: 'freebsd-current' Assunto: Re: Thread Scheduler Priority On Thu, 2014-05-29 at 02:12 -0300, Fred Pedrisa wrote: > Hi, Guys. > > > > How can I adjust a certain thread to have the maximum system priority > in the scheduler ? > > > > I've tried doing it this way : > > > > /* Set thread priority. > */ > > if > (pthread_getschedparam(ts[gnThreadID], &police, ¶m[gnThreadID]) != > 0) > > { > > error > ("Unable to get priority"); > > return > 1; > > } > > > param[gnThreadID].sched_priority = 99; > > if > (pthread_setschedparam(ts[gnThreadID], police, ¶m[gnThreadID]) != > 0) > > { > > error("Unable to set priority"); > > return 1; > > } > > > > However, in 'top', I don't see the process threads switching to -92 > priority, like other threads in the system, is something I did wrong > or maybe I might be missing something ? You can't just set the priority to any number you want... per the man page for pthread_setschedparam() the value has to fall within the ranges returned by sched_get_priority_min() and sched_get_priority_max() for the given scheduling class. On freebsd those ranges are 0-31. I suspect from your statement of wanting "maximum system priority" maybe what you need to do is change the scheduling class from SCHED_OTHER to SCHED_RR, that should give you realtime priority. Be aware that a realtime thread that is compute-bound will take over the system (or one core on an SMP system); it will get all cycles if it is always runnable. If what you're looking for is the thread equivelent of using the nice command, so that you give a boost to a thread over other threads in the timeshare (SCHED_OTHER) scheduling class, there is currently no way to do that in freebsd. Last year for $work I about went crazy trying to figure out the mapping between pthread scheduling classes and priorities and freebsd's idea of thread prorities. I eventually gave up on the pthread API and used the freebsd native function rtprio_thread() instead. -- Ian _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"