This page shall serve as a common place to look if you're in search of a DragonFly related project. It's also the place to check if someone else is already working on it (to prevent project collision) or should be contacted.

@@ -21,10+21,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ

-* crypt(3) can legitimately return NULL on error, but many consumers do not check for this, instead passing the return directly to str[n]cmp. Fix these cases.

-* Fix these cases in pkgsrc as well.

+### Live images enhancement

+

+The live images could be made easier to use by not assuming a QWERTY keyboard layout.

+

+Not beeing able to choose a localized keyboard layout before having to type 'installer' or 'root' may be a deal breaker for some users.

+A simple menu replacing login(1) and displaying the following three choices could be a good solution:

+

+1. Set keyboard layout

+2. Launch the installer

+3. Login as root

+

+### pkill/pgrep enhancement

+

+killall recently gained a -T flag to kill all descendents of a tty, bring this feature to pkill/pgrep and evaluate any other features flags of these utilities and bring them to parity.

## Kernel projects

### One-liners

* Port the BSDL OSS code to DragonFly

* Complete Path MTU Discovery by adding a host route to remember the Path MTU and setting a timer to expire old host routes. See netinet/if_ether.c for an example of this mechanism as used by ARP. Periodically increase MTU of hosts that have had its MTU decreased.

* Add a Solaris-like dispatcher framework that can handle more than one installed scheduling policy

-### I/O scheduler

-* A pluggable kernel I/O scheduler already exists

-* Implement additional disk scheduling policies

-

### Implement boot cache

* Effectively a smart readahead.

* Store the pattern of incoming read requests of the boot disk.

@@ -184,16+185,6 @@ Projects that can be clearly used for Google Code-In are marked with their categ

### Tear out condvars

* Conditional vars -- condvar(9), could be replaced with other locking primitives and our tsleep/wakeup interlock.

-### Make karc4random in libkern per-cpu (or at least wrap its own token around it)

-* Verify that it is possible and safe to do this, what care would need to be taken, especially with respect to the random seeding?

-* Pull out locks around calls to karc4rand*

-

-### Improve kernel spinlock debug-ability

-* Add a const char *descr field to the spinlock structure.

-* Adjust spin_init() and all use cases, SPINLOCK_INITIALIZER() could juse use macro string extensions (# head) to install the name there.

-* Adjust error messages to print the spinlock desc field.

-* This change will require a full world & kernel recompile.

-

### Partially rewrite buffer cache

* Buffer cache buffers map VM pages from the filesystems VM-backed vnodes, the "buffer space" is the maximum amount of virtual space to allocate to these buffers.

* When the buffer_map KVA space gets fragmented it caused very expensive defrag operations, the buffer_map KVA was recently increased to double the actual buffer space to allow full space utilization in the face of fragmentation and reduce the frequency of defrag operations.

@@ -297,15+288,5 @@ Projects that can be clearly used for Google Code-In are marked with their categ

1. machdep.cpu.core_count: 1

1. machdep.cpu.thread_count: 1

-## Live images enhancement

-

-The live images could be made easier to use by not assuming a QWERTY keyboard layout.

-

-Not beeing able to choose a localized keyboard layout before having to type 'installer' or 'root' may be a deal breaker for some users.

-A simple menu replacing login(1) and displaying the following three choices could be a good solution:

-

-1. Set keyboard layout

-2. Launch the installer

-3. Login as root

For more theoretical projects and project concepts see [[ResearchProjects|/docs/developer/ResearchProjectsPage]]