Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/amd64/conf An attempt to create a fully modular ker...



details:   https://anonhg.NetBSD.org/src/rev/b5e944bba49f
branches:  trunk
changeset: 346822:b5e944bba49f
user:      christos <christos%NetBSD.org@localhost>
date:      Thu Aug 04 07:22:41 2016 +0000

description:
An attempt to create a fully modular kernel by including GENERIC and
undefining all the drivers we have modules for. This is done to reduce
the kernel footprint for DTRACE and also to test that the modularized
drivers work. Current issues:

1. builtin drivers can't depend on modularized drivers (the modularized
   drivers are attempted to load as builtins).
2. there is no way to "no define" drivers
3. it is not always obvious by their names which drivers/options correspond
   to which modules.
4. right now critical drivers that would need to be pre-loaded (ffs,
   exec_elf64) are still built-in so that we don't need to alter the boot
   blocks to boot.

Ideally modstat should show none of the drivers as built-in but we are far
from that.

diffstat:

 sys/arch/amd64/conf/MODULAR |  114 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 114 insertions(+), 0 deletions(-)

diffs (118 lines):

diff -r 9284e4b3c2ce -r b5e944bba49f sys/arch/amd64/conf/MODULAR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/amd64/conf/MODULAR       Thu Aug 04 07:22:41 2016 +0000
@@ -0,0 +1,114 @@
+# $NetBSD: MODULAR,v 1.1 2016/08/04 07:22:41 christos Exp $
+#
+# Try to exclude all the drivers in GENERIC that have been modularized
+# XXX: incomplete
+
+include "arch/amd64/conf/GENERIC"
+options        MODULAR         # new style module(7) framework
+options        MODULAR_DEFAULT_AUTOLOAD
+
+no acpicpu*    at cpu?
+no est0                at cpu0
+no powernow0   at cpu0
+no vmt0                at cpu0
+
+no options     COMPAT_15       # NetBSD 1.5,
+no options     COMPAT_16       # NetBSD 1.6,
+no options     COMPAT_20       # NetBSD 2.0,
+no options     COMPAT_30       # NetBSD 3.0,
+no options     COMPAT_40       # NetBSD 4.0,
+no options     COMPAT_50       # NetBSD 5.0,
+no options     COMPAT_60       # NetBSD 6.0, and
+no options     COMPAT_70       # NetBSD 7.0 binary compatibility.
+no options     COMPAT_43       # and 4.3BSD
+#options       COMPAT_386BSD_MBRPART # recognize old partition ID
+
+no options     COMPAT_OSSAUDIO
+no options     COMPAT_NETBSD32
+no options     COMPAT_LINUX
+no options     COMPAT_LINUX32  # req. COMPAT_LINUX and COMPAT_NETBSD32
+no options     EXEC_ELF32
+no options     COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.
+
+no options     SYSVMSG         # System V-like message queues
+no options     SYSVSEM         # System V-like semaphores
+no options     SYSVSHM         # System V-like memory sharing
+
+# XXX: for now
+#no file-system        FFS             # UFS
+no file-system MFS             # memory file system
+no file-system         NFS             # Network File System client
+no file-system TMPFS           # Efficient memory file-system
+no file-system EXT2FS          # second extended file system (linux)
+no file-system LFS             # log-structured file system
+no file-system NTFS            # Windows/NT file system (experimental)
+no file-system CD9660          # ISO 9660 + Rock Ridge file system
+no file-system MSDOSFS         # MS-DOS file system
+no file-system FDESC           # /dev/fd
+no file-system KERNFS          # /kern
+no file-system NULLFS          # loopback file system
+no file-system OVERLAY         # overlay file system
+no file-system PROCFS          # /proc
+no file-system PUFFS           # Userspace file systems (e.g. ntfs-3g & sshfs)
+no file-system SMBFS           # experimental - CIFS; also needs nsmb (below)
+no file-system UMAPFS          # NULLFS + uid and gid remapping
+no file-system UNION           # union file system
+no file-system CODA            # Coda File System; also needs vcoda (below)
+no file-system PTYFS           # /dev/ptm support
+
+no options     PPP_BSDCOMP     # BSD-Compress compression support for PPP
+no options     PPP_DEFLATE     # Deflate compression support for PPP
+
+no acpiacad*   at acpi?                # ACPI AC Adapter
+no acpibat*    at acpi?                # ACPI Battery
+no acpibut*    at acpi?                # ACPI Button
+no acpifan*    at acpi?                # ACPI Fan
+no acpilid*    at acpi?                # ACPI Lid Switch
+no acpitz*     at acpi?                # ACPI Thermal Zone
+no acpivga*    at acpi?                # ACPI Display Adapter
+no acpiwdrt*   at acpi?                # ACPI Watchdog Resource Table
+no acpiwmi*    at acpi?                # ACPI WMI Mapper
+
+no options     NFSSERVER
+
+no axe*                at uhub?
+no rum*                at uhub?
+no urtwn*      at uhub?
+no urtw*       at uhub?
+no run*                at uhub?
+no athn*       at uhub?
+
+no pseudo-device       crypto                  # /dev/crypto device
+no pseudo-device       swcrypto                # software crypto implementation
+
+# disk/mass storage pseudo-devices
+no pseudo-device       ccd                     # concatenated/striped disk devices
+no pseudo-device       cgd                     # cryptographic disk devices
+no pseudo-device       raid                    # RAIDframe disk driver
+no pseudo-device       fss                     # file system snapshot device
+no pseudo-device       putter                  # for puffs and pud
+
+no pseudo-device       vnd                     # disk-like interface to files
+
+# network pseudo-devices
+no pseudo-device       bpfilter                # Berkeley packet filter
+no pseudo-device       ipfilter                # IP filter (firewall) and NAT
+no pseudo-device       npf                     # NPF packet filter
+
+#
+# accept filters
+no pseudo-device   accf_data           # "dataready" accept filter
+no pseudo-device   accf_http           # "httpready" accept filter
+
+# miscellaneous pseudo-devices
+no pseudo-device       clockctl                # user control of clock subsystem
+no pseudo-device       vcoda                   # coda minicache <-> venus comm.
+
+# a pseudo device needed for SMBFS
+no pseudo-device       nsmb                    # experimental - SMB requester
+
+# pseudo audio device driver
+no pseudo-device       pad
+
+# userland interface to drivers, including autoconf and properties retrieval
+no pseudo-device       drvctl



Home | Main Index | Thread Index | Old Index