1$NetBSD: system,v 1.13 2017/01/13 10:14:58 dholland Exp $
2
3NetBSD System Roadmap
4=====================
5
6This is a roadmap document dealing deals with core system aspects of
7the operating system.
8
9The following elements, projects, and goals are considered strategic
10priorities for the project:
11
121. Tickless timing and scheduling (discussed in the mobile roadmap)
132. Long-term graphics architecture (discussed in the desktop roadmap)
148. Processor and cache topology aware scheduler
15
16The following elements, projects, and goals are not strategic
17priorities but are still important undertakings worth doing:
18
193. Full kernel preemption for real-time threads on non-x86
204. POSIX shared memory
216. Better resource controls
227. Improved observability: online crashdumps, remote debugging
23
24The following elements, projects, and goals are perhaps less pressing;
25this doesn't mean one shouldn't work on them but the expected payoff
26is perhaps less than for other things:
27
28
29Some explanations
30=================
31
323. Full kernel preemption for real-time threads on non-x86
33----------------------------------------------------------
34
35With the revamp of the kernel concurrency model, much of the kernel is
36fully multi-threaded and can therefore be preempted at any time.  In
37support of lower context switch and dispatch times for real-time
38threads, full kernel preemption is being implemented.  This has been
39implemented already for i386 and x86_64 (and is in 5.0), but needs to
40be extended to support ARM and other ports.  MIPS has this, as does
41PowerPC, but it is not yet enabled.
42
43Responsible: rmind
44
45
464. POSIX shared memory
47----------------------
48
49Implement POSIX shared memory facilities, which can be used to create
50the shared memory objects and add the memory locations to the address
51space of a process.  Changes were proposed on tech-kern, although
52there were some concerns with the kernel implementation, and so a
53different approach using wrapper functions on tmpfs is being aimed at
54for 6.0.
55
56XXX: what's the current state?
57
58Responsible: rmind
59
60
616. Better resource controls
62---------------------------
63
64A resource provisioning and control framework that extends beyond the
65traditional Unix process limits.
66
67Responsible: TBD
68
69
707. Improved observability: online crashdumps, remote debugging
71--------------------------------------------------------------
72
73XXX crashdumps while the system is running
74XXX firewire support in libkvm
75
76Responsible: TBD
77
78
798. Processor and cache topology aware scheduler
80-----------------------------------------------
81
82Implement the detection of the topology of the processors and caches. 
83Improve the scheduler to make decisions about thread migration
84according to the topology, to get better thread affinity and less
85cache thrashing, and thus improve overall performance in modern SMP
86systems. Code has been written, but did not show any performance
87improvement. We will continue to monitor this area.
88
89Responsible: rmind
90
91
92Alistair Crooks
93Sat Jan 14 11:40:49 PST 2012
94