On Tue, 8 Nov 2005, Colin Percival wrote:

Tom Grove wrote:
Richard Bejtlich wrote:
After speaking with Colin, he mentioned that IPSec, NAT, and disk
quotas (enabled via options QUOTA) are the three most popular kernel
changes that prevent people from running GENERIC and hence using
freebsd-update for binary kernel updates.

Can anyone shed light on why those three features are not available in
GENERIC?

My guess is that just because those are the three most popular kernel
changes that prevent people from running GENERIC doesn't mean that the
majority of users implement these changes.

I find this argument hard to accept. The vast majority of FreeBSD users will never need the NFS_ROOT option, and many systems do not even have the hardware for serial or parallel ports, yet those are supported in the GENERIC kernel.

While I agree with you in principle, I think many people would disagree with your assertion about serial ports :-).

In deciding what options should go into the GENERIC kernel, I think the question we should be asking is not "how many people use this?", but instead "would adding this option inconvenience more people than it would help?".

With regard to the specific three kernel options mentioned above:

KAME IPSEC adds significant additional overhead to the processing of every packet, and also requires that Giant be held over the entire network stack. Also, as there's a competing IPSEC implementation, FAST_IPSEC, it's not clear that all users of IPSEC will want to use KAME IPSEC rather than FAST_IPSEC, and right now they are mutually exclusive. You can argue that these are technical problems that need to be fixed, but I think they need to be fixed before we change GENERIC, not after.

In 6.x, IPDIVERT no longer needs to be compiled into the kernel. You can load ipdivert.ko, I believe, although I've not personally tested that. The natd rc.d start script looks like it will even auto-load it for you when nat is started, but again, not personally tested.

In 6.x, UFS disk quotas require that Giant be placed over the entire UFS implementation, resulting in significant overhead for users who don't need the feature. Again, an implementation problem, but a good reason to not have it in GENERIC until it is fixed. I expect to see Giant fall off quotas in the next minor release or so of 6.x, but it hasn't happened yet.

On the topic of a few of the options you've mentioned:

- A wide range of people do use serial ports frequently with FreeBSD --
  it's the recommended configuration for headless servers (which I promise
  there are a lot of), and it's the recommended configuration for
  debugging.

- NFS_ROOT minimally expands the kernel, but is required for PXE booting
  diskless systems, which is actually quite widely used.  It might more
  usefully be argued that we should have NFS_ROOT there, but not the
  NFSCLIENT or NFSSERVER, as NFS_ROOT really just does minor tweaks and
  inclusions for the nfsclient, which is already loadable as a module.

Robert N M Watson
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to