Re: [PATCH -next V17 4/7] riscv: entry: Convert to generic entry

From: Guo Ren
Date: Fri Mar 31 2023 - 22:15:53 EST


On Fri, Mar 31, 2023 at 2:47 PM Heiko Stübner <heiko@xxxxxxxxx> wrote:
>
> Hi,
>
> Am Freitag, 31. März 2023, 20:41:35 CEST schrieb Conor Dooley:
> > On Fri, Mar 31, 2023 at 07:34:38PM +0100, Conor Dooley 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:
> >
> > Shoulda said, can share the full logs if required of course, but they're
> > quite verbose cos systemd etc.
>
> I was just investigating the same thing just now. So that saves me some
> tracking down the culprit :-) .
>
> My main qemu is living as a "board" in my boardfarm (also doing nfsroot)
> as well as my d1 nezha with nfsroot was affected.
Can you reproduce it with qemu? Could give me some tips and let me
reproduce it on qemu?

>
> Though my board is stuck in some failure loop with both the journal- as
> well as the timesyncd service failing again and again. And I haven't
> figured out how to get logs without a working login console yet.
>
>
> Heiko
>
>
> >
> > >
> > > [ 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.
> > > 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