On Fri, 15 Jan 2021 16:26:21 +0100 Alexander Potapenko <glider@xxxxxxxxxx> wrote: > > 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