KIN DB 2004 Project - TO-DOs |
Project hosted at: |
This is a simple list of ideas and pending things to fit into the system. It is not organized, and serves as a very basic remainder list. There are two sections: one for technical coding ideas, and another for system design ideas.
Last changed: 2007-01-11 18:33:14 GMT+0000
081005 Use UTF-8 for module's copyright note. Extend its use to all the text
messages of the system (logs, etc.)
081005 Simplify makefile.base as there's a lot of unused definitions there...
110107 Performance might be increased by changing default heap management
criteria, like when to call sbrk. Increasing histeresys may help,
reducing system calls to expand/shrink memory allocated to this process
(see mallopt())
110107 Use of alloca() may be useful also to get some local variable size
temporal structures, as it allocates on the stack (instead of the heap)
and deallocation is automatic when leaving the function.
110107 Try to avoid caching of data slots, as any simple search will probably
pollute the whole data cache, that could be preserved for more useful
LUTs, requirement lists, etc. Data slots are like stream data in some
sense, and probably should be managed as such (used often but with a
volume that exceeds cache capacity to hold them).
110107 Multitask scheduler is quite effective as it is now, but it depends on
every routine (task) to be polite and return to scheduller often. As this
may be ok for system tasks, it is not convenient for user ones (like
TM tasks). A real multitasker could be implemented using getcontext()
family of functions (better than more complex threads), based on some
sort of signal (like a periodic timer at, for an instance, 100Hz) that
makes that scheduller to swap them (based on some minimum locking like
detecting some packet creation collission, etc.).
110107 Use backtrace() family of functions to log a backtrace in case of SegSEGV
[an error occurred while processing this directive]