From owner-freebsd-hackers@FreeBSD.ORG Thu Jan 12 11:19:06 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 79D4416A41F for ; Thu, 12 Jan 2006 11:19:06 +0000 (GMT) (envelope-from kamal_ckk@yahoo.com) Received: from web30006.mail.mud.yahoo.com (web30006.mail.mud.yahoo.com [68.142.200.69]) by mx1.FreeBSD.org (Postfix) with SMTP id 0D0CF43D4C for ; Thu, 12 Jan 2006 11:19:05 +0000 (GMT) (envelope-from kamal_ckk@yahoo.com) Received: (qmail 85811 invoked by uid 60001); 12 Jan 2006 11:19:05 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=UsRsNhM7GPMWW7Nd3xziSzAOSHFNq40EopsGA7w8+yeFU9tH4wL83ec6BQFaSiRM8UIbOqWEdGqlheaF54VoYfUZX5qjTGp42DxRRXQhgvuo78kKnMaIsaw1jK7KgNmSkgnnuI3qBhED68cs8BDFfuwMIVFn07rMeXQHoyUs3ME= ; Message-ID: <20060112111905.85809.qmail@web30006.mail.mud.yahoo.com> Received: from [202.161.131.69] by web30006.mail.mud.yahoo.com via HTTP; Thu, 12 Jan 2006 03:19:05 PST Date: Thu, 12 Jan 2006 03:19:05 -0800 (PST) From: kamal kc To: freebsd In-Reply-To: <20060111164559.5714.qmail@web30009.mail.mud.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: Re: rescheduling tasks using swi_add() X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2006 11:19:06 -0000 --- kamal kc 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