Date: Fri, 7 Apr 2023 16:01:17 +0800 From: Zhenlei Huang <zlei@FreeBSD.org> To: Hans Petter Selasky <hps@selasky.org> Cc: freebsd-current@freebsd.org Subject: Re: Is it valid to combine CTLFLAG_TUN with CTLFLAG_VNET ? Message-ID: <6B4FF474-6E25-4E8A-8FDE-7E8F01989038@FreeBSD.org> In-Reply-To: <263045d4-409a-8a2d-87e1-50b1afcb7338@selasky.org> References: <94C1B333-9C0F-4874-BBB1-3E72F3DF3F6A@FreeBSD.org> <9dc65578-9312-1139-932f-396bc42e66b2@selasky.org> <ZC28li9kOc5e4rbc@FreeBSD.org> <b2338626-4f3a-d0f8-ce6b-365b8e393fec@selasky.org> <263045d4-409a-8a2d-87e1-50b1afcb7338@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Apr 6, 2023, at 3:56 AM, Hans Petter Selasky <hps@selasky.org> = wrote: >=20 > On 4/5/23 21:44, Hans Petter Selasky wrote: >> On 4/5/23 20:23, Gleb Smirnoff wrote: >>> What if we remove the CTLFLAG_VNET check from the code you posted = above? >>> I don't see anything going wrong, rather going right =F0=9F=98=84 >>>=20 >>> CTLFLAG_VNET will not mask away CTLFLAG_TUN. >> Hi Gleb, >> It's possible to bypass that check, but some work needs to be done = first. Then all jails created, will also start from those sysctl tunable = values. >> The problem is, where does the VNET base pointer come from? >> Especially those static sysctl's. You would need to make some design = there I guess and look at the SYSINIT() order. When are SYSINIT's filled = with tunable data's. And when is the default VNET created. >> Because the data pointer passed to the register sysctl function is = simply an offset pointer into a malloc'ed structure. >> --HPS >=20 > Hi Zhenlei, >=20 > Feel free to work on this, and add me as a reviewer and complete phase = two of: >=20 >> commit 3da1cf1e88f8448bb10c5f778ab56ff65c7a6938 >> Author: Hans Petter Selasky <hselasky@FreeBSD.org> >> Date: Fri Jun 27 16:33:43 2014 +0000 >> Extend the meaning of the CTLFLAG_TUN flag to automatically check = if >> there is an environment variable which shall initialize the SYSCTL >> during early boot. This works for all SYSCTL types both statically = and >> dynamically created ones, except for the SYSCTL NODE type and = SYSCTLs >> which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added = to >=20 I'd like to do some refactoring firstly, so that I can focus on = CTLFLAG_VNET ;) > --HPS Best regards, Zhenlei
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6B4FF474-6E25-4E8A-8FDE-7E8F01989038>