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

Guo Ren guoren at kernel.org
Fri Mar 31 19:15:32 PDT 2023


On Fri, Mar 31, 2023 at 2:47 PM Heiko Stübner <heiko at sntech.de> 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 at kernel.org wrote:
> > > > From: Guo Ren <guoren at linux.alibaba.com>
> > > >
> > > > 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 at configfs.service: Succeeded.
> > > [   70.788400] systemd[1]: Finished Load Kernel Module configfs.
> > > [  OK  ] Finished Load Kernel Module configfs.
> > > [   71.501222] systemd[1]: modprobe at drm.service: Succeeded.
> > > [   71.573295] systemd[1]: Finished Load Kernel Module drm.
> > > [  OK  ] Finished Load Kernel Module drm.
> > > [   71.825934] systemd[1]: modprobe at 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



More information about the linux-riscv mailing list