lkml.org 
[lkml]   [2009]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCHSET] workqueue: prepare for concurrency managed workqueue, take#2
    Date
    Hello, all.

    This patchset is the second take of prep-for-concurrent-managed-wq
    patchset. Changes from the last take[L] are

    * sched_notifier implementation redone such that it's more similar to
    preempt_notifier and activate/deactivate ops are replaced with
    wakeup/sleep.

    I thought about doing state based callback[s] - three callbacks for
    the three states - run, ready, sleep but it makes things more
    complicated for the caller and there are only four transition edges
    among the states anyway.

    Another alternative to the current wakeup/sleep/in/out would be
    wakeup/sleep/run/preempted where the only difference would be
    preempted is not called after sleep is called while out is called
    even after sleep is called. Either is not much better than the
    other and the current use case fits in/out better, so I left it as
    was.

    * cpu_populated_map is killed but single thread implementation is now
    left largely unchanged. I'll follow up with further patches on
    this.

    * force_cpus_allowed_ptr() renamed to force_cpus_allowed().

    * Locking bug in introduce-worker fixed.

    This patchset contains the following patches.

    0001-sched-kvm-fix-race-condition-involving-sched_in_pree.patch
    0002-workqueue-Add-debugobjects-support.patch
    0003-sched-rename-preempt_notifier-to-sched_notifier-and-.patch
    0004-sched-update-sched_notifier-and-add-wakeup-sleep-not.patch
    0005-sched-implement-sched_notifier_wake_up_process.patch
    0006-scheduler-implement-force_cpus_allowed.patch
    0007-acpi-use-queue_work_on-instead-of-binding-workqueue-.patch
    0008-stop_machine-reimplement-without-using-workqueue.patch
    0009-workqueue-misc-cosmetic-updates.patch
    0010-workqueue-merge-feature-parametesr-into-flags.patch
    0011-workqueue-update-cwq-alignement-and-make-one-more-fl.patch
    0012-workqueue-define-both-bit-position-and-mask-for-work.patch
    0013-workqueue-separate-out-process_one_work.patch
    0014-workqueue-temporarily-disable-workqueue-tracing.patch
    0015-workqueue-kill-cpu_populated_map.patch
    0016-workqueue-reimplement-workqueue-flushing-using-color.patch
    0017-workqueue-introduce-worker.patch
    0018-workqueue-reimplement-work-flushing-using-linked-wor.patch
    0019-workqueue-reimplement-workqueue-freeze-using-cwq-fro.patch

    If there's no objection (especially the scheduler notifier part), I
    want to push the patches into linux-next and wait a while before
    pushing concurrency managed workqueue. This prep patchset already
    contains a lot of changes so I think it would be helpful to verify
    things are okay at this point.

    This patchset is available in the following git tree.

    git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git review-wq-prep

    Please note that the above tree is temporary. It needs to be rebased
    once the fix patches appear upstream.

    This patchset contains the following changes.

    arch/ia64/kvm/Kconfig | 1
    arch/powerpc/kvm/Kconfig | 1
    arch/s390/kvm/Kconfig | 1
    arch/x86/kernel/smpboot.c | 4
    arch/x86/kvm/Kconfig | 1
    drivers/acpi/osl.c | 41 -
    include/linux/kvm_host.h | 4
    include/linux/preempt.h | 43 -
    include/linux/sched.h | 58 +
    include/linux/stop_machine.h | 6
    include/linux/workqueue.h | 110 ++-
    init/Kconfig | 4
    init/main.c | 2
    kernel/power/process.c | 22
    kernel/sched.c | 194 +++---
    kernel/stop_machine.c | 151 +++-
    kernel/trace/Kconfig | 4
    kernel/workqueue.c | 1362 +++++++++++++++++++++++++++++++++----------
    lib/Kconfig.debug | 8
    virt/kvm/kvm_main.c | 28
    20 files changed, 1507 insertions(+), 538 deletions(-)

    Thanks.

    --
    tejun

    [L] http://thread.gmane.org/gmane.linux.kernel/914545


    \
     
     \ /
      Last update: 2009-11-20 05:53    [W:0.023 / U:30.888 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site