This is an rfc to get some discussion rolling on sysfs support for XFS.
The motivation for this work is here:
... and also illustrated by an xfstests test I'll send in conjunction
that demonstrates use of the values exported here. This functionality
creates a /sys/fs/xfs directory at module initialization time and a
per-mount subdirectory for each mounted device.
The basic sysfs support code is pretty much borrowed from ext4. I've
dumped it in xfs_mount.c for lack of a better place. While the currently
exported values are more associated with the log, I'm starting with a
flat directory structure here that seemingly aligns with struct
xfs_mount. That said, I could drop the code into xfs_stats.c or create
an entirely new file if that is preferred.
I'm also interested in thoughts about what else might be exported here,
if anything. I'm pretty sure we don't want to go and add all kinds of
tunables and knobs just for fun. ;) I suppose things like the current
AIL target or CIL push sequence could be relevant. There's also
opportunity for per-AG data, though that would probably warrant a new
subdirectory for AGs and require another child kobject, perhaps embedded
Dave, I believe you had some ideas along the lines of not just dumping
perag data, but having some element of control over an allocation
group. Care to elaborate a bit more on that?
Thoughts/flames on any or all of this appreciated.
P.S., From the looks of it, the attributes we end up creating need to be
documented under /Documentation/ABI/testing/, so it's worth thinking
about the desired directory structure a bit up front as well.
Brian Foster (2):
xfs: add basic per-mount sysfs attribute support
xfs: sysfs attributes for the current log state
fs/xfs/xfs_mount.c | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++
fs/xfs/xfs_mount.h | 2 +
fs/xfs/xfs_super.c | 12 ++++-
3 files changed, 146 insertions(+), 1 deletion(-)