Message ID | Q_k1s4hBtUy2px8ou0QKenjEK2_T_LoV8IxAE79aBakBogb-7uHp2fpET3oWtI1t3dy8uKjWeRzQOdKNzIzOOpyM4OjutJOriZ9TrGY6b-g=@protonmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/3] tools/rtla: Improve code readability in timerlat_load.py | expand |
po 21. 10. 2024 v 17:14 odesÃlatel furkanonder <furkanonder@protonmail.com> napsal: > > The enhancements made to timerlat_load.py are intended to improve the script's exception handling. > > Summary of the changes: > - Specific exceptions are now caught for CPU affinity and priority > settings, with clearer error messages provided. > - The timerlat file descriptor opening now includes handling for > PermissionError and OSError, with informative messages. > - In the infinite loop, generic exceptions have been replaced with > specific types like KeyboardInterrupt and IOError, improving feedback. > > Before: > $ sudo python timerlat_load.py 122 > Error setting affinity > After: > $ sudo python timerlat_load.py 122 > Error setting affinity: [Errno 22] Invalid argument > > Before: > $ sudo python timerlat_load.py 1 -p 950 > Error setting priority > After: > $ sudo python timerlat_load.py 1 -p 950 > Error setting priority: [Errno 22] Invalid argument > > Before: > $ python timerlat_load.py 1 > Error opening timerlat fd, did you run timerlat -U? > After: > $ python timerlat_load.py 1 > Permission denied. Please check your access rights. > > Signed-off-by: Furkan Onder <furkanonder@protonmail.com> > --- > tools/tracing/rtla/sample/timerlat_load.py | 37 +++++++++++++++++++++---------------- > 1 file changed, 21 insertions(+), 16 deletions(-) > > diff --git a/tools/tracing/rtla/sample/timerlat_load.py b/tools/tracing/rtla/sample/timerlat_load.py > index d7341ed5127a..a819c3588073 100644 > --- a/tools/tracing/rtla/sample/timerlat_load.py > +++ b/tools/tracing/rtla/sample/timerlat_load.py > @@ -31,43 +31,48 @@ args = parser.parse_args() > > try: > affinity_mask = {args.cpu} > -except: > - print("Invalid cpu: " + args.cpu) > - exit(1) > - > -try: > os.sched_setaffinity(0, affinity_mask) > -except: > - print("Error setting affinity") > - exit(1) > +except Exception as e: > + print(f"Error setting affinity: {e}") > + sys.exit(1) > > if args.prio: > try: > param = os.sched_param(args.prio) > os.sched_setscheduler(0, os.SCHED_FIFO, param) > - except: > - print("Error setting priority") > - exit(1) > + except Exception as e: > + print(f"Error setting priority: {e}") > + sys.exit(1) > > try: > timerlat_path = f"/sys/kernel/tracing/osnoise/per_cpu/cpu{args.cpu}/timerlat_fd" > timerlat_fd = open(timerlat_path, 'r') > -except: > +except PermissionError: > + print("Permission denied. Please check your access rights.") > + sys.exit(1) > +except OSError: > print("Error opening timerlat fd, did you run timerlat -U?") > - exit(1) > + sys.exit(1) > > try: > data_fd = open("/dev/full", 'r') > -except: > - print("Error opening data fd") > +except Exception as e: > + print(f"Error opening data fd: {e}") > + sys.exit(1) > > while True: > try: > timerlat_fd.read(1) > data_fd.read(20 * 1024 * 1024) > - except: > + except KeyboardInterrupt: > print("Leaving") > break > + except IOError as e: > + print(f"I/O error occurred: {e}") > + break > + except Exception as e: > + print(f"Unexpected error: {e}") > + break > > timerlat_fd.close() > data_fd.close() > -- > 2.46.2 > Reviewed-by: Tomas Glozar <tglozar@redhat.com>
diff --git a/tools/tracing/rtla/sample/timerlat_load.py b/tools/tracing/rtla/sample/timerlat_load.py index d7341ed5127a..a819c3588073 100644 --- a/tools/tracing/rtla/sample/timerlat_load.py +++ b/tools/tracing/rtla/sample/timerlat_load.py @@ -31,43 +31,48 @@ args = parser.parse_args() try: affinity_mask = {args.cpu} -except: - print("Invalid cpu: " + args.cpu) - exit(1) - -try: os.sched_setaffinity(0, affinity_mask) -except: - print("Error setting affinity") - exit(1) +except Exception as e: + print(f"Error setting affinity: {e}") + sys.exit(1) if args.prio: try: param = os.sched_param(args.prio) os.sched_setscheduler(0, os.SCHED_FIFO, param) - except: - print("Error setting priority") - exit(1) + except Exception as e: + print(f"Error setting priority: {e}") + sys.exit(1) try: timerlat_path = f"/sys/kernel/tracing/osnoise/per_cpu/cpu{args.cpu}/timerlat_fd" timerlat_fd = open(timerlat_path, 'r') -except: +except PermissionError: + print("Permission denied. Please check your access rights.") + sys.exit(1) +except OSError: print("Error opening timerlat fd, did you run timerlat -U?") - exit(1) + sys.exit(1) try: data_fd = open("/dev/full", 'r') -except: - print("Error opening data fd") +except Exception as e: + print(f"Error opening data fd: {e}") + sys.exit(1) while True: try: timerlat_fd.read(1) data_fd.read(20 * 1024 * 1024) - except: + except KeyboardInterrupt: print("Leaving") break + except IOError as e: + print(f"I/O error occurred: {e}") + break + except Exception as e: + print(f"Unexpected error: {e}") + break timerlat_fd.close() data_fd.close()
The enhancements made to timerlat_load.py are intended to improve the script's exception handling. Summary of the changes: - Specific exceptions are now caught for CPU affinity and priority settings, with clearer error messages provided. - The timerlat file descriptor opening now includes handling for PermissionError and OSError, with informative messages. - In the infinite loop, generic exceptions have been replaced with specific types like KeyboardInterrupt and IOError, improving feedback. Before: $ sudo python timerlat_load.py 122 Error setting affinity After: $ sudo python timerlat_load.py 122 Error setting affinity: [Errno 22] Invalid argument Before: $ sudo python timerlat_load.py 1 -p 950 Error setting priority After: $ sudo python timerlat_load.py 1 -p 950 Error setting priority: [Errno 22] Invalid argument Before: $ python timerlat_load.py 1 Error opening timerlat fd, did you run timerlat -U? After: $ python timerlat_load.py 1 Permission denied. Please check your access rights. Signed-off-by: Furkan Onder <furkanonder@protonmail.com> --- tools/tracing/rtla/sample/timerlat_load.py | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) -- 2.46.2