Re: tasklets vs. workqueues
From: George Anzinger
Date: Wed Feb 25 2004 - 17:07:00 EST
Martin Diehl wrote:
On Wed, 25 Feb 2004, George Anzinger wrote:
Being in process context, you can also change the priority and schedule policy
as needed to fit your application, while you are rather stuck with tasklets in
this regard.
How would one do that correctly? Something like
Depends on where you want to be when you do it. From user land you would do
exactly what the attached program does. In SMP you would, likely, want to do
all the tasks in the work queue (one per cpu).
Ok, thanks - primary concern was kernelthread anyway. Sorry if I wasn't
clear enough.
From the kernel, again calling setscheduler() is the way to go. I am not sure
what is in the community tree just now, but if I recall properly, the scheduler
itself does this so, one should be able to copy that code.
Ah, yes, there it is in migration_thread(). It calls setscheduler().
Basically yes. Except that setscheduler is static in kernel/sched.c so one
has to use sys_sched_setscheduler (and add some EXPORT_SYMBOL for it). And
of course it needs the set_fs(KERNEL_DS) magic.
I don't think it needs the set_fs(KERNEL_DS) magic if you use the internal
setscheduler(). If it is static, that should be changed.... as well as the
EXPORT sigh.
-g
Thanks, I was hoping I've missed some simple "official" entry point there
to create a SCHED_FIFO kernel thread from a module.
Martin
--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
-
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/