Messages in this thread | | | Date | Wed, 19 Feb 2014 14:01:39 -0500 | From | Tejun Heo <> | Subject | Re: [PATCH] backing_dev: Fix hung task on sync |
| |
Hello, Jan.
On Wed, Feb 19, 2014 at 10:27:31AM +0100, Jan Kara wrote: > You are the workqueue expert so you may know better ;) But the way I > understand it is that queue_delayed_work() does nothing if the timer is > already running. Since we queue flusher work to run either immediately or > after dirty_writeback_interval we are safe to run queue_delayed_work() > whenever we want it to run after dirty_writeback_interval and > mod_delayed_work() whenever we want to run it immediately.
Ah, okay, so it's always mod on immediate and queue on delayed. Yeah, that should work.
> But it's subtle and some interface where we could say queue delayed work > after no later than X would be easier to grasp.
Yeah, I think it'd be better if we had something like mod_delayed_work_if_later(). Hmm...
Thanks.
-- tejun
| |