Merge branch 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue updates from Tejun Heo: "Lai simplified worker destruction path and internal workqueue locking and there are some other minor changes. Except for the removal of some long-deprecated interfaces which haven't had any in-kernel user for quite a while, there shouldn't be any difference to workqueue users" * 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: kernel/workqueue.c: pr_warning/pr_warn & printk/pr_info workqueue: remove the confusing POOL_FREEZING workqueue: rename first_worker() to first_idle_worker() workqueue: remove unused work_clear_pending() workqueue: remove unused WORK_CPU_END workqueue: declare system_highpri_wq workqueue: use generic attach/detach routine for rescuers workqueue: separate pool-attaching code out from create_worker() workqueue: rename manager_mutex to attach_mutex workqueue: narrow the protection range of manager_mutex workqueue: convert worker_idr to worker_ida workqueue: separate iteration role from worker_idr workqueue: destroy worker directly in the idle timeout handler workqueue: async worker destruction workqueue: destroy_worker() should destroy idle workers only workqueue: use manager lock only to protect worker_idr workqueue: Remove deprecated system_nrt[_freezable]_wq workqueue: Remove deprecated flush[_delayed]_work_sync() kernel/workqueue.c: pr_warning/pr_warn & printk/pr_info workqueue: simplify wq_update_unbound_numa() by jumping to use_dfl_pwq if the target cpumask equals wq's
This commit is contained in:
@@ -56,9 +56,8 @@ enum {
|
||||
WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS) - 1,
|
||||
WORK_NO_COLOR = WORK_NR_COLORS,
|
||||
|
||||
/* special cpu IDs */
|
||||
/* not bound to any CPU, prefer the local CPU */
|
||||
WORK_CPU_UNBOUND = NR_CPUS,
|
||||
WORK_CPU_END = NR_CPUS + 1,
|
||||
|
||||
/*
|
||||
* Reserve 7 bits off of pwq pointer w/ debugobjects turned off.
|
||||
@@ -274,13 +273,6 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; }
|
||||
#define delayed_work_pending(w) \
|
||||
work_pending(&(w)->work)
|
||||
|
||||
/**
|
||||
* work_clear_pending - for internal use only, mark a work item as not pending
|
||||
* @work: The work item in question
|
||||
*/
|
||||
#define work_clear_pending(work) \
|
||||
clear_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
|
||||
|
||||
/*
|
||||
* Workqueue flags and constants. For details, please refer to
|
||||
* Documentation/workqueue.txt.
|
||||
@@ -340,6 +332,9 @@ enum {
|
||||
* short queue flush time. Don't queue works which can run for too
|
||||
* long.
|
||||
*
|
||||
* system_highpri_wq is similar to system_wq but for work items which
|
||||
* require WQ_HIGHPRI.
|
||||
*
|
||||
* system_long_wq is similar to system_wq but may host long running
|
||||
* works. Queue flushing might take relatively long.
|
||||
*
|
||||
@@ -358,26 +353,13 @@ enum {
|
||||
* 'wq_power_efficient' is disabled. See WQ_POWER_EFFICIENT for more info.
|
||||
*/
|
||||
extern struct workqueue_struct *system_wq;
|
||||
extern struct workqueue_struct *system_highpri_wq;
|
||||
extern struct workqueue_struct *system_long_wq;
|
||||
extern struct workqueue_struct *system_unbound_wq;
|
||||
extern struct workqueue_struct *system_freezable_wq;
|
||||
extern struct workqueue_struct *system_power_efficient_wq;
|
||||
extern struct workqueue_struct *system_freezable_power_efficient_wq;
|
||||
|
||||
static inline struct workqueue_struct * __deprecated __system_nrt_wq(void)
|
||||
{
|
||||
return system_wq;
|
||||
}
|
||||
|
||||
static inline struct workqueue_struct * __deprecated __system_nrt_freezable_wq(void)
|
||||
{
|
||||
return system_freezable_wq;
|
||||
}
|
||||
|
||||
/* equivlalent to system_wq and system_freezable_wq, deprecated */
|
||||
#define system_nrt_wq __system_nrt_wq()
|
||||
#define system_nrt_freezable_wq __system_nrt_freezable_wq()
|
||||
|
||||
extern struct workqueue_struct *
|
||||
__alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
|
||||
struct lock_class_key *key, const char *lock_name, ...) __printf(1, 6);
|
||||
@@ -587,18 +569,6 @@ static inline bool keventd_up(void)
|
||||
return system_wq != NULL;
|
||||
}
|
||||
|
||||
/* used to be different but now identical to flush_work(), deprecated */
|
||||
static inline bool __deprecated flush_work_sync(struct work_struct *work)
|
||||
{
|
||||
return flush_work(work);
|
||||
}
|
||||
|
||||
/* used to be different but now identical to flush_delayed_work(), deprecated */
|
||||
static inline bool __deprecated flush_delayed_work_sync(struct delayed_work *dwork)
|
||||
{
|
||||
return flush_delayed_work(dwork);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
static inline long work_on_cpu(int cpu, long (*fn)(void *), void *arg)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user