Re: Bug report: kernel paniced when system hibernates

From: Atish Patra
Date: Fri May 26 2023 - 14:48:52 EST


On Fri, May 26, 2023 at 8:22 AM Alexandre Ghiti <alexghiti@xxxxxxxxxxxx> wrote:
>
> On Fri, May 26, 2023 at 5:17 PM Anup Patel <anup@xxxxxxxxxxxxxx> wrote:
> >
> > On Fri, May 26, 2023 at 8:42 PM Alexandre Ghiti <alex@xxxxxxxx> wrote:
> > >
> > >
> > > On 26/05/2023 16:59, Conor Dooley wrote:
> > > > On Fri, May 26, 2023 at 03:14:33PM +0200, Alexandre Ghiti wrote:
> > > >> Hi everyone,
> > > >>
> > > >> On Thu, May 25, 2023 at 11:24 PM Conor Dooley <conor@xxxxxxxxxx> wrote:
> > > >>> On Thu, May 25, 2023 at 01:06:04PM -0700, Atish Patra wrote:
> > > >>>> On Thu, May 25, 2023 at 11:39 AM Conor Dooley <conor@xxxxxxxxxx> wrote:
> > > >>>>> On Thu, May 25, 2023 at 11:37:40AM -0700, Atish Patra wrote:
> > > >>>>>
> > > >>>>>> Any testing of hibernation still needs to revert the patch until we
> > > >>>>>> have the proper fix.
> > > >>>>> "the patch" is what exactly? I assume you don't mean depending on
> > > >>>>> NONPORTABLE, since that is a Kconfig option.
> > > >>>> Nope. Sorry I meant the commit
> > > >>>>
> > > >>>> 3335068 ("riscv: Use PUD/P4D/PGD pages for the linear mapping")
> > > >>> Ah, if your SBI implementation is one of the affected ones, yeah.
> > > >>> If not, you can just set NONPORTABLE :)
> > > >> @Björn Töpel emitted the idea of excluding from the hibernation all
> > > >> the memory nodes in the "/reserved-memory" node
> > > >> (https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml):
> > > >> I have to admit that I don't see why it is not done by default by the
> > > >> kernel.
> > > > My understanding was that it was perfectly fine to use reserved memory
> > > > nodes to fence off some memory to use in device drivers etc, which then
> > > > may need to be saved/restored.
> > >
> > >
> > > Agreed, but I would say that it's up to the driver then to take care of
> > > that, see https://docs.kernel.org/driver-api/pm/notifiers.html
> >
> > I agree, it should be drivers responsibility to save/restore the dedicated
> > reserved memory used by itself.
> >
> > Although, I think we should at least save/restore reserved memory
> > regions having "reusable" property set.
>

That would be certainly ideal. However, that piece of code has been
present for ages (last commit was in 2008!).
There may be a bunch of drivers written with this builtin assumption.

> Good point! I'll propose an RFC and gather feedback from the people in
> charge of the hibernation process.

Hopefully, it's not too bad.

>
> >
> > Regards,
> > Anup
> >
> > >
> > >
> > > >> Unless there is stuff in this node that needs to be "hibernated", I
> > > >> think that would be a very good solution since we would not rely on
> > > >> the name of the "internal" nodes of "/reserved-memory" (i.e.
> > > >> "mmode_resv").
> > > >>
> > > >> I'm digging into why it is not done by default, just wanted to have
> > > >> your feedback before the week-end :)



--
Regards,
Atish