etc/work_queue: abstraction to manage a small pool of IO_WORKITEMs
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 27 May 2009 15:59:36 +0000 (15:59 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 27 May 2009 15:59:36 +0000 (15:59 +0000)
commit6aff1f1cb512355c501b0e9266e98e265db9d1a1
tree76d89eb9432926ef9474ddaad3fb8588d8099914
parentca9d0ea7ecb366c07d5d866a1f2a5cc9d36d16c9
etc/work_queue: abstraction to manage a small pool of IO_WORKITEMs

Create an abstraction for managing a small pool of IO_WORKITEMs that
can be used to process a queue of work requests at passive level.

To prevent starvation of other work items and ensure fairness of system
threads, only a single work requests is processed each time a work
item is queued.  If more work remains, the work item is requeued.

Using a pool of work items, rather than a single work item, allows for
some parallelism of tasks.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2203 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
etc/kernel/work_queue.c [new file with mode: 0644]
inc/kernel/work_queue.h [new file with mode: 0644]