[lkml]   [2010]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCHSET] workqueue: implement and use WQ_UNBOUND

    Hello, David.

    "David Howells" <> wrote:
    > Does this mean you don't get reentrancy guarantees with unbounded work queues?

    It means that unbound wq behaves like a generic worker pool. Bound wq limits concurrency to minimal level but unbound one executes works as long as resources are available. I'll continue below.

    >I can't work out how you're achieving it with unbounded queues. I presume with
    >CPU-bound workqueues your doing it by binding the work item to the current CPU

    Unbound works are served by a dedicated gcwq whose workers are not affine to any particular CPU. As all unbound works are served by the same gcwq, non reentrancy is automatically guaranteed.

    >Btw, how does this fare in an RT system, where work items bound to a CPU can't
    >get executed because their CPU is busy with an RT thread, even though there are
    >other, idle CPUs?

    Sure, there's nothing special about unbound workers. They're just normal kthreads.

    >> Oh, and Frederic suggested that we would be better off with something based
    >> on tracing API and I agree, so the debugfs thing is currently dropped from
    >> the tree. What do you think?
    >I probably disagree. I just want to be able to cat a file and see the current
    >runqueue state. I don't want to have to write and distribute a special program
    >to do this. Of course, I don't know that much about the tracing API, so
    >cat'ing a file to get the runqueue listed nicely may be possible with that.

    I'm relatively sure we can do that. Frederic?



     \ /
      Last update: 2010-07-21 00:47    [W:0.020 / U:43.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site