Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Nov 2004 01:05:37 -0700
From:      Scott Long <scottl@freebsd.org>
To:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Cc:        "M. Warner Losh" <imp@bsdimp.com>
Subject:   Re: usb with fast interrupts
Message-ID:  <41986351.2070806@freebsd.org>
In-Reply-To: <20041115080155.GH57546@funkthat.com>
References:  <20041112.143439.33211003.imp@bsdimp.com> <41952FBD.40602@freebsd.org> <20041115080155.GH57546@funkthat.com>

index | next in thread | previous in thread | raw e-mail

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


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41986351.2070806>