From: Jyoti Wagholikar <jyoti.wagholikar@gmail.com>
To: linux-kernel@vger.kernel.org, inaky.perez-gonzalez@intel.com
Subject: Thread priority scheduling across linux kernels RH9.0 and RH 7.2.
Date: Wed, 24 Nov 2004 18:45:39 +0530 [thread overview]
Message-ID: <4b41a25041124051572892c7@mail.gmail.com> (raw)
In-Reply-To: <4b41a25.0408290455.111c1747@posting.google.com>
Hi,
I have come across some strange behaviour of
priority base scheduling of threads across linux
kernels.
The program below shows that main priority is
raised to max = 99. Another thread with priority =30
is created.
void main()
{
struct sched_param schedparam, getparam,
taskschedparam;
int policy, status;
pthread_attr_t attribs;
pthread_t id =pthread_self();
/* Raising main priority to max =99 */
schedparam.__sched_priority
=sched_get_priority_max( SCHED_FIFO );
pthread_setschedparam(id, SCHED_FIFO, &schedparam);
pthread_getschedparam(id,&policy , &getparam);
printf("\n main : priority = %d, policy = %d",
getparam.__sched_priority, policy);
/* First Assign default attributes for the thread */
pthread_attr_init(&attribs);
/*Set stack size as specified by user*/
attribs.__stacksize = 10000;
/*set scheduling policy*/
pthread_attr_setschedpolicy(&attribs, SCHED_FIFO);
/*Set task priority*/
taskschedparam.__sched_priority = 30;
pthread_attr_setschedparam(&attribs, &taskschedparam);
status = pthread_create(&firstTask, &attribs,
task_fun1, (void*)1 );
printf("\n main :first task = %d,firstTask);
fflush(stdout);
sleep(10000);
}
void *task_fun1 ( void *param)
{
struct sched_param schedparam, getparam ;
int policy;
pthread_getschedparam(pthread_self(),&policy ,
&getparam);
printf("\n task_fun1: priority = %d, policy = %d",
getparam.__sched_priority, policy);fflush(stdout);
printf("\n FIRST TASK = %x", firstTask);
fflush(stdout);
}
Ouputs:
Redhat: 7.2 :[CORRECT OUTPUT]
main : priority = 99, policy = 1
pthread_create status = 0
main :first task = 1026
Sleeping for 1000 sec
task_fun1: priority = 30, policy = 1
FIRST TASK = 402
Redhat: 9.0 [ WRONG OUTPUT]
main : priority = 99, policy = 1
task_fun1: priority = 0, policy = 0
FIRST TASK = 40838cc0
pthread_create status = 0
main :first task = 1082363072
Sleeping for 1000 sec
Just wondering if there is any inconsistency in the
priority scheduling across linux version: linux
2.4.20-8(Redhat 9.0) linux 2.4.7(Redhat 7.2).
Has anyone come across this problem earlier? Any
solution to overcome it?
I want my implementation which is running fine on RH7.2 to run on RH9.0
Just wondering if it is related to priority based real time futexes.
Your input will be helpful in my project.
thanks and regards,
-Jyoti
parent reply other threads:[~2004-11-24 14:21 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <4b41a25.0408290455.111c1747@posting.google.com>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4b41a25041124051572892c7@mail.gmail.com \
--to=jyoti.wagholikar@gmail.com \
--cc=inaky.perez-gonzalez@intel.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox