PSA: Behavior of devfs is changing: Removal of FIDL multiplexing

5 views
Skip to first unread message

David Gilhooley

unread,
Feb 16, 2023, 11:42:06 AM2/16/23
to drive...@fuchsia.dev
If you do not write code that interacts with devfs (/dev/) please feel free to ignore.

Hello driver authors!

The Driver Framework team is embarking on a project to remove FIDL multiplexing from devfs.

Completing this project will allow drivers to own the channels between themselves and their clients, meaning drivers will be able to use normal fidl server objects and have per-connection state. This will remove the need for the infamous "trampoline protocol" pattern which is used today to get a non-multiplexed channel.

Currently when someone opens a connection in devfs there are 3 FIDL protocols being multiplexed:
- fuchsia.device/Controller
- The device's underlying protocol

The end state is that there will only be one FIDL protocol:
- The device's underlying protocol

There are new nodes in devfs to access the Controller located at /dev/{path}/device_controller.
(For more information see the migration page)

The migrators will be fixing any clients that rely on this behavior, but this behavior is difficult to find statically. If you maintain a tool that accesses devfs and has no CQ testing please contact us.

There is an RFC in progress outlining the reasoning behind these efforts. Please read and comment if you have concerns!

There is also a migration page on fuchsia.dev outlining how to migrate part of devfs and what type of code is likely to break. Please read if you are interested in helping, or are interested in maintaining your own code.

If you have any questions or concerns please reach out!

Best,
David G

Reply all
Reply to author
Forward
0 new messages