RE: How to schedule worker and threaded IRQ on same cpu/core

From: anish kumar
Date: Tue Oct 02 2012 - 11:48:06 EST


On Tue, 2012-10-02 at 15:14 +0000, Pallala, Ramakrishna wrote:
> > On Tue, 2012-10-02 at 12:54 +0000, Pallala, Ramakrishna wrote:
> > > > > How can I schedule driver's worker and threaded IRQ on the same core?
> > > > >
> > > > > For work queue we have schedule_delayed_work_on () API available.
> > > > > But how to schedule the threaded IRQ on the same core where my
> > > > > worker
> > > > thread is going to run?
> > > > Why do you need to worry about where your worker thread is going to run?
> > > > Or IOW what use case do you have in mind?
> > >
> > > In my driver I can get two independent events(IRQ and kernel
> > > notification). One will be handled by Threaded IRQ and other will be
> > > handled by a worker and the order is not guaranteed and with two cores
> > Sometimes both workers are being scheduled parallel.
> > So what is the problem even if they run in parallel, it would be really help if we
> > know what problem you are trying to solve?
> > Even if you want to sync between these two then you can have some
> > synchronisation mechanism between the two.
> > What is the advantage you are going to get if they run on same core?
> >
> > Sorry but these answers would really help community in resolving your problem.
>
> I think I got what I was looking for...
> synchronize_irq()
/*
* We made sure that no hardirq handler is running. Now verify
* that no threaded handlers are active.
*/
wait_event(desc->wait_for_threads, !
atomic_read(&desc->threads_active));

I think this makes sense now.
>
> basically I need to wait/pause my worker thread execution until my threaded handler is complete.
>
> Thanks for response.
>
> Thanks,
> Ram


--
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/