Opened 2 weeks ago
Last modified 2 weeks ago
#887 new enhancement
Decentralized DDF
Reported by: | Jiri Svoboda | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | helenos/unspecified | Version: | mainline |
Keywords: | Cc: | ||
Blocker for: | Depends on: | ||
See also: |
Description
Currently DDF uses a dedicated central server devman
, which provides the following functionality:
- Client-driver connection proxying
- Driver-driver connection proxying
- Driver task restarter
- Map compatibility strings (match IDs) to suitable driver
- Holds the device tree
In addition, the DDF provides an IPC dispatcher that allows one driver to provide multiple services (of possibly the same type) and one async session to provide multiple interfaces.
A new architecture is proposed, where no specialized devman
is needed. The existing functionality is handled as follows:
- Client-driver connection proxying is not needed, clients connect directly to driver tasks (which they find via location service)
- Driver-driver connection proxying is not needed, drivers connect directly to other driver tasks (which they find e.g. via location service)
- Driver restarting is handled by a simple generic server restarter
- Each driver loads its own comatibility strings into a service property. Matching driver is found by looking up service properties in location service
- Device tree is distributed among driver tasks
The specialized DDF dispatcher is supplanted by the generic async mechanisms.
Dependencies:
- introduce a simple generic service restarter
- async ports/interface dispatcher must be improved to be a suitable replacement for DDF's dispatcher
- location service needs to implement service properties
Note:
See TracTickets
for help on using tickets.