diff options
| author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-10-13 16:18:36 +1100 | 
|---|---|---|
| committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-10-13 16:18:36 +1100 | 
| commit | 4783f393de3077211c14675a0e57c8a02e9190b0 (patch) | |
| tree | 6c37d8664eb072fd026db3706481d771da4495ca /include/linux/workqueue.h | |
| parent | 9f5f9ffe50e90ed73040d2100db8bfc341cee352 (diff) | |
| parent | 5b8544c38e6fde6968645afd46ff681492192b86 (diff) | |
Merge remote branch 'kumar/merge' into next
Diffstat (limited to 'include/linux/workqueue.h')
| -rw-r--r-- | include/linux/workqueue.h | 22 | 
1 files changed, 15 insertions, 7 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 4f9d277bcd9a..25e02c941bac 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -25,18 +25,20 @@ typedef void (*work_func_t)(struct work_struct *work);  enum {  	WORK_STRUCT_PENDING_BIT	= 0,	/* work item is pending execution */ -	WORK_STRUCT_CWQ_BIT	= 1,	/* data points to cwq */ -	WORK_STRUCT_LINKED_BIT	= 2,	/* next work is linked to this one */ +	WORK_STRUCT_DELAYED_BIT	= 1,	/* work item is delayed */ +	WORK_STRUCT_CWQ_BIT	= 2,	/* data points to cwq */ +	WORK_STRUCT_LINKED_BIT	= 3,	/* next work is linked to this one */  #ifdef CONFIG_DEBUG_OBJECTS_WORK -	WORK_STRUCT_STATIC_BIT	= 3,	/* static initializer (debugobjects) */ -	WORK_STRUCT_COLOR_SHIFT	= 4,	/* color for workqueue flushing */ +	WORK_STRUCT_STATIC_BIT	= 4,	/* static initializer (debugobjects) */ +	WORK_STRUCT_COLOR_SHIFT	= 5,	/* color for workqueue flushing */  #else -	WORK_STRUCT_COLOR_SHIFT	= 3,	/* color for workqueue flushing */ +	WORK_STRUCT_COLOR_SHIFT	= 4,	/* color for workqueue flushing */  #endif  	WORK_STRUCT_COLOR_BITS	= 4,  	WORK_STRUCT_PENDING	= 1 << WORK_STRUCT_PENDING_BIT, +	WORK_STRUCT_DELAYED	= 1 << WORK_STRUCT_DELAYED_BIT,  	WORK_STRUCT_CWQ		= 1 << WORK_STRUCT_CWQ_BIT,  	WORK_STRUCT_LINKED	= 1 << WORK_STRUCT_LINKED_BIT,  #ifdef CONFIG_DEBUG_OBJECTS_WORK @@ -59,8 +61,8 @@ enum {  	/*  	 * Reserve 7 bits off of cwq pointer w/ debugobjects turned -	 * off.  This makes cwqs aligned to 128 bytes which isn't too -	 * excessive while allowing 15 workqueue flush colors. +	 * off.  This makes cwqs aligned to 256 bytes and allows 15 +	 * workqueue flush colors.  	 */  	WORK_STRUCT_FLAG_BITS	= WORK_STRUCT_COLOR_SHIFT +  				  WORK_STRUCT_COLOR_BITS, @@ -233,6 +235,10 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; }  #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. + */  enum {  	WQ_NON_REENTRANT	= 1 << 0, /* guarantee non-reentrance */  	WQ_UNBOUND		= 1 << 1, /* not bound to any cpu */ @@ -241,6 +247,8 @@ enum {  	WQ_HIGHPRI		= 1 << 4, /* high priority */  	WQ_CPU_INTENSIVE	= 1 << 5, /* cpu instensive workqueue */ +	WQ_DYING		= 1 << 6, /* internal: workqueue is dying */ +  	WQ_MAX_ACTIVE		= 512,	  /* I like 512, better ideas? */  	WQ_MAX_UNBOUND_PER_CPU	= 4,	  /* 4 * #cpus for unbound wq */  	WQ_DFL_ACTIVE		= WQ_MAX_ACTIVE / 2,  | 
