usb with fast interrupts
Scott Long
scottl at freebsd.org
Mon Nov 15 00:04:50 PST 2004
John-Mark Gurney wrote:
> Scott Long wrote this message on Fri, Nov 12, 2004 at 14:48 -0700:
>
>>M. Warner Losh wrote:
>>
>>>Our usb system supports soft interrupts, but we currently don't make
>>>productive use of them. The following makes interrupts fast
>>>interrupts and uses taskqueues to queue data to a SWI.
>>>
>>>Lemme know if it works for you.
>>
>>Taskqueues aren't good for timing-sensitive operations. Even though USB
>>may not be terribly sensitive, I bet you'll actually see performance
>>drops with things like umass with this. Could you instead just put the
>>real handler into a kthread and wake it up, or use a swi?
>
>
> If you need low latency, I made taskqueue's easier to create:
> TASKQUEUE_DEFINE_THREAD(kqueue);
>
> and then use:
> taskqueue_enqueue(taskqueue_kqueue, &kq->kq_task);
>
> of course replace kqueue w/ your own string... Check the taskqueue(9)
> man page for more details.
>
So the only problem with TASKQUEUE_DEFINE_THREAD() is that it appears
impossible at the moment to clean up the thread that this creates when
the driver wants to unload.
Scott
More information about the freebsd-current
mailing list