Re: [PATCH -next V17 4/7] riscv: entry: Convert to generic entry
From: Guo Ren
Date: Fri Mar 31 2023 - 21:41:22 EST
On Fri, Mar 31, 2023 at 2:34 PM Conor Dooley <conor@xxxxxxxxxx> wrote:
>
> On Tue, Feb 21, 2023 at 10:30:18PM -0500, guoren@xxxxxxxxxx wrote:
> > From: Guo Ren <guoren@xxxxxxxxxxxxxxxxx>
> >
> > This patch converts riscv to use the generic entry infrastructure from
> > kernel/entry/*. The generic entry makes maintainers' work easier and
> > codes more elegant. Here are the changes:
> >
> > - More clear entry.S with handle_exception and ret_from_exception
> > - Get rid of complex custom signal implementation
> > - Move syscall procedure from assembly to C, which is much more
> > readable.
> > - Connect ret_from_fork & ret_from_kernel_thread to generic entry.
> > - Wrap with irqentry_enter/exit and syscall_enter/exit_from_user_mode
> > - Use the standard preemption code instead of custom
>
> This has unfortunately broken booting my usual NFS rootfs on both my D1
> and Icicle. It's one of the Fedora images from David, I think this one:
> http://fedora.riscv.rocks/kojifiles/work/tasks/3933/1313933/
>
> It gets pretty far into things, it's once systemd is operational that
> things go pear shaped:
>
> [ OK ] Mounted Huge Pages File System.
> [ 70.297439] systemd[1]: Mounted POSIX Message Queue File System.
> [ OK ] Mounted POSIX Message Queue File System.
> [ 70.453489] systemd[1]: Mounted Kernel Debug File System.
> [ OK ] Mounted Kernel Debug File System.
> [ 70.516331] systemd[1]: Mounted Kernel Trace File System.
> [ OK ] Mounted Kernel Trace File System.
> [ 70.679253] systemd[1]: modprobe@configfs.service: Succeeded.
> [ 70.788400] systemd[1]: Finished Load Kernel Module configfs.
> [ OK ] Finished Load Kernel Module configfs.
> [ 71.501222] systemd[1]: modprobe@drm.service: Succeeded.
> [ 71.573295] systemd[1]: Finished Load Kernel Module drm.
> [ OK ] Finished Load Kernel Module drm.
> [ 71.825934] systemd[1]: modprobe@fuse.service: Succeeded.
> [ 71.886945] systemd[1]: Finished Load Kernel Module fuse.
> [ OK ] Finished Load Kernel Module fuse.
> [ 71.991932] systemd[1]: nfs-convert.service: Succeeded.
> [ 72.034674] systemd[1]: Finished Preprocess NFS configuration convertion.
> [ OK ] Finished Preprocess NFS configuration convertion.
> [ 72.148778] systemd[1]: systemd-modules-load.service: Main process exited, code=exited, status=1/FAILURE
> [ 72.256659] systemd[1]: systemd-modules-load.service: Failed with result 'exit-code'.
> [ 72.337818] systemd[1]: Failed to start Load Kernel Modules.
> [FAILED] Failed to start Load Kernel Modules.
Are you sure, you've compiled all kernel modules? This patch needs all
kernel stuff re-compiled.
> See 'systemctl status systemd-modules-load.service' for details.
> [ 72.410491] systemd[1]: systemd-modules-load.service: Consumed 1.463s CPU time.
> [ 72.496739] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
> [ 72.513689] systemd[1]: Condition check resulted in Kernel Configuration File System being skipped.
> [ 72.682549] systemd[1]: Starting Apply Kernel Variables..
> [ OK ] Finished Apply Kernel Variables.
> [ 76.314434] systemd[1]: Finished Load/Save Random Seed.
> [ OK ] Finished Load/Save Random Seed.
> [*** ] (1 of 6) A start job is running for…p Virtual Console (14s / no limit)
> [ OK ] Finished Create Static Device Nodes in /dev.
> [ 79.787065] systemd[1]: Started Entropy Daemon based on the HAVEGE algorithm.
> [ OK ] Started Entropy Daemon based on the HAVEGE algorithm.
> [ 80.186295] systemd[1]: Starting Journal Service...
> Starting Journal Service...
> [ 80.713508] systemd[1]: Starting Rule-based Manager for Device Events and Files...
> Starting Rule-based Manage…for Device Events and Files...
> [ *** ] (2 of 7) A start job is running for… All udev Devices (17s / no limit)
> [ 82.939347] systemd[1]: systemd-journald.service: Main process exited, code=exited, status=1/FAILURE
> [ 83.032046] systemd[1]: systemd-journald.service: Failed with result 'exit-code'.
> [FAILED] Failed to start Journal Service.
> See 'systemctl status systemd-journald.service' for details.
> [ 83.210041] systemd[1]: Dependency failed for Flush Journal to Persistent Storage.
> [DEPEND] Dependency failed for Flus…Journal to Persistent Storage.
> [ 83.254122] systemd[1]: systemd-journal-flush.service: Job systemd-journal-flush.service/start failed with result 'dependency'.
> [ 83.272366] systemd[1]: systemd-journald.service: Consumed 1.443s CPU time.
> [ 83.334360] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 1.
> [ 83.427839] systemd[1]: Finished Setup Virtual Console.
> [ OK ] Finished Setup Virtual Console.
> [ 83.510650] systemd[1]: Stopped Journal Service.
> [ OK ] Stopped Journal Service.
> [ 83.554417] systemd[1]: systemd-journald.service: Consumed 1.443s CPU time.
> [ 83.576573] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
> [ 83.904878] systemd[1]: Starting Journal Service...
> Starting Journal Service...
> [ 85.752090] systemd[1]: systemd-journald.service: Main process exited, code=exited, status=1/FAILURE
> [ 85.826421] systemd[1]: systemd-journald.service: Failed with result 'exit-code'.
> [ 85.876165] systemd[1]: Failed to start Journal Service.
> [FAILED] Failed to start Journal Service.
> See 'systemctl status systemd-journald.service' for details.
> [ 85.952221] systemd[1]: systemd-journald.service: Consumed 1.355s CPU time.
> [ 86.002092] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 2.
> [ 86.015081] systemd[1]: Stopped Journal Service.
> [ OK ] Stopped Journal Service.
> [ 86.076429] systemd[1]: systemd-journald.service: Consumed 1.355s CPU time.
> [ 86.089700] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
> [ 86.390162] systemd[1]: Starting Journal Service...
> Starting Journal Service...
> [ 87.904427] systemd[1]: systemd-journald.service: Main process exited, code=exited, status=1/FAILURE
> [ 87.950259] systemd[1]: systemd-journald.service: Failed with result 'exit-code'.
> [ 88.000661] systemd[1]: Failed to start Journal Service.
> [FAILED] Failed to start Journal Service.
> See 'systemctl status systemd-journald.service' for details.
> [ 88.079953] systemd[1]: systemd-journald.service: Consumed 1.316s CPU time.
> [ 88.128956] systemd[1]: systemd-journald.service: Scheduled restart job, restart counter is at 3.
> [ 88.145365] systemd[1]: Stopped Journal Service.
> [ OK ] Stopped Journal Service.
> [ 88.189975] systemd[1]: systemd-journald.service: Consumed 1.316s CPU time.
> [ 88.205799] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
> [ 88.514817] systemd[1]: Starting Journal Service...
> Starting Journal Service...
>
> (Note, you need to merge -rc2 into riscv/for-next to actually boot)
>
> Cheers,
> Conor.
--
Best Regards
Guo Ren