Messages in this thread | | | Date | Thu, 29 Nov 2018 14:31:33 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH v2 4/4] x86/static_call: Add inline static call implementation for x86-64 |
| |
On Thu, 29 Nov 2018 11:24:43 -0800 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, Nov 29, 2018 at 11:16 AM Steven Rostedt <rostedt@goodmis.org> wrote: > > > > But then we need to implement all numbers of parameters. > > Oh, I agree, it's nasty. > > But it's actually a nastiness that we've solved before. In particular, > with the system call mappings, which have pretty much the exact same > issue of "map unknown number of arguments to registers". > > Yes, it's different - there you map the unknown number of arguments to > a structure access instead. And yes, the macros are unbelievably ugly. > See > > arch/x86/include/asm/syscall_wrapper.h
Those are not doing inline assembly.
> > and the __MAP() macro from > > include/linux/syscalls.h > > so it's not pretty. But it would solve all the problems. >
Again, not inline assembly, and those only handle up to 6 parameters.
My POC started down this route, until I notice that there's tracepoints that have 13 parameters! And I need to handle all tracepoints.
Yes, we can argue that we need to change those (if that doesn't break the API of something using it).
-- Steve
| |