aboutsummaryrefslogtreecommitdiff
path: root/linux-headers/include/linux/sched
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2021-01-08 11:41:26 +0800
committerKito Cheng <kito.cheng@sifive.com>2021-04-01 11:11:29 +0800
commita736f13279640936c2864c338e7c09c4777e1766 (patch)
treefbe30677f70fadad92d5514611463db9a8f1dcd3 /linux-headers/include/linux/sched
parent457daed7711b579a1ee538a9e1f202735bfe8903 (diff)
downloadriscv-gnu-toolchain-a736f13279640936c2864c338e7c09c4777e1766.zip
riscv-gnu-toolchain-a736f13279640936c2864c338e7c09c4777e1766.tar.gz
riscv-gnu-toolchain-a736f13279640936c2864c338e7c09c4777e1766.tar.bz2
Update linux header to 5.10.5
Diffstat (limited to 'linux-headers/include/linux/sched')
-rw-r--r--linux-headers/include/linux/sched/..install.cmd1
-rw-r--r--linux-headers/include/linux/sched/.install0
-rw-r--r--linux-headers/include/linux/sched/types.h66
3 files changed, 57 insertions, 10 deletions
diff --git a/linux-headers/include/linux/sched/..install.cmd b/linux-headers/include/linux/sched/..install.cmd
deleted file mode 100644
index 8ec3474..0000000
--- a/linux-headers/include/linux/sched/..install.cmd
+++ /dev/null
@@ -1 +0,0 @@
-cmd_/home/users/kito/riscv-gnu-toolchain-workspace/riscv-gnu-toolchain/linux/install_hdr/include/linux/sched/.install := /bin/sh scripts/headers_install.sh /home/users/kito/riscv-gnu-toolchain-workspace/riscv-gnu-toolchain/linux/install_hdr/include/linux/sched ./include/uapi/linux/sched types.h; /bin/sh scripts/headers_install.sh /home/users/kito/riscv-gnu-toolchain-workspace/riscv-gnu-toolchain/linux/install_hdr/include/linux/sched ./include/generated/uapi/linux/sched ; touch /home/users/kito/riscv-gnu-toolchain-workspace/riscv-gnu-toolchain/linux/install_hdr/include/linux/sched/.install
diff --git a/linux-headers/include/linux/sched/.install b/linux-headers/include/linux/sched/.install
deleted file mode 100644
index e69de29..0000000
--- a/linux-headers/include/linux/sched/.install
+++ /dev/null
diff --git a/linux-headers/include/linux/sched/types.h b/linux-headers/include/linux/sched/types.h
index 5131b2b..0848a67 100644
--- a/linux-headers/include/linux/sched/types.h
+++ b/linux-headers/include/linux/sched/types.h
@@ -9,6 +9,7 @@ struct sched_param {
};
#define SCHED_ATTR_SIZE_VER0 48 /* sizeof first published struct */
+#define SCHED_ATTR_SIZE_VER1 56 /* add: util_{min,max} */
/*
* Extended scheduling parameters data structure.
@@ -21,8 +22,33 @@ struct sched_param {
* the tasks may be useful for a wide variety of application fields, e.g.,
* multimedia, streaming, automation and control, and many others.
*
- * This variant (sched_attr) is meant at describing a so-called
- * sporadic time-constrained task. In such model a task is specified by:
+ * This variant (sched_attr) allows to define additional attributes to
+ * improve the scheduler knowledge about task requirements.
+ *
+ * Scheduling Class Attributes
+ * ===========================
+ *
+ * A subset of sched_attr attributes specifies the
+ * scheduling policy and relative POSIX attributes:
+ *
+ * @size size of the structure, for fwd/bwd compat.
+ *
+ * @sched_policy task's scheduling policy
+ * @sched_nice task's nice value (SCHED_NORMAL/BATCH)
+ * @sched_priority task's static priority (SCHED_FIFO/RR)
+ *
+ * Certain more advanced scheduling features can be controlled by a
+ * predefined set of flags via the attribute:
+ *
+ * @sched_flags for customizing the scheduler behaviour
+ *
+ * Sporadic Time-Constrained Task Attributes
+ * =========================================
+ *
+ * A subset of sched_attr attributes allows to describe a so-called
+ * sporadic time-constrained task.
+ *
+ * In such a model a task is specified by:
* - the activation period or minimum instance inter-arrival time;
* - the maximum (or average, depending on the actual scheduling
* discipline) computation time of all instances, a.k.a. runtime;
@@ -34,14 +60,8 @@ struct sched_param {
* than the runtime and must be completed by time instant t equal to
* the instance activation time + the deadline.
*
- * This is reflected by the actual fields of the sched_attr structure:
+ * This is reflected by the following fields of the sched_attr structure:
*
- * @size size of the structure, for fwd/bwd compat.
- *
- * @sched_policy task's scheduling policy
- * @sched_flags for customizing the scheduler behaviour
- * @sched_nice task's nice value (SCHED_NORMAL/BATCH)
- * @sched_priority task's static priority (SCHED_FIFO/RR)
* @sched_deadline representative of the task's deadline
* @sched_runtime representative of the task's runtime
* @sched_period representative of the task's period
@@ -53,6 +73,29 @@ struct sched_param {
* As of now, the SCHED_DEADLINE policy (sched_dl scheduling class) is the
* only user of this new interface. More information about the algorithm
* available in the scheduling class file or in Documentation/.
+ *
+ * Task Utilization Attributes
+ * ===========================
+ *
+ * A subset of sched_attr attributes allows to specify the utilization
+ * expected for a task. These attributes allow to inform the scheduler about
+ * the utilization boundaries within which it should schedule the task. These
+ * boundaries are valuable hints to support scheduler decisions on both task
+ * placement and frequency selection.
+ *
+ * @sched_util_min represents the minimum utilization
+ * @sched_util_max represents the maximum utilization
+ *
+ * Utilization is a value in the range [0..SCHED_CAPACITY_SCALE]. It
+ * represents the percentage of CPU time used by a task when running at the
+ * maximum frequency on the highest capacity CPU of the system. For example, a
+ * 20% utilization task is a task running for 2ms every 10ms at maximum
+ * frequency.
+ *
+ * A task with a min utilization value bigger than 0 is more likely scheduled
+ * on a CPU with a capacity big enough to fit the specified value.
+ * A task with a max utilization value smaller than 1024 is more likely
+ * scheduled on a CPU with no more capacity than the specified value.
*/
struct sched_attr {
__u32 size;
@@ -70,6 +113,11 @@ struct sched_attr {
__u64 sched_runtime;
__u64 sched_deadline;
__u64 sched_period;
+
+ /* Utilization hints */
+ __u32 sched_util_min;
+ __u32 sched_util_max;
+
};
#endif /* _LINUX_SCHED_TYPES_H */