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:

  1. Client-driver connection proxying
  2. Driver-driver connection proxying
  3. Driver task restarter
  4. Map compatibility strings (match IDs) to suitable driver
  5. 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:

  1. Client-driver connection proxying is not needed, clients connect directly to driver tasks (which they find via location service)
  2. Driver-driver connection proxying is not needed, drivers connect directly to other driver tasks (which they find e.g. via location service)
  3. Driver restarting is handled by a simple generic server restarter
  4. Each driver loads its own comatibility strings into a service property. Matching driver is found by looking up service properties in location service
  5. Device tree is distributed among driver tasks

The specialized DDF dispatcher is supplanted by the generic async mechanisms.

Dependencies:

  1. introduce a simple generic service restarter
  2. async ports/interface dispatcher must be improved to be a suitable replacement for DDF's dispatcher
  3. location service needs to implement service properties

Change History (1)

comment:1 by Jiri Svoboda, 2 weeks ago

Type: defectenhancement
Note: See TracTickets for help on using tickets.