Skip to contentSkip to conversation

linsched: add the ability to read proc setting from proc.conf

PATCH New Michael Wang 1 participant 1 message Apr 27, 2012

lore
Share & tools
lore
#0 lore raw

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

From: Michael Wang <[email protected]>

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

---
 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
tools/linsched/linux_linsched.c +30 -0
index 6c24578..81825b9 100644
@@ -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)
tools/linsched/tests/proc.conf new file +5 -0
new file mode 100644
index 0000000..b7276da
@@ -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;
Signature · 1 line
1.7.1