Blame SOURCES/0013-irqbalance-ui-print-cpulist-in-SETUP-IRQS.patch

9425f0
From 577796abe7337c8df446c082688816ec22804876 Mon Sep 17 00:00:00 2001
9425f0
From: Liu Chao <liuchao173@huawei.com>
9425f0
Date: Mon, 11 Jul 2022 11:12:06 +0800
9425f0
Subject: [PATCH 13/14] irqbalance-ui: print cpulist in SETUP IRQS
9425f0
9425f0
save space for printing interrupt names
9425f0
9425f0
Signed-off-by: Liu Chao <liuchao173@huawei.com>
9425f0
---
9425f0
 ui/ui.c | 30 +++++++++++++++++++++++++++---
9425f0
 1 file changed, 27 insertions(+), 3 deletions(-)
9425f0
9425f0
diff --git a/ui/ui.c b/ui/ui.c
9425f0
index 2dad442..f1490d5 100644
9425f0
--- a/ui/ui.c
9425f0
+++ b/ui/ui.c
9425f0
@@ -352,9 +352,32 @@ void handle_cpu_banning()
9425f0
 	}
9425f0
 }
9425f0
 
9425f0
+static int rbot, rtop;
9425f0
+
9425f0
+static inline void bsnl_emit(char *buf, int buflen)
9425f0
+{
9425f0
+	int len = strlen(buf);
9425f0
+	if (len > 0) {
9425f0
+		snprintf(buf + len, buflen - len, ",");
9425f0
+		len++;
9425f0
+	}
9425f0
+	if (rbot == rtop)
9425f0
+		snprintf(buf + len, buflen - len, "%d", rbot);
9425f0
+	else
9425f0
+		snprintf(buf + len, buflen - len, "%d-%d", rbot, rtop);
9425f0
+}
9425f0
+
9425f0
 void copy_assigned_obj(int *number, void *data)
9425f0
 {
9425f0
-	snprintf(data + strlen(data), 128 - strlen(data), "%d, ", *number);
9425f0
+	if (rtop == -1) {
9425f0
+		rbot = rtop = *number;
9425f0
+		return;
9425f0
+	}
9425f0
+	if (*number > rtop + 1) {
9425f0
+		bsnl_emit(data, 128);
9425f0
+		rbot = *number;
9425f0
+	}
9425f0
+	rtop = *number;
9425f0
 }
9425f0
 
9425f0
 void print_assigned_objects_string(irq_t *irq, int *line_offset)
9425f0
@@ -363,9 +386,10 @@ void print_assigned_objects_string(irq_t *irq, int *line_offset)
9425f0
 		return;
9425f0
 	}
9425f0
 	char assigned_to[128] = "\0";
9425f0
+	rtop = -1;
9425f0
 	for_each_int(irq->assigned_to, copy_assigned_obj, assigned_to);
9425f0
-	assigned_to[strlen(assigned_to) - 2] = '\0';
9425f0
-	mvprintw(*line_offset, 68, "%s", assigned_to);
9425f0
+	bsnl_emit(assigned_to, 128);
9425f0
+	mvprintw(*line_offset, 68, "%s             ", assigned_to);
9425f0
 }
9425f0
 
9425f0
 void print_tmp_irq_line(irq_t *irq, void *data __attribute__((unused)))
9425f0
-- 
9425f0
2.33.1
9425f0