Date: Fri, 10 Nov 2023 17:04:33 +0800 From: Zhenlei Huang <zlei@FreeBSD.org> To: Warner Losh <imp@bsdimp.com> Cc: Doug Rabson <dfr@rabson.org>, FreeBSD Current <current@freebsd.org>, Konstantin Belousov <kib@freebsd.org> Subject: Re: kldunload kernel: How should the kernel behave when it is requested to unload itself Message-ID: <E82260AA-501B-4608-88D5-DB4742E2A443@FreeBSD.org> In-Reply-To: <CANCZdfqzDaYfJi6XzhvfpCxEKX1FwA1A2b_dtH-h=_GTwPM8nw@mail.gmail.com> References: <07168C68-9F81-443C-AFB6-24958BB01F9E@FreeBSD.org> <CACA0VUggUqxTQ%2BrNRmAE0TyZr%2BiUumBOhwAVQATQ5MseT9A6zQ@mail.gmail.com> <CANCZdfqzDaYfJi6XzhvfpCxEKX1FwA1A2b_dtH-h=_GTwPM8nw@mail.gmail.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --] > 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 > [-- Attachment #2 --] <html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 10, 2023, at 1:03 AM, Warner Losh <<a href="mailto:imp@bsdimp.com" class="">imp@bsdimp.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="auto" class="">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..</div></div></blockquote><div><br class=""></div><div>If we ever want to support kexec, a new kernel should be loaded into memory before the old one is unloaded.</div><div>Then <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">probably a dedicated syscall is needed for that.</span></div><div><br class=""></div><div>The current change D42530 is mainly to prevent userland from unloading the kernel via kldunload(2), so it should be OK.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="auto" class=""><div dir="auto" class=""><br class=""></div><div dir="auto" class="">Warner</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 9, 2023, 9:34 AM Doug Rabson <<a href="mailto:dfr@rabson.org" class="">dfr@rabson.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">I think your intuition is correct - it never makes sense to unload the kernel (IMO). I approved the review.<div class=""><br class=""></div><div class="">Doug.</div><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 9 Nov 2023 at 16:10, Zhenlei Huang <<a href="mailto:zlei@freebsd.org" target="_blank" rel="noreferrer" class="">zlei@freebsd.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi,<br class=""> <br class=""> This is *NOT* joking.<br class=""> <br class=""> While working on <a href="https://reviews.freebsd.org/D42527" rel="noreferrer noreferrer" target="_blank" class="">https://reviews.freebsd.org/D42527</a> I realized the<br class=""> module kernel also has userrefs, that is to say, userland can request<br class=""> to unload kernel, aka `kldunload kernel`.<br class=""> <br class=""> This is interesting. Well no doubt that the loader can unload kernel.<br class=""> Then after the kernel is loaded and has been initialized (SYSINIT), how<br class=""> should it behave when it get an unload request?<br class=""> <br class=""> I'm proposing <a href="https://reviews.freebsd.org/D42530" rel="noreferrer noreferrer" target="_blank" class="">https://reviews.freebsd.org/D42530</a> to do not allow unloading<br class=""> the kernel. It is by intuition.<br class=""> <br class=""> What do you think ?<br class=""> <br class=""> <br class=""> Best regards,<br class=""> Zhenlei<br class=""> <br class=""> </blockquote></div> </blockquote></div> </div></blockquote></div><br class=""><div class=""> <div><br class=""></div> </div> <br class=""></body></html>home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E82260AA-501B-4608-88D5-DB4742E2A443>
