lkml.org 
[lkml]   [1997]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectTimer queues: Which one should I use...
Hi, thanks for your effort to support Zip drive, 

campbell@tirian.che.curtin.edu.au writes:
> I've only just joined this mailing list but I've heard that there has
> been some discussion on timer queues. I have been working on a driver
> (Iomega parallel port ZIP drive) and found that tq_scheduler stops
> polling/processing when the system loads up (gcc -O2 does it quiet
> nicely when compiling the gcc source).
>
> I've since switched to using tq_timer with more stable results but
> apparently there has been a performance drop. Any suggestions?

While the tasks of tq_timer are executed by timer ticks, tq_immediate
runs (somewhat) immediately. You can queue some tasks on the queue of
tq_immediate, and the tasks are executed when bottom_half is called.
For example, you can queue a task in the interrupt handler, and the
task is executed when the control exits interrupt handler and
bottom_half is called. Another example is, you can queue a task in
normal kernel mode (not interrupt), and when the control goes back to
userland, bottom_half is called and the task is executed.

Usage:
queue_task(&task, &tq_immediate);
mark_bh(IMMEDIATE_BH);

Although I don't know much about ZIP drive, here is a idea:
For slow command (seek/write/...): use tq_timer
For fast command (read/status/..): use tq_immediate

Hope this helps,
--
NIIBE Yutaka

\
 
 \ /
  Last update: 2005-03-22 13:39    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site