[PATCH 1/2] cputree: kernel parameter parsing separated

Petr Holasek pholasek at redhat.com
Wed Aug 26 05:15:49 PDT 2015


Parsing of kernel parameter cpumask has been split to find_cmdline_cpumask
function.

Signed-off-by: Petr Holasek <pholasek at redhat.com>
---
 cputree.c | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/cputree.c b/cputree.c
index 5a2b69d..dce85f9 100644
--- a/cputree.c
+++ b/cputree.c
@@ -63,10 +63,30 @@ cpumask_t unbanned_cpus;
  * as specified through the isolcpus= boot commandline. Users can
  * override this with the IRQBALANCE_BANNED_CPUS environment variable.
  */
+static int find_cmdline_cpumask(const char *param, char *line, cpumask_t out)
+{
+	char *c;
+
+	if ((c = strstr(line, param))) {
+		char *end;
+		int len;
+
+		c += strlen(param);
+		for (end = c; *end != ' ' && *end != '\0' && *end != '\n'; end++);
+		len = end - c;
+
+		cpulist_parse(c, len, out);
+
+		return 0;
+	}
+
+	return 1;
+}
+
 static void setup_banned_cpus(void)
 {
 	FILE *file;
-	char *c, *line = NULL;
+	char *line = NULL;
 	size_t size = 0;
 	const char *isolcpus = "isolcpus=";
 	char buffer[4096];
@@ -84,16 +104,7 @@ static void setup_banned_cpus(void)
 	if (getline(&line, &size, file) <= 0)
 		goto out2;
 
-	if ((c = strstr(line, isolcpus))) {
-		char *end;
-		int len;
-
-		c += strlen(isolcpus);
-		for (end = c; *end != ' ' && *end != '\0' && *end != '\n'; end++);
-		len = end - c;
-
-		cpulist_parse(c, len, banned_cpus);
-	}
+	find_cmdline_cpumask(isolcpus, line, banned_cpus);
 
  out2:
 	fclose(file);
-- 
2.4.3




More information about the irqbalance mailing list