On Tue, Jul 08, 2025 at 12:31:20PM -0400, Steven Rostedt wrote: > On Tue, 8 Jul 2025 08:53:56 -0700 > Linus Torvalds <torva...@linux-foundation.org> wrote: > > > On Tue, 8 Jul 2025 at 07:41, Steven Rostedt <rost...@goodmis.org> wrote: > > > > > > Would something like this work? If someone enables the config to enable > > > the > > > validation, I don't think we need dynamic printk to do it (as that > > > requires > > > passing in the format directly and not via a pointer). > > > > I really think you should just not use 'user_access_begin()" AT ALL if > > you need to play these kinds of games. > > > > Looking at the code a bit deeper, I don't think we need to play these games > and still keep the user_read_access_begin(). > > The places that are more performance critical (where it reads the sframe > during normal stack walking during profiling) has no debug output, and > there's nothing there that needs to take it out of the user_read_access > area. > > It's the validator that adds these hacks. I don't think it needs to. It can > just wrap the calls to the code that requires user_read_access and then > check the return value. The validator is just a debugging feature and > performance should not be an issue. > > But I do think performance is something to care about during normal > operations where the one big user_read_access_begin() can help. > > What about something like this? It adds "safe" versions of the user space > access functions and uses them only in the slow (we don't care about > performance) validator:
Looks good to me, thanks! -- Josh