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