Re: git: ce348fe5cfc3 - main - amd64 & i386: enable VIMAGE in MINIMAL

From: Gleb Smirnoff <glebius_at_freebsd.org>
Date: Sat, 03 Feb 2024 05:24:27 UTC
  Mina,

On Sat, Feb 03, 2024 at 01:36:26AM +0000, Warner Losh wrote:
W> commit ce348fe5cfc36c454db860f0e5cd26f094deb09c
W> Author:     Mina Galić <freebsd@igalic.co>
W> AuthorDate: 2024-02-03 00:35:18 +0000
W> Commit:     Warner Losh <imp@FreeBSD.org>
W> CommitDate: 2024-02-03 01:35:00 +0000
W> 
W>     amd64 & i386: enable VIMAGE in MINIMAL
W>     
W>     VNET(9) is very useful, and is not loadable.
W>     Enable it in MINIMAL.
W>     
W>     Reviewed by: imp
W>     Pull Request: https://github.com/freebsd/freebsd-src/pull/962

To be fair, it totally disagree with this change.

The TL;DR version of my comment would be: if you start adding everything very
useful into MINIMAL it stops being minimal.

A longer version would be that VIMAGE actually allocates extra memory and adds
a bit of extra CPU cycles. Even its introduction to GENERIC was met with a lot
of criticism, check out the archives. Back then I asked if anybody is going to
provide gdb scripts to deal with complexity of access to all global network
variables. Nobody provided them of course. Now dealing with every network stack
bug report is a challenge. Raise your hands those who can print me out list of
interfaces in kgdb for a VIMAGE kernel! Anybody? Good, now keep your hand up if
you can do that without spening some time reading vnet.h!

I don't doubt usefulness of VIMAGE but I will also assert usefullness of a
supported kernel configuration without VIMAGE. There are many people who
intentionally run without it in production. Now if I build all kernels in
sys/amd64/conf I want even notice that non-VIMAGE build had been broken.

Such changes, I believe, should go through phabricator, where you would put
#network into reviewers, not via github.

-- 
Gleb Smirnoff