> Hi Will, Mark,
>
> On Fri, 15 Jan 2021 at 17:32, Sumit Garg <[email protected]> wrote:
> >
> > With the recent feature added to enable perf events to use pseudo NMIs
> > as interrupts on platforms which support GICv3 or later, its now been
> > possible to enable hard lockup detector (or NMI watchdog) on arm64
> > platforms. So enable corresponding support.
> >
> > One thing to note here is that normally lockup detector is initialized
> > just after the early initcalls but PMU on arm64 comes up much later as
> > device_initcall(). So we need to re-initialize lockup detection once
> > PMU has been initialized.
> >
> > Signed-off-by: Sumit Garg <[email protected]>
> > ---
> >
> > Changes in v5:
> > - Fix lockup_detector_init() invocation to be rather invoked from CPU
> > binded context as it makes heavy use of per-cpu variables and shouldn't
> > be invoked from preemptible context.
> >
>
> Do you have any further comments on this?
>
> Lecopzer,
>
> Does this feature work fine for you now?
This really fixes the warning, I have a real hardware for testing this now.
but do we need to call lockup_detector_init() for each cpu?
In init/main.c, it's only called by cpu 0 for once.
BRs,
Lecopzer
> > Hi Will, Mark,
> >
> > On Fri, 15 Jan 2021 at 17:32, Sumit Garg <[email protected]> wrote:
> > >
> > > With the recent feature added to enable perf events to use pseudo NMIs
> > > as interrupts on platforms which support GICv3 or later, its now been
> > > possible to enable hard lockup detector (or NMI watchdog) on arm64
> > > platforms. So enable corresponding support.
> > >
> > > One thing to note here is that normally lockup detector is initialized
> > > just after the early initcalls but PMU on arm64 comes up much later as
> > > device_initcall(). So we need to re-initialize lockup detection once
> > > PMU has been initialized.
> > >
> > > Signed-off-by: Sumit Garg <[email protected]>
> > > ---
> > >
> > > Changes in v5:
> > > - Fix lockup_detector_init() invocation to be rather invoked from CPU
> > > binded context as it makes heavy use of per-cpu variables and shouldn't
> > > be invoked from preemptible context.
> > >
> >
> > Do you have any further comments on this?
> >
> > Lecopzer,
> >
> > Does this feature work fine for you now?
>
> This really fixes the warning, I have a real hardware for testing this now.
> but do we need to call lockup_detector_init() for each cpu?
>
> In init/main.c, it's only called by cpu 0 for once.
Oh sorry, I just misread the code, please ignore previous mail.
BRs,
Lecopzer
On Tue, 30 Mar 2021 at 14:07, Lecopzer Chen <[email protected]> wrote:
>
> > > Hi Will, Mark,
> > >
> > > On Fri, 15 Jan 2021 at 17:32, Sumit Garg <[email protected]> wrote:
> > > >
> > > > With the recent feature added to enable perf events to use pseudo NMIs
> > > > as interrupts on platforms which support GICv3 or later, its now been
> > > > possible to enable hard lockup detector (or NMI watchdog) on arm64
> > > > platforms. So enable corresponding support.
> > > >
> > > > One thing to note here is that normally lockup detector is initialized
> > > > just after the early initcalls but PMU on arm64 comes up much later as
> > > > device_initcall(). So we need to re-initialize lockup detection once
> > > > PMU has been initialized.
> > > >
> > > > Signed-off-by: Sumit Garg <[email protected]>
> > > > ---
> > > >
> > > > Changes in v5:
> > > > - Fix lockup_detector_init() invocation to be rather invoked from CPU
> > > > binded context as it makes heavy use of per-cpu variables and shouldn't
> > > > be invoked from preemptible context.
> > > >
> > >
> > > Do you have any further comments on this?
> > >
> > > Lecopzer,
> > >
> > > Does this feature work fine for you now?
> >
> > This really fixes the warning, I have a real hardware for testing this now.
Thanks for the testing. I assume it as an implicit Tested-by.
> > but do we need to call lockup_detector_init() for each cpu?
> >
> > In init/main.c, it's only called by cpu 0 for once.
>
> Oh sorry, I just misread the code, please ignore previous mail.
>
No worries.
-Sumit
>
> BRs,
> Lecopzer
Hi Will,
On Tue, 30 Mar 2021 at 18:00, Sumit Garg <[email protected]> wrote:
>
> On Tue, 30 Mar 2021 at 14:07, Lecopzer Chen <[email protected]> wrote:
> >
> > > > Hi Will, Mark,
> > > >
> > > > On Fri, 15 Jan 2021 at 17:32, Sumit Garg <[email protected]> wrote:
> > > > >
> > > > > With the recent feature added to enable perf events to use pseudo NMIs
> > > > > as interrupts on platforms which support GICv3 or later, its now been
> > > > > possible to enable hard lockup detector (or NMI watchdog) on arm64
> > > > > platforms. So enable corresponding support.
> > > > >
> > > > > One thing to note here is that normally lockup detector is initialized
> > > > > just after the early initcalls but PMU on arm64 comes up much later as
> > > > > device_initcall(). So we need to re-initialize lockup detection once
> > > > > PMU has been initialized.
> > > > >
> > > > > Signed-off-by: Sumit Garg <[email protected]>
> > > > > ---
> > > > >
> > > > > Changes in v5:
> > > > > - Fix lockup_detector_init() invocation to be rather invoked from CPU
> > > > > binded context as it makes heavy use of per-cpu variables and shouldn't
> > > > > be invoked from preemptible context.
> > > > >
> > > >
> > > > Do you have any further comments on this?
> > > >
Since there aren't any further comments, can you re-pick this feature for 5.13?
-Sumit
> > > > Lecopzer,
> > > >
> > > > Does this feature work fine for you now?
> > >
> > > This really fixes the warning, I have a real hardware for testing this now.
>
> Thanks for the testing. I assume it as an implicit Tested-by.
>
> > > but do we need to call lockup_detector_init() for each cpu?
> > >
> > > In init/main.c, it's only called by cpu 0 for once.
> >
> > Oh sorry, I just misread the code, please ignore previous mail.
> >
>
> No worries.
>
> -Sumit
>
> >
> > BRs,
> > Lecopzer
On Mon, Apr 12, 2021 at 05:31:13PM +0530, Sumit Garg wrote:
> On Tue, 30 Mar 2021 at 18:00, Sumit Garg <[email protected]> wrote:
> > On Tue, 30 Mar 2021 at 14:07, Lecopzer Chen <[email protected]> wrote:
> > > > > On Fri, 15 Jan 2021 at 17:32, Sumit Garg <[email protected]> wrote:
> > > > > >
> > > > > > With the recent feature added to enable perf events to use pseudo NMIs
> > > > > > as interrupts on platforms which support GICv3 or later, its now been
> > > > > > possible to enable hard lockup detector (or NMI watchdog) on arm64
> > > > > > platforms. So enable corresponding support.
> > > > > >
> > > > > > One thing to note here is that normally lockup detector is initialized
> > > > > > just after the early initcalls but PMU on arm64 comes up much later as
> > > > > > device_initcall(). So we need to re-initialize lockup detection once
> > > > > > PMU has been initialized.
> > > > > >
> > > > > > Signed-off-by: Sumit Garg <[email protected]>
> > > > > > ---
> > > > > >
> > > > > > Changes in v5:
> > > > > > - Fix lockup_detector_init() invocation to be rather invoked from CPU
> > > > > > binded context as it makes heavy use of per-cpu variables and shouldn't
> > > > > > be invoked from preemptible context.
> > > > > >
> > > > >
> > > > > Do you have any further comments on this?
> > > > >
>
> Since there aren't any further comments, can you re-pick this feature for 5.13?
I'd still like Mark's Ack on this, as the approach you have taken doesn't
really sit with what he was suggesting.
I also don't understand how all the CPUs get initialised with your patch,
since the PMU driver will be initialised after SMP is up and running.
Will