On Tue, 14 Jul 2020 20:31:43 +0200 Peter Zijlstra <pet...@infradead.org> wrote:
> On Tue, Jul 14, 2020 at 12:07:01PM -0400, Steven Rostedt wrote: > > Can we add a statement that says something like: "Because x86 now calls > > static_call_init() before the setup of the memory allocator, we must > > avoid using kmalloc() and friends for core kernel static calls." ? > > > > This was the missing piece for me. > > It now reads like this. > > --- > Subject: static_call: Allow early init > From: Peter Zijlstra <pet...@infradead.org> > Date: Fri, 4 Oct 17:21:10 CEST 2019 > > In order to use static_call() to wire up x86_pmu, we need to > initialize earlier, specifically before memory allocation works; copy > some of the tricks from jump_label to enable this. > > Primarily we overload key->next to store a sites pointer when there > are no modules, this avoids having to use kmalloc() to initialize the > sites and allows us to run much earlier. All the pieces lie in place. Thanks! Reviewed-by: Steven Rostedt (VMware) <rost...@goodmis.org> -- Steve > > Signed-off-by: Peter Zijlstra (Intel) <pet...@infradead.org> > ---