11.14Snia$NetBSD: system,v 1.14 2025/05/19 18:02:53 nia 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.14SniaWork was done by various people to make the Arm64 port support 831.14Sniabig.LITTLE well, ad@ did the final bits to improve the scheduler 841.14Sniato make it aware of CPU topology and mixtures of slow and fast 851.14Sniacores. 861.1Sagc 871.14SniaThis made it into NetBSD 10.0. 881.9Sagc 891.5SagcAlistair Crooks 901.9SagcSat Jan 14 11:40:49 PST 2012 91