[lkml]   [2012]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 25/25] ipc: don't use [delayed_]work_pending()
Hello, Andrew.

On Fri, Dec 21, 2012 at 06:15:23PM -0800, Andrew Morton wrote:
> On Fri, 21 Dec 2012 17:57:15 -0800 Tejun Heo <> wrote:
> > There's no need to test whether a (delayed) work item in pending
> > before queueing, flushing or cancelling it. Most uses are unnecessary
> > and quite a few of them are buggy.
> > - if (!work_pending(&ipc_memory_wq))
> > - schedule_work(&ipc_memory_wq);
> > + schedule_work(&ipc_memory_wq);
> Well, the new code is a ton slower than the old code if the work is
> frequently pending, so some care is needed with such a conversion.

Yeah, I mentioned it in the head message. it comes down to
test_and_set_bit() vs. test_bit() and none of the current users seems
to be hot enough for that to matter at all.

In very hot paths, such optimization *could* be valid. The problem is
that [delayed_]work_pending() seem to be abused much more than they
are put to any actual usefulness. Maybe we should rename them to
something really ugly. I don't know.

> That's not an issue for the IPC callsite - memory offlining isn't
> frequent.
> > ...
> >
> > Please let me know how this patch should be routed. I can take it
> > through the workqueue tree if necessary.
> >
> Please merge this one yourself.

Can I add your acked-by?



 \ /
  Last update: 2012-12-22 03:41    [W:0.239 / U:1.304 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site