Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Steven Rostedt
On Tue, 14 Jul 2020 20:31:43 +0200 Peter Zijlstra 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()

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Peter Zijlstra
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 mis

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Steven Rostedt
On Tue, 14 Jul 2020 17:54:17 +0200 Peter Zijlstra wrote: > > I guess that is, why did moving the initialization early require an > > allocation where initializing it later did not? What allocation are we > > avoiding? > > The other way around. Before this patch initialization required an > allo

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Peter Zijlstra
On Tue, Jul 14, 2020 at 10:16:36AM -0400, Steven Rostedt wrote: > > That's just how the code was; it treated vmlinux as the NULL module, and > > as such needed a static_call_mod allocated to host the static_call_sites > > pointer. > > > > That is, the static_call_key has a single linked list poin

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Steven Rostedt
On Tue, 14 Jul 2020 11:51:17 +0200 Peter Zijlstra wrote: > On Mon, Jul 13, 2020 at 04:24:19PM -0400, Steven Rostedt wrote: > > On Sat, 11 Jul 2020 07:08:31 +0200 > > Peter Zijlstra wrote: > > > > > On Fri, Jul 10, 2020 at 09:14:26PM -0400, Steven Rostedt wrote: > > > > On Fri, 10 Jul 2020 1

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-14 Thread Peter Zijlstra
On Mon, Jul 13, 2020 at 04:24:19PM -0400, Steven Rostedt wrote: > On Sat, 11 Jul 2020 07:08:31 +0200 > Peter Zijlstra wrote: > > > On Fri, Jul 10, 2020 at 09:14:26PM -0400, Steven Rostedt wrote: > > > On Fri, 10 Jul 2020 15:38:46 +0200 > > > Peter Zijlstra wrote: > > > > > > > In order to use

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-13 Thread Steven Rostedt
On Sat, 11 Jul 2020 07:08:31 +0200 Peter Zijlstra wrote: > On Fri, Jul 10, 2020 at 09:14:26PM -0400, Steven Rostedt wrote: > > On Fri, 10 Jul 2020 15:38:46 +0200 > > Peter Zijlstra wrote: > > > > > In order to use static_call() to wire up x86_pmu, we need to > > > initialize earlier; copy som

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-10 Thread Peter Zijlstra
On Fri, Jul 10, 2020 at 09:14:26PM -0400, Steven Rostedt wrote: > On Fri, 10 Jul 2020 15:38:46 +0200 > Peter Zijlstra wrote: > > > In order to use static_call() to wire up x86_pmu, we need to > > initialize earlier; copy some of the tricks from jump_label to enable > > this. > > > > Primarily we

Re: [PATCH v6 15/17] static_call: Allow early init

2020-07-10 Thread Steven Rostedt
On Fri, 10 Jul 2020 15:38:46 +0200 Peter Zijlstra wrote: > In order to use static_call() to wire up x86_pmu, we need to > initialize earlier; 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 a

[PATCH v6 15/17] static_call: Allow early init

2020-07-10 Thread Peter Zijlstra
In order to use static_call() to wire up x86_pmu, we need to initialize earlier; 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