Messages in this thread | | | Date | Fri, 06 Jan 2023 09:37:48 +0000 | From | Conor Dooley <> | Subject | Re: [PATCH 0/3] RISC-V Hibernation Support |
| |
Hey folks, Just passing on some issues that automation picked up.
On 6 January 2023 06:05:32 GMT, Sia Jee Heng <jeeheng.sia@starfivetech.com> wrote: >This series adds RISC-V Hibernation/suspend to disk support. >Low level Arch functions were created to support hibernation. >swsusp_arch_suspend() relies code from __cpu_suspend_enter() to write >cpu state onto the stack, then calling swsusp_save() to save the memory >image. > >arch_hibernation_header_restore() and arch_hibernation_header_save() >functions are implemented to prevent kernel crash when resume, >the kernel built version is saved into the hibernation image header >to making sure only the same kernel is restore when resume. > >swsusp_arch_resume() creates a temporary page table that covering only >the linear map, copies the restore code to a 'safe' page, then start to >restore the memory image. Once completed, it restores the original >kernel's page table. It then calls into __hibernate_cpu_resume() >to restore the CPU context. Finally, it follows the normal hibernation >path back to the hibernation core. > >To enable hibernation/suspend to disk into RISCV, the below config >need to be enabled: >- CONFIG_ARCH_HIBERNATION_HEADER >- CONFIG_ARCH_HIBERNATION_POSSIBLE > > >At high-level, this series includes the following changes: >1) Change suspend_save_csrs() and suspend_restore_csrs() > to public function as these functions are common to > suspend/hibernation. (patch 1) >2) Enhance kernel_page_present() function to support huge page. (patch 2) >3) Add arch/riscv low level functions to support > hibernation/suspend to disk. (patch 3) > >The above patches are based on kernel v6.2-rc2 and are tested on >Starfive VF2 SBC board. > >Sia Jee Heng (3): > RISC-V: Change suspend_save_csrs and suspend_restore_csrs to public > function > RISC-V: mm: Enable huge page support to kernel_page_present() function
Unfortunately this breaks rv32_defconfig https://patchwork.kernel.org/project/linux-riscv/patch/20230106060535.104321-3-jeeheng.sia@starfivetech.com/
> RISC-V: Add arch functions to support hibernation/suspend-to-disk
This one then breaks rv64 allmodconfig too :/
https://patchwork.kernel.org/project/linux-riscv/patch/20230106060535.104321-4-jeeheng.sia@starfivetech.com/
Thanks, Conor.
> > arch/riscv/Kconfig | 7 + > arch/riscv/include/asm/suspend.h | 23 ++ > arch/riscv/kernel/Makefile | 2 +- > arch/riscv/kernel/asm-offsets.c | 5 + > arch/riscv/kernel/hibernate-asm.S | 123 +++++++++++ > arch/riscv/kernel/hibernate.c | 353 ++++++++++++++++++++++++++++++ > arch/riscv/kernel/suspend.c | 4 +- > arch/riscv/mm/pageattr.c | 6 + > 8 files changed, 520 insertions(+), 3 deletions(-) > create mode 100644 arch/riscv/kernel/hibernate-asm.S > create mode 100644 arch/riscv/kernel/hibernate.c > > >base-commit: 1f5abbd77e2c1787e74b7c2caffac97def78ba52
| |