> Let's fix the number of parameters to this function:) >> Not sure what you mean by that. Actually i meant this ""int tracefs_function_filter(struct tracefs_instance *instance, const char * const * filters, const char * module, bool reset, const char * const ** errs);"" For every patch, a parameter is increasing in this API. > let's return the number of bytes written, also we will calculate the > complete filters length and return it, if there is difference, > we will loop into the integer array and print the erroneous filters >>Not sure how that is helpful. How would you use the number of bytes >>written? We will return the number of bytes written and we also store the total length of strings in filters array, in one pointer variable, we will check the difference between bytes written and the total length of the strings, if there is difference we will print failed filters otherwise we will not print anything. >It is very useful to have a way to report back the failed filters. >Using an array >of strings will work for this API, but I was thinking somehow to leverage the >error_log file by the ftrace itself. Currently it does not report any >error, just >returns EINVAL. In more complex filters it would be useful to log >more detailed description of the problem in the error_log file. This error_log is also a good idea. If possible let's have a live discussion on this API,so that we can discuss the corner cases in the design more efficiently and we can close it ASAP. Thanks, sameer shaik. Thanks, sameer shaik On Tue, Mar 2, 2021 at 9:52 AM Tzvetomir Stoyanov <tz.stoyanov@xxxxxxxxx> wrote: > > On Mon, Mar 1, 2021 at 10:40 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > > On Tue, 2 Mar 2021 22:45:10 +0530 > > Sameeruddin shaik <sameeruddin.shaik8@xxxxxxxxx> wrote: > > > > > This new API will write the function filters into the > > > set_ftrace_filter file, it will write only string as of now, it can't > > > handle kernel glob or regular expressions. > > > > The limitation of no glob or regular expressions is fine. We can add that > > in future patches. > > > > > > > > tracefs_function_filter() > > > > > > https://bugzilla.kernel.org/show_bug.cgi?id=210643 > > > > > > Signed-off-by: Sameeruddin shaik <sameeruddin.shaik8@xxxxxxxxx> > > > > [ ... ] > > > > > + free(each_str); > > > + continue; > > > + } > > > + size += write(fd, each_str, write_size); > > > > Need to check errors here, and we need a way to report that an error > > happened for a string. Perhaps the API also needs to have an error message > > pointer that is passed in? Or a bitmask that lets the user know which > > filter failed? > > > > Tzvetomir, have any ideas on how to report back to the caller which filter > > failed? Could just send back an array of strings of the filters that failed. > > It is very useful to have a way to report back the failed filters. > Using an array > of strings will work for this API, but I was thinking somehow to leverage the > error_log file by the ftrace itself. Currently it does not report any > error, just > returns EINVAL. In more complex filters it would be useful to log > more detailed description of the problem in the error_log file. > > [ ... ] > > > -- > Tzvetomir (Ceco) Stoyanov > VMware Open Source Technology Center