14 Feb, 2013

1 commit

  • workqueue has moved away from global_cwqs to worker_pools and with the
    scheduled custom worker pools, wforkqueues will be associated with
    pools which don't have anything to do with CPUs. The workqueue code
    went through significant amount of changes recently and mass renaming
    isn't likely to hurt much additionally. Let's replace 'cpu' with
    'pool' so that it reflects the current design.

    * s/struct cpu_workqueue_struct/struct pool_workqueue/
    * s/cpu_wq/pool_wq/
    * s/cwq/pwq/

    This patch is purely cosmetic.

    Signed-off-by: Tejun Heo

    Tejun Heo
     

25 Jan, 2013

1 commit

  • global_cwq is now nothing but a container for per-cpu standard
    worker_pools. Declare the worker pools directly as
    cpu/unbound_std_worker_pools[] and remove global_cwq.

    * ____cacheline_aligned_in_smp moved from global_cwq to worker_pool.
    This probably would have made sense even before this change as we
    want each pool to be aligned.

    * get_gcwq() is replaced with std_worker_pools() which returns the
    pointer to the standard pool array for a given CPU.

    * __alloc_workqueue_key() updated to use get_std_worker_pool() instead
    of open-coding pool determination.

    This is part of an effort to remove global_cwq and make worker_pool
    the top level abstraction, which in turn will help implementing worker
    pools with user-specified attributes.

    v2: Joonsoo pointed out that it'd better to align struct worker_pool
    rather than the array so that every pool is aligned.

    Signed-off-by: Tejun Heo
    Reviewed-by: Lai Jiangshan
    Cc: Joonsoo Kim

    Tejun Heo
     

19 Jan, 2013

3 commits