On Fri, 15 Jan 2021 16:26:21 +0100
Alexander Potapenko [off-list ref] wrote:
quoted
please put something like this in
tracefs, as there is no such rules there. Or debugfs, but please, not
sysfs.
Does tracefs have anything similar to sysfs_notify() or any other way
to implement a poll() handler?
Our main goal is to let users wait on poll(), so that they don't have
to check the file for new contents every now and then. Is it possible
with tracefs or debugfs?
Polling should work on tracefs. I hope it does, as I depend on it ;-)
And if there's an issue, we can always add more features.
Also, for our goal debugfs isn't a particularly good fit, as Android
kernels do not enable debugfs.
Not sure about tracefs, they seem to have it, need to check.
I believe tracefs is used extensively on Android.
Do you think it is viable to keep
/sys/kernel/error_report/report_count in sysfs and use it for
notifications, but move last_report somewhere else?
(I'd probably prefer procfs, but it could be tracefs as well, if you
find that better).
If you do use tracefs, add it to the top level tracing directory (no need
to have instances of it), and rename it to "kernel_warnings", as
"error_report" is too close to the existing "error_log" which holds error
messages of syntactic errors done by users entering in commands to some of
the special files.
That is, /sys/kernel/tracing/kernel_warnings/ would be your error_report/
directory you have now.
Use the function in kernel/trace/trace.c: tracer_init_tracefs() to add that
directory. That's for files in the tracefs directory that will not be
duplicated by instances.
-- Steve