Skip site navigation (1)Skip section navigation (2)
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 &lt;<a href="mailto:imp@bsdimp.com" class="">imp@bsdimp.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="auto" class="">Yea. Kexec is what you'd need&nbsp;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&nbsp;<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 &nbsp;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 &lt;<a href="mailto:dfr@rabson.org" class="">dfr@rabson.org</a>&gt; 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 &lt;<a href="mailto:zlei@freebsd.org" target="_blank" rel="noreferrer" class="">zlei@freebsd.org</a>&gt; 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>