User Tools

Site Tools


wishlist:david

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wishlist:david [2016/06/23 15:42]
dcvmoole add item about redesigning the DS pub/sub API
wishlist:david [2017/10/11 18:13] (current)
dcvmoole networking project is merged
Line 178: Line 178:
   * note: this probably a good time to introduce a system-wide constant for service label sizes   * note: this probably a good time to introduce a system-wide constant for service label sizes
  
-=== Move the BSD socket API into VFS ===+=== Make the MIB service'​s RMIB calls asynchronous ​===
  
-  * status**IN PROGRESS** +  * reasona RMIB call to a deadlocked service may currently deadlock MIB, and with that the entire system 
-  * reasonlibc should ​not need to test or track socket types, it violates ​the light-libc minix philosophy +  * complicationthis may or may not require the MIB service ​to sign up for PM process events 
-  * reasonthe individual writes ​to implement sendto ​(etcprobably violate posix signal atomicity +  * note: this depends on RMIB being notified about service deaths through DSrather than via ipc_sendrec() 
-  * benefitthis allows for proper socket ​call support ​in trace(1+ 
-  * complication:​ this will break everything, ​require ​INET's retirement ​and a substantial UDS rewrite +=== Extend RMIB functionality/​robustness to match service requirements === 
-  * note: this is probably best done along with many other network stack related changes+ 
 +  * problem: ​it is not possible to modify (= bump the version number of) already-mounted RMIB subtrees (e.g., net.interface) 
 +  * problemit is not possible ​to mount RMIB subtrees using a name only (e.g. minix.lwip
 +  * problemit is currently possible to mess up the MIB tree with bad name+id combos in RMIB mount requests 
 + 
 +=== Disallow killing processes in an uninterruptible system ​call === 
 + 
 +  * reason: processes may currently be terminated while in an uninterruptible system call, possibly triggering poorly-tested scenarios in other services ​(safecopy failures, etc
 +  * complication:​ this will require ​changes to the PM signal state machine, with subtle side effects 
 +  * complication:​ involving all user-facing system services in exit notification is a performance problem 
 +  * note: the most obvious solution would be kernel support for notification (to PM) when a process system call has completed, comparable to SIGNDELAY, ​and a PREEXIT process state in PM 
 +  * note: ideally the same idea would be applied to signal handler invocation, because the current approach makes dangerous and already-incorrect(?​) assumptions about "​retreg"​ there 
 + 
 +=== Add support for pselect(2) === 
 + 
 +  * reason: pselect(2) ​is required by dhcpcd(8) and various ​other parts of userland 
 +  * complication:​ pselect(2) is supposed to be atomic and thus cannot be implemented as a select(2) wrapper 
 +  * complication:​ a proper implementation will require a non-trivial extension to the PM/VFS protocol 
 +  * subsequent project: also implement paccept(2); this will require storing more call state in VFS
  
 === Implement job control === === Implement job control ===
Line 203: Line 221:
   * complication:​ different file system will require different small exceptions   * complication:​ different file system will require different small exceptions
   * complication:​ no neat way to model orphan management in the edge (directory) layer   * complication:​ no neat way to model orphan management in the edge (directory) layer
 +
 +=== Move the BSD socket API into VFS ===
 +
 +  * status: **MERGED**
 +  * reason: libc should not need to test or track socket types, it violates the light-libc minix philosophy
 +  * reason: the individual writes to implement sendto (etc) probably violate posix signal atomicity
 +  * benefit: this allows for proper socket call support in trace(1)
 +  * complication:​ this will break everything, require INET's retirement and a substantial UDS rewrite
 +  * note: this is probably best done along with many other network stack related changes
  
 === Look into setuid/​seteuid behavior === === Look into setuid/​seteuid behavior ===
wishlist/david.1466689341.txt.gz · Last modified: 2016/06/23 15:42 by dcvmoole