On Mon, 26 Mar 2018 10:55:51 -0700 Alexei Starovoitov <ast@xxxxxx> wrote: > An email ago you were ok to s/return/return NULL/ in your out-of-tree > module, but now flip flop to add new function approach just to > reduce the work you need to do in lttng? > We're not talking about changing __kmalloc signature here. > My patch extends for_each_kernel_tracepoint() api similar to other > for_each_*() iterators and improves possible uses of it. Alexei, do you have another use case for using for_each_kernel_tracepoint() other than the find_tp? If so, then I'm sure Mathieu can handle the change. But I think it's cleaner to add a tracepoint_find_by_name() function. If you come up with another use case for using the for_each* function then we'll consider changing it then. > One thing is to be nice to out-of-tree and do not break them > for no reason, but arguing that kernel shouldn't add a minor extension > to for_each_kernel_tracepoint() api is really taking the whole thing > to next level. That's not the point. I disagree with the reason for the change, and believe that it would be cleaner to add a find_by_name() function. Which would make your patch set even cleaner. Instead of having in the bpf code: static void *__find_tp(struct tracepoint *tp, void *priv) { char *name = priv; if (!strcmp(tp->name, name)) return tp; return NULL; } [..] tp = for_each_kernel_tracepoint(__find_tp, tp_name); if (!tp) return -ENOENT; You would simply have: tp = tracepoint_find_by_name(tp_name); if (!tp) return -ENOENT; That would make the code more obvious to what it is doing. And this does not impede your patch set at all. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html