On Fri, Nov 25, 2016 at 1:48 PM, Theodore Ts'o <tytso@xxxxxxx> wrote: > > There is a reason why people want to be able to do that, and that's > because kprobes doesn't give you access to the arguments and return > codes to the functions. Honestly, that's simply not a good reason. What if everybody did this? Do we pollute the whole kernel with this crap? No. And if not, then what's so special about something like afs that it would make sense there? The thing is, with function tracing, you *can* get the return value and arguments. Sure, you'll probably need to write eBPF and just attach it to that fentry call point, and yes, if something is inlined you're just screwed, but Christ, if you do debugging that way you shouldn't be writing kernel code in the first place. If you cannot do filesystem debugging without tracing every single function entry, you are doing something seriously wrong. Add a couple of relevant and valid trace points to get the initial arguments etc (and perhaps to turn on the function tracing going down the stack). > After all, we need *some* way of saying this can never be considered > stable. Oh, if you pollute the kernel with random idiotic trace points, not only are they not going to be considered stable, after a while people should stop pulling from you. I do think we should probably add a few generic VFS level breakpoints to make it easier for people to catch the arguments they get from the VFS layer (not every system call - if you're a filesystem person, you _shouldn't_ care about all the stuff that the VFS layer caches for you so that you never even have to see it). I do think that Al's "no trace points what-so-ever" is too strict. But I think a lot of people add complete crap with the "maybe it's needed some day" kind of mentality. The tracepoints should have a good _specific_ reason, and they should make sense. Not be randomly sprinkled "just because". Linus -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html