more on work queues -- why is deprecated "flush_scheduled_work" still used?

Robert P. J. Day rpjday at crashcourse.ca
Sat Oct 20 07:20:38 EDT 2012


  followup to my earlier post looking for clarification -- i was a bit
confused by the kernel-wide nature of the flush_scheduled_work() call,
and poked around until i found this:

$ git show 3d7851b3
commit 3d7851b3cdd43a734e5cc4c643fd886ab28ad4d5
Author: Tejun Heo <tj at kernel.org>
Date:   Fri Oct 15 09:51:08 2010 -0400

    oprofile: Remove deprecated use of flush_scheduled_work()

    flush_scheduled_work() is deprecated and scheduled to be removed.
    ... snip ...

  so even as far back as 2010, that routine had been labelled as
"deprecated", but there's still a fair bit of it in the source tree.
in fact, it's still being *added*:

$ git blame drivers/infiniband/hw/mlx4/cm.c
... snip ...
3cf69cc8 (Amir Vadai   2012-08-03 08:40:47 +0000 392)   if (!need_flush)
3cf69cc8 (Amir Vadai   2012-08-03 08:40:47 +0000 393)           flush_scheduled_work(); /* make sure all timers were flushed */
... snip ...

  is there anything that talks about the current state of this
kernel-wide work queue, and the proper way to use it?  it certainly
seems like anyone (including drivers) that truly need a work queue
should be creating their own, no?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the Kernelnewbies mailing list