Re: Bug report: kernel paniced when system hibernates

From: Alexandre Ghiti
Date: Fri May 26 2023 - 11:23:06 EST


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.

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

>
> 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 :)