rescheduling tasks using swi_add()

kamal kc kamal_ckk at yahoo.com
Thu Jan 12 03:19:06 PST 2006



--- kamal kc <kamal_ckk at yahoo.com> wrote:

> > 
> > Queue a task to a taskqueue.  Behind the scenes
> that
> > will invoke a swi_add if 
> > you use the taskqueue_swi queue.  However, given
> > that you want to do some 
> > rather complicated work, you'd be better off
> > creating a dedicated taskqueue 
> > thread and queueing tasks off to it I think.
> > 
> 
> thanks for the suggestion on the taskqueue. i tried
> it
> 
> on my dummy kernel module and got some output but i 
> am not sure if i followed the correct steps to 
> use the taskqueue. the only thing i found 
> was the man pages and the taskqueue.h.
> 
> here is the code:
> -----------------------
> 
> struct taskqueue_arguments
> { int a;
>   int b;
> };
> 
> void taskqueue_function(void *,int);
> typedef void taskqueue_function_t(void *,int);
> 
> /* taskqueue function */
> void taskqueue_function(void *arguments,int int_arg)
> {
>     struct taskqueue_arguments *arg;
>     arg=(struct taskqueue_arguments *)arguments;
>     printf("\ntakqueue_function was called the args
> are %d %d",arg->a,arg->b);
>     return;
> }
> 
> /* function implementing the syscall */
> static int
> hello(struct thread *td, void *arg)
> {    .........
>     struct task mytask;	
>     taskqueue_function_t *taskqueue_function_ptr;
>     taskqueue_function_ptr=taskqueue_function; 
> 
>     struct taskqueue_arguments arg_var;
>     arg_var.a=10;
>     arg_var.b=20;
> 	
>    
>    
TASK_INIT(&mytask,50,taskqueue_function_ptr,&arg_var);
>     taskqueue_enqueue(taskqueue_swi, &mytask);
>     
>     ...........
> } 
> 

dear all ,

 i run the above code and the kernel 
would crash whenever i would do the syscall for few 
number of times. the crashing process is 
(swi6: task queue). the kernel crashes very soon 
when i make the system call in a loop.

i guess i didn't follow all the steps to use  
the taskqueue ....

i think some of you can help what did i 
miss ....

thanks, 
kamal












__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


More information about the freebsd-hackers mailing list