workqueue: Break up enum definitions and give names to the types
workqueue is collecting different sorts of enums into a single unnamed enum type which can increase confusion around enum width. Also, unnamed enums can't be accessed from BPF. Let's break up enum definitions according to their purposes and give them type names. Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
6a229b0e2f
commit
e563d0a7cd
2 changed files with 29 additions and 18 deletions
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
#define work_data_bits(work) ((unsigned long *)(&(work)->data))
|
#define work_data_bits(work) ((unsigned long *)(&(work)->data))
|
||||||
|
|
||||||
enum {
|
enum work_bits {
|
||||||
WORK_STRUCT_PENDING_BIT = 0, /* work item is pending execution */
|
WORK_STRUCT_PENDING_BIT = 0, /* work item is pending execution */
|
||||||
WORK_STRUCT_INACTIVE_BIT= 1, /* work item is inactive */
|
WORK_STRUCT_INACTIVE_BIT= 1, /* work item is inactive */
|
||||||
WORK_STRUCT_PWQ_BIT = 2, /* data points to pwq */
|
WORK_STRUCT_PWQ_BIT = 2, /* data points to pwq */
|
||||||
|
@ -36,21 +36,6 @@ enum {
|
||||||
|
|
||||||
WORK_STRUCT_COLOR_BITS = 4,
|
WORK_STRUCT_COLOR_BITS = 4,
|
||||||
|
|
||||||
WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT,
|
|
||||||
WORK_STRUCT_INACTIVE = 1 << WORK_STRUCT_INACTIVE_BIT,
|
|
||||||
WORK_STRUCT_PWQ = 1 << WORK_STRUCT_PWQ_BIT,
|
|
||||||
WORK_STRUCT_LINKED = 1 << WORK_STRUCT_LINKED_BIT,
|
|
||||||
#ifdef CONFIG_DEBUG_OBJECTS_WORK
|
|
||||||
WORK_STRUCT_STATIC = 1 << WORK_STRUCT_STATIC_BIT,
|
|
||||||
#else
|
|
||||||
WORK_STRUCT_STATIC = 0,
|
|
||||||
#endif
|
|
||||||
|
|
||||||
WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS),
|
|
||||||
|
|
||||||
/* not bound to any CPU, prefer the local CPU */
|
|
||||||
WORK_CPU_UNBOUND = NR_CPUS,
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reserve 8 bits off of pwq pointer w/ debugobjects turned off.
|
* Reserve 8 bits off of pwq pointer w/ debugobjects turned off.
|
||||||
* This makes pwqs aligned to 256 bytes and allows 16 workqueue
|
* This makes pwqs aligned to 256 bytes and allows 16 workqueue
|
||||||
|
@ -74,6 +59,26 @@ enum {
|
||||||
WORK_OFFQ_LEFT = BITS_PER_LONG - WORK_OFFQ_POOL_SHIFT,
|
WORK_OFFQ_LEFT = BITS_PER_LONG - WORK_OFFQ_POOL_SHIFT,
|
||||||
WORK_OFFQ_POOL_BITS = WORK_OFFQ_LEFT <= 31 ? WORK_OFFQ_LEFT : 31,
|
WORK_OFFQ_POOL_BITS = WORK_OFFQ_LEFT <= 31 ? WORK_OFFQ_LEFT : 31,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum work_flags {
|
||||||
|
WORK_STRUCT_PENDING = 1 << WORK_STRUCT_PENDING_BIT,
|
||||||
|
WORK_STRUCT_INACTIVE = 1 << WORK_STRUCT_INACTIVE_BIT,
|
||||||
|
WORK_STRUCT_PWQ = 1 << WORK_STRUCT_PWQ_BIT,
|
||||||
|
WORK_STRUCT_LINKED = 1 << WORK_STRUCT_LINKED_BIT,
|
||||||
|
#ifdef CONFIG_DEBUG_OBJECTS_WORK
|
||||||
|
WORK_STRUCT_STATIC = 1 << WORK_STRUCT_STATIC_BIT,
|
||||||
|
#else
|
||||||
|
WORK_STRUCT_STATIC = 0,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wq_misc_consts {
|
||||||
|
WORK_NR_COLORS = (1 << WORK_STRUCT_COLOR_BITS),
|
||||||
|
|
||||||
|
/* not bound to any CPU, prefer the local CPU */
|
||||||
|
WORK_CPU_UNBOUND = NR_CPUS,
|
||||||
|
|
||||||
/* bit mask for work_busy() return values */
|
/* bit mask for work_busy() return values */
|
||||||
WORK_BUSY_PENDING = 1 << 0,
|
WORK_BUSY_PENDING = 1 << 0,
|
||||||
WORK_BUSY_RUNNING = 1 << 1,
|
WORK_BUSY_RUNNING = 1 << 1,
|
||||||
|
@ -347,7 +352,7 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; }
|
||||||
* Workqueue flags and constants. For details, please refer to
|
* Workqueue flags and constants. For details, please refer to
|
||||||
* Documentation/core-api/workqueue.rst.
|
* Documentation/core-api/workqueue.rst.
|
||||||
*/
|
*/
|
||||||
enum {
|
enum wq_flags {
|
||||||
WQ_UNBOUND = 1 << 1, /* not bound to any cpu */
|
WQ_UNBOUND = 1 << 1, /* not bound to any cpu */
|
||||||
WQ_FREEZABLE = 1 << 2, /* freeze during suspend */
|
WQ_FREEZABLE = 1 << 2, /* freeze during suspend */
|
||||||
WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */
|
WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */
|
||||||
|
@ -387,7 +392,9 @@ enum {
|
||||||
__WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
|
__WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
|
||||||
__WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */
|
__WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */
|
||||||
__WQ_ORDERED_EXPLICIT = 1 << 19, /* internal: alloc_ordered_workqueue() */
|
__WQ_ORDERED_EXPLICIT = 1 << 19, /* internal: alloc_ordered_workqueue() */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wq_consts {
|
||||||
WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
|
WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
|
||||||
WQ_UNBOUND_MAX_ACTIVE = WQ_MAX_ACTIVE,
|
WQ_UNBOUND_MAX_ACTIVE = WQ_MAX_ACTIVE,
|
||||||
WQ_DFL_ACTIVE = WQ_MAX_ACTIVE / 2,
|
WQ_DFL_ACTIVE = WQ_MAX_ACTIVE / 2,
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
#include "workqueue_internal.h"
|
#include "workqueue_internal.h"
|
||||||
|
|
||||||
enum {
|
enum worker_pool_flags {
|
||||||
/*
|
/*
|
||||||
* worker_pool flags
|
* worker_pool flags
|
||||||
*
|
*
|
||||||
|
@ -75,7 +75,9 @@ enum {
|
||||||
*/
|
*/
|
||||||
POOL_MANAGER_ACTIVE = 1 << 0, /* being managed */
|
POOL_MANAGER_ACTIVE = 1 << 0, /* being managed */
|
||||||
POOL_DISASSOCIATED = 1 << 2, /* cpu can't serve workers */
|
POOL_DISASSOCIATED = 1 << 2, /* cpu can't serve workers */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum worker_flags {
|
||||||
/* worker flags */
|
/* worker flags */
|
||||||
WORKER_DIE = 1 << 1, /* die die die */
|
WORKER_DIE = 1 << 1, /* die die die */
|
||||||
WORKER_IDLE = 1 << 2, /* is idle */
|
WORKER_IDLE = 1 << 2, /* is idle */
|
||||||
|
@ -86,7 +88,9 @@ enum {
|
||||||
|
|
||||||
WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE |
|
WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE |
|
||||||
WORKER_UNBOUND | WORKER_REBOUND,
|
WORKER_UNBOUND | WORKER_REBOUND,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wq_internal_consts {
|
||||||
NR_STD_WORKER_POOLS = 2, /* # standard pools per cpu */
|
NR_STD_WORKER_POOLS = 2, /* # standard pools per cpu */
|
||||||
|
|
||||||
UNBOUND_POOL_HASH_ORDER = 6, /* hashed by pool->attrs */
|
UNBOUND_POOL_HASH_ORDER = 6, /* hashed by pool->attrs */
|
||||||
|
|
Loading…
Add table
Reference in a new issue