some proposed tuna (GUI) changes
by Guy Streeter
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello all,
I've been thinking about 3 separate issues regarding the tuna GUI, and I
have some proposals to address them. I'll list each one separately.
1. The CPU view doesn't scale well to really large numbers of CPUs. Modern
server systems have 64 or more processing units. It would be good to be able
to refer to CPU as sets such as NUMA nodes, sockets, shared cache, or
distance groups. This would help us move applications or IRQs to specific
sets of CPUs.
I'm working on an example design that would move the CPU view to a pop-up
window and display CPUs in a topological view. There would be an overview of
the current CPU selection in the header bar of the main window, and that
would be a drop target for dragged IRQs or processes.
The popup window could also display which CPUs are available to which PCI
devices. This can be helpful on NUMA systems for instance.
2. The tuna GUI ought to be in an RPM package that "Requires" the necessary
graphics packages. Right now, it just suggests on the commandline what you
might need to install to get it to work. This is a silent failure when tuna
is invoked as a desktop app.
I suggest we break the GUI into a separate program in a separate RPM
package. The tuna command-line program can exec the GUI when it is invoked
without arguments. The tuna GUI RPM can specify the appropriate package
requirements so it can run successfully.
3. Tuna now only runs as root. This was implemented because the profile
management section failed fatally when access permissions failed. Some of
this has been resolved, but the profile tabs are not useful and look
incomplete when the GUI is run without proper privileges.
I suggest we break out the profile handling into its own program also. We
can make it use PolicyKit and require root access to run. The main tuna GUI
can have a button to launch the profile GUI program. The tuna command-line
can have an option to launch the profile application as well.
When run without privileges, the main tuna GUI could pop up a notification
that some operations make fail, and offer to re-launch through PolicyKit to
obtain root privilege. We should also verify that every failed operation in
the GUI is properly reported, so a non-root user would know their attempted
adjustments did not take place.
That's it. Let me know if you have questions about my proposals, and also if
you have other suggested solutions or other enhancements we might consider.
thanks,
- --Guy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iEYEARECAAYFAlV16BYACgkQ0Bme0QyNhPTh+wCffk4iSVAIYDyOpiNbsqDFara6
FqIAoLF5BuS7kEuOOunP9MlSZFXZlpFd
=bw1g
-----END PGP SIGNATURE-----
7 years, 10 months
tuna patches (master branch)
by John Kacur
Please integrate the following patches.
Number 0001-* is a respin of a previous patch, which you should drop if you already integrated it, but I suspect you haven't.
John
7 years, 11 months
tuna: print an error message when sched_setaffinity returns EINVAL
by John Kacur
When you attempt to move a thread that cannot be moved,
schedutils.sched_setaffinity() throws an EINVAL OSError exception. tuna
does not capture this, so the command exits with a Python traceback
instead of an error message.
eg:
tuna --cpus=0 --threads=migration/1 --move
Traceback (most recent call last):
File "/bin/tuna", line 656, in <module>
main()
File "/bin/tuna", line 572, in main
spread = spread)
File "/usr/lib/python2.7/site-packages/tuna/tuna.py", line 265, in
move_threads_to_cpu
raise e
OSError: [Errno 22] Invalid argument
This change handles that situation and exits more gracefully with
an error message like this
tuna --cpus=0 --threads=migration/1 --move
Cannot move thread
Reported-by: Guy Streeter <streeter(a)redhat.com>
Signed-off-by: John Kacur <jkacur(a)redhat.com>
(see attachment for actual patch)
7 years, 11 months