Sun Jul 5 02:04:25 2020 UTC ()
Note that the xen vs non-xen issue has been resolved by recent commit
from Chuck Silvers.  (Also add xref to PR port-xen/53130 for history.)


(pgoyette)
diff -r1.21 -r1.22 src/doc/TODO.modules

cvs diff -r1.21 -r1.22 src/doc/TODO.modules (expand / switch to unified diff)

--- src/doc/TODO.modules 2019/12/08 15:51:49 1.21
+++ src/doc/TODO.modules 2020/07/05 02:04:25 1.22
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: TODO.modules,v 1.21 2019/12/08 15:51:49 pgoyette Exp $ */ 1/* $NetBSD: TODO.modules,v 1.22 2020/07/05 02:04:25 pgoyette Exp $ */
2 2
3Some notes on the limitations of our current (as of 7.99.35) module 3Some notes on the limitations of our current (as of 7.99.35) module
4subsystem. This list was triggered by an Email exchange between 4subsystem. This list was triggered by an Email exchange between
5christos and pgoyette. 5christos and pgoyette.
6 6
7 1. Builtin drivers can't depend on modularized drivers (the modularized 7 1. Builtin drivers can't depend on modularized drivers (the modularized
8 drivers are attempted to load as builtins). 8 drivers are attempted to load as builtins).
9 9
10 The assumption is that dependencies are loaded before those 10 The assumption is that dependencies are loaded before those
11 modules which depend on them. At load time, a module's 11 modules which depend on them. At load time, a module's
12 undefined global symbols are resolved; if any symbols can't 12 undefined global symbols are resolved; if any symbols can't
13 be resolved, the load fails. Similarly, if a module is 13 be resolved, the load fails. Similarly, if a module is
14 included in (built-into) the kernel, all of its symbols must 14 included in (built-into) the kernel, all of its symbols must
@@ -223,16 +223,19 @@ christos and pgoyette. @@ -223,16 +223,19 @@ christos and pgoyette.
22323. The current process of "load all the emulation/exec modules in case 22323. The current process of "load all the emulation/exec modules in case
224 one of them might handle the image currently being exec'd" isn't 224 one of them might handle the image currently being exec'd" isn't
225 really cool. (See sys/kern/kern_exec.c?) It ends up auto-loading 225 really cool. (See sys/kern/kern_exec.c?) It ends up auto-loading
226 a whole bunch of modules, involving file-system access, just to have 226 a whole bunch of modules, involving file-system access, just to have
227 most of the modules getting unloaded a few seconds later. We don't 227 most of the modules getting unloaded a few seconds later. We don't
228 have any way to identify which module is needed for which image (ie, 228 have any way to identify which module is needed for which image (ie,
229 we can't determine that an image needs compat_linux vs some other 229 we can't determine that an image needs compat_linux vs some other
230 module). 230 module).
231 231
23224. Details are no longer remembered, but there are some issues with 23224. Details are no longer remembered, but there are some issues with
233 building xen-variant modules (on amd4, and likely i386). In some 233 building xen-variant modules (on amd4, and likely i386). In some
234 cases, wrong headers are included (because a XEN-related #define 234 cases, wrong headers are included (because a XEN-related #define
235 is missing), but even if you add the definition some headers get 235 is missing), but even if you add the definition some headers get
236 included in the wrong order. On particular fallout from this is 236 included in the wrong order. One particular fallout from this is
237 the inability to have a compat version of x86_64 cpu-microcode 237 the inability to have a compat version of x86_64 cpu-microcode
238 module. 238 module. PR port-xen/53130
 239
 240 This is likely to be fixed by Chuck Silvers on 2020-07-04 which
 241 removed the differences between the xen and non-xen module ABIs.