Moving lustre procfs stuff to sysfs & questions.
cover Moving lustre procfs stuff to sysfs & questions.
From: Oleg Drokin <[email protected]>
Greg, I wonder if you can take at least a brief look and tell me if this is the direction you were envisioning wrt this particular cleanup.
It's not all-inclusive, but I have a long flight tomorrow so if the direction is right, I can convert more of this stuff.
This does not touch some of the multi-value stuff that would probably need to move to debugfs or other places, that would be a next step.
Additionally some questions:
I know sysfs is supposedly 1 file 1 value, though I see some exceptions, e.g.:
# cat /sys/kernel/vmcoreinfo 2b57500 1024
So we have this /proc/fs/lustre/devices that prints status of all "lustre internal devices (or obd for short)" like this:
# cat /proc/fs/lustre/devices 0 UP mgc MGC192.168.10.226@tcp d6815182-b36d-c4ba-6aa6-065aeb9e9769 5 1 UP lov lustre-clilov-ffff8800bd617800 32be3f55-891e-ed82-cae9-6add0770d503 4 ...
Obviously I cannot retain it as a single file, but do I really need to create a tree that would look like:
/sys/fs/lustre/obd/[1...]/{status,name,type,uuid,refcount} (or possibly even /sys/devices/virtual/lustre_obd/... )
or can I get away with just
/sys/fs/lustre/obd/[1...] files where there's one line per obd like:
0 UP mgc MGC192.168.10.226@tcp d6815182-b36d-c4ba-6aa6-065aeb9e9769 5
(frankly, I have not figured out yet how to dynamically add files to sysfs dir).
What about /proc/sys stuff - /proc/sys/lustre and /proc/sys/lnet? Hopefully it's ok to leave those where they are?
Also I found that cgroup does calls into kernfs directly, gaining ability to register seq_file files and otherwise do all sorts of stuff that would be cool to do from lustre too ;)
These patches compile and run, but I imagine it's not a great idea to merge them yet.
Thanks.
Oleg Drokin (3):
staging/lustre: Generic helpers for sysfs staging/lustre: Move /proc/fs/lustre root level files to sysfs staging/lustre/llite: move some procfs files to sysfs
.../staging/lustre/lustre/include/lprocfs_status.h | 26 +++ .../staging/lustre/lustre/llite/llite_internal.h | 4 + drivers/staging/lustre/lustre/llite/llite_lib.c | 7 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 190 ++++++++++++--------- drivers/staging/lustre/lustre/llite/super25.c | 11 +- .../lustre/lustre/obdclass/linux/linux-module.c | 116 ++++++++----- .../lustre/lustre/obdclass/lprocfs_status.c | 24 +++ 7 files changed, 246 insertions(+), 132 deletions(-)
Signature · 1 line
2.1.0
Quoted 23 lines · On Sat, May 02, 2015 at 11:10:05PM -0400, [email protected] wrote:
From: Oleg Drokin <[email protected]>
Greg, I wonder if you can take at least a brief look and tell me if this is the direction you were envisioning wrt this particular cleanup.
It's not all-inclusive, but I have a long flight tomorrow so if the direction is right, I can convert more of this stuff.
This does not touch some of the multi-value stuff that would probably need to move to debugfs or other places, that would be a next step.
Additionally some questions:
I know sysfs is supposedly 1 file 1 value, though I see some exceptions, e.g.:# cat /sys/kernel/vmcoreinfo 2b57500 1024So we have this
/proc/fs/lustre/devicesthat prints status of all "lustre internal devices (or obd for short)" like this:# cat /proc/fs/lustre/devices 0 UP mgc MGC192.168.10.226@tcp d6815182-b36d-c4ba-6aa6-065aeb9e9769 5 1 UP lov lustre-clilov-ffff8800bd617800 32be3f55-891e-ed82-cae9-6add0770d503 4 ...
Quoted 9 lines
Obviously I cannot retain it as a single file, but do I really need to create a tree that would look like:
/sys/fs/lustre/obd/[1...]/{status,name,type,uuid,refcount} (or possibly even/sys/devices/virtual/lustre_obd/... )
or can I get away with just
/sys/fs/lustre/obd/[1...] files where there's one line per obd like:
0 UP mgc MGC192.168.10.226@tcp d6815182-b36d-c4ba-6aa6-065aeb9e9769 5
(frankly, I have not figured out yet how to dynamically add files to sysfs dir).
Either make a tree of kobjects, or individual files, but not one big file, that's not acceptable for sysfs, sorry.
Quoted 2 lines
What about
/proc/sysstuff -/proc/sys/lustreand/proc/sys/lnet? Hopefully it's ok to leave those where they are?
Nope, please remove. If you aren't a process value, you can't add new proc files.
Quoted 3 lines
Also I found that cgroup does calls into kernfs directly, gaining ability to register
seq_filefiles and otherwise do all sorts of stuff that would be cool to do from lustre too ;)
If you want to make lustrefs, be my guest, you can do whatever you want in that, using kernfs, but that's not ok for sysfs, sorry.
thanks,
greg k-h
Quoted 5 lines · Greg Kroah-Hartman
Quoted 3 lines
Also I found that cgroup does calls into kernfs directly, gaining ability to register
seq_filefiles and otherwise do all sorts of stuff that would be cool to do from lustre too ;)If you want to make lustrefs, be my guest, you can do whatever you want in that, using kernfs, but that's not ok for sysfs, sorry.
If only __kernfs_create_file was exported… ;)
Otherwise you cannot really do that from modules.
Bye,
Oleg--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html