system revision 1.13
11.13Sdholland$NetBSD: system,v 1.13 2017/01/13 10:14:58 dholland Exp $ 21.1Sagc 31.1SagcNetBSD System Roadmap 41.2Sjmmv===================== 51.1Sagc 61.13SdhollandThis is a roadmap document dealing deals with core system aspects of 71.13Sdhollandthe operating system. 81.1Sagc 91.13SdhollandThe following elements, projects, and goals are considered strategic 101.13Sdhollandpriorities for the project: 111.8Sagc 121.13Sdholland1. Tickless timing and scheduling (discussed in the mobile roadmap) 131.13Sdholland2. Long-term graphics architecture (discussed in the desktop roadmap) 141.13Sdholland8. Processor and cache topology aware scheduler 151.13Sdholland 161.13SdhollandThe following elements, projects, and goals are not strategic 171.13Sdhollandpriorities but are still important undertakings worth doing: 181.13Sdholland 191.13Sdholland3. Full kernel preemption for real-time threads on non-x86 201.6Sagc4. POSIX shared memory 211.6Sagc6. Better resource controls 221.6Sagc7. Improved observability: online crashdumps, remote debugging 231.1Sagc 241.13SdhollandThe following elements, projects, and goals are perhaps less pressing; 251.13Sdhollandthis doesn't mean one shouldn't work on them but the expected payoff 261.13Sdhollandis perhaps less than for other things: 271.1Sagc 281.1Sagc 291.1SagcSome explanations 301.1Sagc================= 311.1Sagc 321.7Sagc3. Full kernel preemption for real-time threads on non-x86 331.7Sagc---------------------------------------------------------- 341.5Sagc 351.7SagcWith the revamp of the kernel concurrency model, much of the kernel is 361.7Sagcfully multi-threaded and can therefore be preempted at any time. In 371.7Sagcsupport of lower context switch and dispatch times for real-time 381.7Sagcthreads, full kernel preemption is being implemented. This has been 391.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to 401.10Sagcbe extended to support ARM and other ports. MIPS has this, as does 411.10SagcPowerPC, but it is not yet enabled. 421.7Sagc 431.7SagcResponsible: rmind 441.5Sagc 451.9Sagc 461.6Sagc4. POSIX shared memory 471.6Sagc---------------------- 481.1Sagc 491.10SagcImplement POSIX shared memory facilities, which can be used to create 501.10Sagcthe shared memory objects and add the memory locations to the address 511.10Sagcspace of a process. Changes were proposed on tech-kern, although 521.10Sagcthere were some concerns with the kernel implementation, and so a 531.10Sagcdifferent approach using wrapper functions on tmpfs is being aimed at 541.10Sagcfor 6.0. 551.1Sagc 561.13SdhollandXXX: what's the current state? 571.13Sdholland 581.1SagcResponsible: rmind 591.1Sagc 601.9Sagc 611.6Sagc6. Better resource controls 621.6Sagc--------------------------- 631.1Sagc 641.1SagcA resource provisioning and control framework that extends beyond the 651.1Sagctraditional Unix process limits. 661.1Sagc 671.9SagcResponsible: TBD 681.9Sagc 691.9Sagc 701.6Sagc7. Improved observability: online crashdumps, remote debugging 711.6Sagc-------------------------------------------------------------- 721.1Sagc 731.1SagcXXX crashdumps while the system is running 741.1SagcXXX firewire support in libkvm 751.1Sagc 761.9SagcResponsible: TBD 771.9Sagc 781.9Sagc 791.6Sagc8. Processor and cache topology aware scheduler 801.6Sagc----------------------------------------------- 811.1Sagc 821.1SagcImplement the detection of the topology of the processors and caches. 831.1SagcImprove the scheduler to make decisions about thread migration 841.1Sagcaccording to the topology, to get better thread affinity and less 851.1Sagccache thrashing, and thus improve overall performance in modern SMP 861.10Sagcsystems. Code has been written, but did not show any performance 871.11Sdhollandimprovement. We will continue to monitor this area. 881.1Sagc 891.1SagcResponsible: rmind 901.1Sagc 911.9Sagc 921.5SagcAlistair Crooks 931.9SagcSat Jan 14 11:40:49 PST 2012 94