| @@ -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 | |
3 | Some notes on the limitations of our current (as of 7.99.35) module | | 3 | Some notes on the limitations of our current (as of 7.99.35) module |
4 | subsystem. This list was triggered by an Email exchange between | | 4 | subsystem. This list was triggered by an Email exchange between |
5 | christos and pgoyette. | | 5 | christos 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. |
223 | 23. The current process of "load all the emulation/exec modules in case | | 223 | 23. 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 | |
232 | 24. Details are no longer remembered, but there are some issues with | | 232 | 24. 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. |