DIET/MINOR: task: reduce struct task size by 8 bytes
Just by reordering the struct task, we could shrink it by 8 bytes from
120 to 112 bytes. A careful reordering allowed each part to be located
closer to the hot parts it's used with, resulting in another performance
increase of about 0.5%.
diff --git a/include/types/task.h b/include/types/task.h
index 405404b..0379a22 100644
--- a/include/types/task.h
+++ b/include/types/task.h
@@ -52,14 +52,14 @@
/* The base for all tasks */
struct task {
- struct eb32_node wq; /* ebtree node used to hold the task in the wait queue */
struct eb32_node rq; /* ebtree node used to hold the task in the run queue */
- int state; /* task state : bit field of TASK_* */
- int expire; /* next expiration date for this task, in ticks */
+ unsigned short state; /* task state : bit field of TASK_* */
+ short nice; /* the task's current nice value from -1024 to +1024 */
unsigned int calls; /* number of times ->process() was called */
struct task * (*process)(struct task *t); /* the function which processes the task */
void *context; /* the task's context */
- int nice; /* the task's current nice value from -1024 to +1024 */
+ struct eb32_node wq; /* ebtree node used to hold the task in the wait queue */
+ int expire; /* next expiration date for this task, in ticks */
};
/*