tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Proposal to enhance boot path selections



You're asking for a lot, and I am not prepared to spend the time it
would require.  I have already updated x86/boot(8) and added a Xr
for mk.conf(5), and if someone wants to write a wiki page I will
happily review/edit it.  wiz@ has already created a wiki page (see
https://wiki.netbsd.org/kernel_dir/) that may address some of your
concerns.

I've also done my best here in this thread (and elsewhere) to make it
as clear as I can that this relates to KERNEL_DIR, and that is only
pertains to i386 and amd64.  The option is entirely optional, but the
bootloader needs to cope with both "set" and "unset" environments, to
avoid a proliferation of boot images.

Most of the impact of KERNEL_DIR is already committed; this newest
proposal is minor and has minimal impact.



On Sun, 11 May 2025, Taylor R Campbell wrote:

Date: Sun, 11 May 2025 06:39:42 -0700 (PDT)
From: Paul Goyette <paul%whooppee.com@localhost>

On Sun, 11 May 2025, Greg Troxel wrote:

Thus I suspect I am missing something.

Yup, I think you're missing the fact that all of this relates to the
ratther new-ish KERNEL_DIR option, support for which was only recently
completed (by myself).  KERNEL_DIR is described briefly in options(4),
and it is noted in both CHANGES and UPDATING.

In short, KERNEL_DIR provides a mechanism to keep a kernel and its
associated modules together, addressing one of the most common
complaints about modules.

Sorry for not making this more clear.

I think it is important to

(a) make this clear and obvious and intuitive, _and_
(b) make sure we have tested any plausible transition paths that might
happen.

To that end, this present proposal aside (I haven't digested it, no
comments about it), I would strongly suggest that you make a wiki page
describing everything about the KERNEL_DIR changes (not just the terse
summary in CHANGES, or the notes in UPDATING which are only for an
audience of current users to maintain MKUPDATE=yes builds), including
a systematic table of:

1. What has changed or will change in the standard bootloader?
2. What has changed or will change in a custom bootloader with any new
  build options?
3. What has changed or will change in an unmodified GENERIC kernel?
4. What has changed or will change in a custom kernel with any new
  build options?
5. What does/will sysinst do?
6. How are transitions/upgrades expected to happen?  What will happen
  when a stock netbsd-10 installation is updated to a stock netbsd-11
  installation?
7. How have all of these scenarios been tested?

We really need to make sure this doesn't become another /var/db/pkg
renaming debacle that leaves everyone's machines in confusing
inconsistent states requiring manual intervention.

This type of change -- substantially altering the semantics of how the
bootloader finds the kernel -- has an extremely high risk, not just of
putting machines into confusing states, but of rendering them
unbootable when you update the bootloader.  And, if we were doing it
again, I would ask that any changes be proposed to tech-kern and
port-*, with all this relevant information, _before_ committing
anything that affects default builds.

(It's likely that there already are good answers to all of these
questions, and you've already figured all this out -- it's just not
clear to me from the CHANGES and UPDATING notes and the scattering of
commit messages I've seen fly by, so I'm just asking for a clear
picture to be presented in an obvious place to see how this will
affect users.)

!DSPAM:6820b69e284681540015745!



+---------------------+--------------------------+----------------------+
| Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    |
| (Retired)           | 1B11 1849 721C 56C8 F63A | paul%whooppee.com@localhost    |
| Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette%netbsd.org@localhost  |
| & Network Engineer  |                          | pgoyette99%gmail.com@localhost |
+---------------------+--------------------------+----------------------+


Home | Main Index | Thread Index | Old Index