Merge tag '6.5-rc-ksmbd-server-fixes-part1' of git://git.samba.org/ksmbd
[linux-2.6-microblaze.git] / kernel / workqueue_internal.h
index e00b120..6b1d66e 100644 (file)
@@ -28,13 +28,18 @@ struct worker {
                struct hlist_node       hentry; /* L: while busy */
        };
 
-       struct work_struct      *current_work;  /* L: work being processed */
-       work_func_t             current_func;   /* L: current_work's fn */
-       struct pool_workqueue   *current_pwq;   /* L: current_work's pwq */
-       unsigned int            current_color;  /* L: current_work's color */
-       struct list_head        scheduled;      /* L: scheduled works */
+       struct work_struct      *current_work;  /* K: work being processed and its */
+       work_func_t             current_func;   /* K: function */
+       struct pool_workqueue   *current_pwq;   /* K: pwq */
+       u64                     current_at;     /* K: runtime at start or last wakeup */
+       unsigned int            current_color;  /* K: color */
+
+       int                     sleeping;       /* S: is worker sleeping? */
 
-       /* 64 bytes boundary on 64bit, 32 on 32bit */
+       /* used by the scheduler to determine a worker's last known identity */
+       work_func_t             last_func;      /* K: last work's fn */
+
+       struct list_head        scheduled;      /* L: scheduled works */
 
        struct task_struct      *task;          /* I: worker task */
        struct worker_pool      *pool;          /* A: the associated pool */
@@ -42,10 +47,9 @@ struct worker {
        struct list_head        node;           /* A: anchored at pool->workers */
                                                /* A: runs through worker->node */
 
-       unsigned long           last_active;    /* L: last active timestamp */
+       unsigned long           last_active;    /* K: last active timestamp */
        unsigned int            flags;          /* X: flags */
        int                     id;             /* I: worker id */
-       int                     sleeping;       /* None */
 
        /*
         * Opaque string set with work_set_desc().  Printed out with task
@@ -55,9 +59,6 @@ struct worker {
 
        /* used only by rescuers to point to the target workqueue */
        struct workqueue_struct *rescue_wq;     /* I: the workqueue to rescue */
-
-       /* used by the scheduler to determine a worker's last known identity */
-       work_func_t             last_func;
 };
 
 /**
@@ -76,6 +77,7 @@ static inline struct worker *current_wq_worker(void)
  */
 void wq_worker_running(struct task_struct *task);
 void wq_worker_sleeping(struct task_struct *task);
+void wq_worker_tick(struct task_struct *task);
 work_func_t wq_worker_last_func(struct task_struct *task);
 
 #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */