summaryrefslogtreecommitdiff
path: root/kern/thread_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'kern/thread_i.h')
-rw-r--r--kern/thread_i.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/kern/thread_i.h b/kern/thread_i.h
index 41167261..752eb944 100644
--- a/kern/thread_i.h
+++ b/kern/thread_i.h
@@ -50,7 +50,6 @@ struct thread_fs_runq;
*/
struct thread_rt_data {
struct list node;
- unsigned short priority;
unsigned short time_slice;
};
@@ -62,12 +61,20 @@ struct thread_fs_data {
struct list runq_node;
struct thread_fs_runq *fs_runq;
unsigned long round;
- unsigned short priority;
unsigned short weight;
unsigned short work;
};
/*
+ * Common scheduling data.
+ */
+struct thread_sched_data {
+ unsigned char sched_policy;
+ unsigned char sched_class;
+ unsigned short priority;
+};
+
+/*
* Maximum number of thread-specific data keys.
*/
#define THREAD_KEYS_MAX 4
@@ -93,14 +100,13 @@ struct thread {
unsigned short pinned;
unsigned short llsync_read;
- /* Common scheduling properties */
- unsigned char sched_policy;
- unsigned char sched_class;
-
/* Processors on which this thread is allowed to run */
struct cpumap cpumap;
- /* Scheduling class specific data */
+ /* Scheduling data */
+ struct thread_sched_data sched_data;
+
+ /* Class specific scheduling data */
union {
struct thread_rt_data rt_data;
struct thread_fs_data fs_data;