Re: [RFC] Outline of USB process integration in the kernel taskqueue system

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Matthew Fleming
Date: Saturday, November 6, 2010 - 6:57 am

On Sat, Nov 6, 2010 at 1:37 AM, Hans Petter Selasky <hselasky@c2i.net> wrote:

I think you're misunderstanding the existing taskqueue(9) implementation.

As long as TQ_LOCK is held, the state of ta->ta_pending cannot change,
nor can the set of running tasks.  So the order of checks is
irrelevant.

As John said, the taskqueue(9) implementation cannot protect consumers
of it from re-queueing a task; that kind of serialization needs to
happen at a higher level.

taskqueue(9) is not quite like callout(9); the taskqueue(9)
implementation drops all locks before calling the task's callback
function.  So once the task is running, taskqueue(9) can do nothing
about it until the task stops running.  This is why Jeff's
implementation of taskqueue_cancel(9) slept if the task was running,
and why mine returns an error code.  The only way to know for sure
that a task is "about" to run is to ask taskqueue(9), because there's
a window where the TQ_LOCK is dropped before the callback is entered.

Thanks,
matthew
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC] Outline of USB process integration in the kernel tas ..., Hans Petter Selasky, (Mon Nov 1, 12:54 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Mon Nov 1, 1:15 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Tue Nov 2, 12:39 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 1:38 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 8:10 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 11:41 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 12:08 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 12:11 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Thu Nov 4, 1:15 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Fri Nov 5, 10:36 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Fri Nov 5, 11:30 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Fri Nov 5, 11:35 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Fri Nov 5, 11:45 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Fri Nov 5, 12:00 pm)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Sat Nov 6, 1:37 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Matthew Fleming, (Sat Nov 6, 6:57 am)
Re: [RFC] Outline of USB process integration in the kernel ..., Hans Petter Selasky, (Sat Nov 6, 7:22 am)