possible problems with kernel threading code?
From: Chris Friesen
Date: Fri Feb 20 2004 - 13:10:56 EST
I'm running the following code under 2.4.18-2.4.20, with the standard
thread library, and sometimes I get an error of "No such process". How
can this possibly happen? The pthread_setschedparam() call is running
in the thread that it is trying to operate on, but somehow it can't find
itself?
I also have managed to trigger reboots with this code, and I'm not sure how.
Anyone have any ideas? Is this a kernel problem? I can trigger it on
ppc hardware under kernel versions 2.4.18-2.4.20 and a modified 2.4.22.
(I haven't tried 2.4.21) My x86 with a 2.4.18-19.8.0 redhat kernel
doesn't show the problem.
Thanks,
Chris
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
pthread_t t1;
void *func(void *p)
{
pid_t pid;
int status;
struct sched_param schedParam;
int policy = SCHED_RR;
int priority = 40;
schedParam.sched_priority = priority;
int schedRc = pthread_setschedparam(t1, policy, &schedParam);
if (schedRc){
fprintf(stderr, "pthread_setschedparam error:%s, priority:%d,
policy:%d\n",strerror(schedRc), priority, policy);
}
pthread_exit(EXIT_SUCCESS);
return 0;
}
int main(int argc, char **argv)
{
pthread_create(&t1, 0, func,(void*)1);
pthread_join(t1,0);
return 0;
}
--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: cfriesen@xxxxxxxxxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/