Blame SOURCES/tuna-isolate_cpus-exit-with-a-message.patch

59a996
From 048250c4e0469f5ab3b6230092e1ce40b6b148c6 Mon Sep 17 00:00:00 2001
59a996
From: John Kacur <jkacur@redhat.com>
59a996
Date: Wed, 13 Sep 2017 00:39:08 +0100
59a996
Subject: [PATCH 2/2] tuna: isolate_cpus - exit with a message instead of a
59a996
 traceback
59a996
59a996
isolate_cpus can create a traceback if passed an illegal cpuset
59a996
If this happens, exit with a message instead of a traceback
59a996
59a996
Signed-off-by: John Kacur <jkacur@redhat.com>
59a996
---
59a996
 tuna/tuna.py | 13 +++++++++++++
59a996
 1 file changed, 13 insertions(+)
59a996
59a996
diff --git a/tuna/tuna.py b/tuna/tuna.py
59a996
index 13b3743e8d06..1ed21353ab48 100755
59a996
--- a/tuna/tuna.py
59a996
+++ b/tuna/tuna.py
59a996
@@ -343,6 +343,7 @@ def parse_irq_affinity_filename(filename, nr_cpus):
59a996
 
59a996
 
59a996
 def isolate_cpus(cpus, nr_cpus):
59a996
+        fname = sys._getframe(  ).f_code.co_name # Function name
59a996
 	ps = procfs.pidstats()
59a996
 	ps.reload_threads()
59a996
 	previous_pid_affinities = {}
59a996
@@ -354,6 +355,9 @@ def isolate_cpus(cpus, nr_cpus):
59a996
 		except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
59a996
 			if e[0] == errno.ESRCH:
59a996
 				continue
59a996
+                        elif e[0] == errno.EINVAL:
59a996
+                            print >> sys.stderr, "Function:", fname, ",", e.strerror
59a996
+                            sys.exit(2)
59a996
 			raise e
59a996
 		if set(affinity).intersection(set(cpus)):
59a996
 			previous_pid_affinities[pid] = copy.copy(affinity)
59a996
@@ -363,6 +367,9 @@ def isolate_cpus(cpus, nr_cpus):
59a996
 			except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
59a996
 				if e[0] == errno.ESRCH:
59a996
 					continue
59a996
+                                elif e[0] == errno.EINVAL:
59a996
+                                    print >> sys.stderr, "Function:", fname, ",", e.strerror
59a996
+                                    sys.exit(2)
59a996
 				raise e
59a996
 
59a996
 		if not ps[pid].has_key("threads"):
59a996
@@ -376,6 +383,9 @@ def isolate_cpus(cpus, nr_cpus):
59a996
 			except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
59a996
 				if e[0] == errno.ESRCH:
59a996
 					continue
59a996
+                                elif e[0] == errno.EINVAL:
59a996
+                                    print >> sys.stderr, "Function:", fname, ",", e.strerror
59a996
+                                    sys.exit(2)
59a996
 				raise e
59a996
 			if set(affinity).intersection(set(cpus)):
59a996
 				previous_pid_affinities[tid] = copy.copy(affinity)
59a996
@@ -385,6 +395,9 @@ def isolate_cpus(cpus, nr_cpus):
59a996
 				except (SystemError, OSError) as e: # old python-schedutils incorrectly raised SystemError
59a996
 					if e[0] == errno.ESRCH:
59a996
 						continue
59a996
+                                        elif e[0] == errno.EINVAL:
59a996
+                                            print >> sys.stderr, "Function:", fname, ",", e.strerror
59a996
+                                            sys.exit(2)
59a996
 					raise e
59a996
 
59a996
 	del ps
59a996
-- 
59a996
2.9.5
59a996