Re: kldunload kernel: How should the kernel behave when it is requested to unload itself
Date: Fri, 10 Nov 2023 09:04:33 UTC
> On Nov 10, 2023, at 1:03 AM, Warner Losh <imp@bsdimp.com> wrote: > > Yea. Kexec is what you'd need to do to get a new kernel... and we don't support kexec... so I agree this is good.. If we ever want to support kexec, a new kernel should be loaded into memory before the old one is unloaded. Then probably a dedicated syscall is needed for that. The current change D42530 is mainly to prevent userland from unloading the kernel via kldunload(2), so it should be OK. > > Warner > > On Thu, Nov 9, 2023, 9:34 AM Doug Rabson <dfr@rabson.org <mailto:dfr@rabson.org>> wrote: > I think your intuition is correct - it never makes sense to unload the kernel (IMO). I approved the review. > > Doug. > > > On Thu, 9 Nov 2023 at 16:10, Zhenlei Huang <zlei@freebsd.org <mailto:zlei@freebsd.org>> wrote: > Hi, > > This is *NOT* joking. > > While working on https://reviews.freebsd.org/D42527 <https://reviews.freebsd.org/D42527> I realized the > module kernel also has userrefs, that is to say, userland can request > to unload kernel, aka `kldunload kernel`. > > This is interesting. Well no doubt that the loader can unload kernel. > Then after the kernel is loaded and has been initialized (SYSINIT), how > should it behave when it get an unload request? > > I'm proposing https://reviews.freebsd.org/D42530 <https://reviews.freebsd.org/D42530> to do not allow unloading > the kernel. It is by intuition. > > What do you think ? > > > Best regards, > Zhenlei >