Source-Changes-HG archive

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

[src/trunk]: src/usr.bin/config config(1): More TODO



details:   https://anonhg.NetBSD.org/src/rev/cb9bd6f24ba1
branches:  trunk
changeset: 803497:cb9bd6f24ba1
user:      uebayasi <uebayasi%NetBSD.org@localhost>
date:      Thu Oct 30 08:20:15 2014 +0000

description:
config(1): More TODO

diffstat:

 usr.bin/config/TODO |  23 +++++++++++++++++++++--
 1 files changed, 21 insertions(+), 2 deletions(-)

diffs (46 lines):

diff -r 1c30047f5cab -r cb9bd6f24ba1 usr.bin/config/TODO
--- a/usr.bin/config/TODO       Thu Oct 30 07:53:41 2014 +0000
+++ b/usr.bin/config/TODO       Thu Oct 30 08:20:15 2014 +0000
@@ -109,17 +109,22 @@
 
   Accordingly device/attach selection syntax should be revisited.
 
-o Support kernel constructor/destructor (.ctors/.dtors)
+o Support kernel constructor/destructor (.kctors/.kdtors)
 
   Initialization and finalization should be called via constructors and
   destructors.  Don't hardcode those sequences as sys/kern/init_main.c:main()
   does.
 
-  The order of .ctors/.dtors is resolved by dependency.  The difference from
+  The order of .kctors/.kdtors is resolved by dependency.  The difference from
   userland is that in kernel depended ones are located in lower addresses;
   "machdep" module is the lowest.  Thus the lowest entry in .ctors must be
   executed the first.
 
+  The .kctors/.kdtors entries are executed by kernel's main() function, unlike
+  userland where start code executes .ctors/.dtors before main().  The hardcoded
+  sequence of various subsystem initializations in init_main.c:main() will be
+  replaced by an array of .kctors invocaions, and #ifdef's there will be gone.
+
 o Replace linkset.
 
   Don't allow kernel subsystems create random ELF sections (with potentially
@@ -131,3 +136,17 @@
   Dynamically loaded modules have to register those entries via constructors
   (functions).  This means that dynamically loaded modules are flexible but
   come with overhead.
+
+o Shared kernel objects.
+
+  Since NetBSD has not established a clear kernek ABI, every single kernel
+  has to build all the objects by their own.  As a result, similar kernels
+  (e.g. evbarm kernels) repeatedly compile similar objects, that is waste of
+  energy & space.
+
+  Share them if possible.  For evb* ports, ideally everything except machdep.ko
+  should be shared.
+
+  While leaving optimizations as options (CPU specific optimizations, inlined
+  bus_space(9) operations, etc.) for users, the official binaries build
+  provided by TNF should be as portable as possible.



Home | Main Index | Thread Index | Old Index