[PATCH 2/2] linsched: add the ability to read proc setting from proc.conf

From: Michael Wang
Date: Fri Apr 27 2012 - 03:41:32 EST


From: Michael Wang <wangyun@xxxxxxxxxxxxxxxxxx>

This patch add the ability to read proc setting from:
tools/linsched/tests/proc.conf

The style in the proc.conf is like:
proname value

Signed-off-by: Michael Wang <wangyun@xxxxxxxxxxxxxxxxxx>
---
tools/linsched/linux_linsched.c | 30 ++++++++++++++++++++++++++++++
tools/linsched/tests/proc.conf | 5 +++++
2 files changed, 35 insertions(+), 0 deletions(-)
create mode 100644 tools/linsched/tests/proc.conf

diff --git a/tools/linsched/linux_linsched.c b/tools/linsched/linux_linsched.c
index 6c24578..81825b9 100644
--- a/tools/linsched/linux_linsched.c
+++ b/tools/linsched/linux_linsched.c
@@ -76,6 +76,35 @@ void linsched_init_root_cgroup(struct cgroup *root)

void init_stop_tasks(void);

+#define PROC_CONFIGURE_PATH "./proc.conf"
+#define CONFIGURE_BUFFER_SIZE 77
+#define CONFIGURE_MAX_LINE 77
+void linsched_read_proc_configure(void)
+{
+ int line = 0;
+ char buffer[CONFIGURE_BUFFER_SIZE];
+ char procname[CONFIGURE_BUFFER_SIZE];
+ unsigned long value;
+
+ FILE *file = fopen(PROC_CONFIGURE_PATH, "r");
+ if (!file) {
+ return;
+ }
+
+ while (fgets(buffer, CONFIGURE_BUFFER_SIZE, file)
+ && line < CONFIGURE_MAX_LINE) {
+ line++;
+ if (buffer[0] == '#')
+ continue;
+ if (!sscanf(buffer, "%s %lu", procname, &value))
+ goto out;
+ set_linsched_proc(procname, value);
+ }
+
+out:
+ fclose(file);
+}
+
void linsched_init(struct linsched_topology *topo)
{
curr_task_id = 1;
@@ -98,6 +127,7 @@ void linsched_init(struct linsched_topology *topo)

init_lb_info();
init_stop_tasks();
+ linsched_read_proc_configure();
}

void linsched_default_callback(void)
diff --git a/tools/linsched/tests/proc.conf b/tools/linsched/tests/proc.conf
new file mode 100644
index 0000000..b7276da
--- /dev/null
+++ b/tools/linsched/tests/proc.conf
@@ -0,0 +1,5 @@
+#style: procname value
+sched_child_runs_first 1;
+sched_latency_ns 6000000;
+sched_min_granularity_ns 750000;
+sched_wakeup_granularity_ns 1000000;
--
1.7.1

--
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/