tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: workqueue question
On Sat, 5 Apr 2008 00:16:22 +1300
Darran Hunt <dnh%snark.us@localhost> wrote:
> Hi,
>
> I've been working on porting a driver for a crypto-acceleration card
> to NetBSD current (4.99.54), and I'm not quite sure that I understand
> workqueues in NetBSD.
>
> Basically I've got an interrupt handler that fires when the requests
> on the card complete, and I want to schedule a job to run outside of
> the handler to deal with finishing the request. The workqueue looks
> like an easy way to do this, but it only seems to allow one job to be
> scheduled. To schedule more than one I'd have to manage a queue of
> work descriptors and hand one off per job - which makes the workqueue
> a lot less attractive as a solution.
>
> Have I got that wrong? Should I be able to queue multiple jobs
> without supplying each one with a unique work structure?
>
> Or is there a more appropriate mechanism that I should be using instead?
You can also use sysmon_task_queue (look in sys/dev/sysmon/sysmon_taskq).
which will run a callback function with a void * argument.
You should be able to issue sysmon_task_queue_sched(0, callback, arg) and
iterate over the linked list or so to run them.
--
Juan Romero Pardines - xtraeme at gmail|netbsd dot org
The NetBSD Project
Make your own NetBSD/x86 Live CD:
http://www.netbsd.org/~xtraeme/mklivecd/
Home |
Main Index |
Thread Index |
Old Index