Re: CFS review
From: Ingo Molnar
Date: Thu Aug 02 2007 - 11:46:49 EST
* Roman Zippel <zippel@xxxxxxxxxxxxxx> wrote:
> [...] With the increased text comes increased runtime memory usage,
> e.g. task_struct increased so that only 5 of them instead 6 fit now
> into 8KB.
yeah, thanks for the reminder, this is on my todo list. As i suspect you
noticed it too, much of the task_struct size increase is not fundamental
and not related to 64-bit math at all - it's simply debug and
instrumentation overhead.
Look at the following table (i386, nodebug):
size
----
pre-CFS 1328
CFS 1472
CFS+patch 1376
the very small patch below gets rid of 96 bytes. And that's only the
beginning.
Ingo
-------------------------------------------------->
---
include/linux/sched.h | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
Index: linux/include/linux/sched.h
===================================================================
--- linux.orig/include/linux/sched.h
+++ linux/include/linux/sched.h
@@ -905,23 +905,28 @@ struct sched_entity {
struct rb_node run_node;
unsigned int on_rq;
+ u64 exec_start;
+ u64 sum_exec_runtime;
u64 wait_start_fair;
+ u64 sleep_start_fair;
+
+#ifdef CONFIG_SCHEDSTATS
u64 wait_start;
- u64 exec_start;
+ u64 wait_max;
+ s64 sum_wait_runtime;
+
u64 sleep_start;
- u64 sleep_start_fair;
- u64 block_start;
u64 sleep_max;
+ s64 sum_sleep_runtime;
+
+ u64 block_start;
u64 block_max;
u64 exec_max;
- u64 wait_max;
- u64 last_ran;
- u64 sum_exec_runtime;
- s64 sum_wait_runtime;
- s64 sum_sleep_runtime;
unsigned long wait_runtime_overruns;
unsigned long wait_runtime_underruns;
+#endif
+
#ifdef CONFIG_FAIR_GROUP_SCHED
struct sched_entity *parent;
/* rq on which this entity is (to be) queued: */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/