[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: Schedule in task_queues works ?



On Mon, May 22, 2000 at 10:27:04AM -0700, Praveen wrote:
> Hi
>   I have one interesting doubt
>   Please have a look at small piece of code 
> 
> void   print()
>   {
>    printk("The current process %s\n",current->comm);
>    schedule();
>    printk(" The current process %s\n",current->comm);
>   }
> 

I'm not sure that you're allowed to use the task queue that way.
The purpose of the task queue is what they call "software interrupt
handling". When you get a hardware interrupt, you don't want to spend
time blocking other irqs, so you queue the work and unmask interrupts.

At other points in time (return from syscall, interrupt, ctx switch etc), the
task queue is checked and executed. I think calling schedule, when you're
in the task queue, will somehow mark the process ineligible for scheduling.
I'm just guessing here. But what you're trying to do is not what the
task queues are meant for.

	-Arun