Giving components access to the "next" vDSO

15 views
Skip to first unread message

Adam Barth

unread,
Oct 13, 2021, 1:24:17 PM10/13/21
to component-framework-dev, Travis Geiselbrecht, Carlos Pizano, Nick Maniscalco
Hi cf-dev,

As of https://fuchsia.googlesource.com/fuchsia/+/de32eb53e254846244cee17676d1c46207ecf3dd, Zircon now has two vDSOs: stable and next.  Currently, every process created by the ELF runner is given the stable vDSO, which contains all the syscalls we know and love.

In addition to the stable syscalls, the next vDSO will also contain in-development syscalls that the Zircon team is iterating on with their customers.  In order to make iterating on these syscalls easier, these syscalls are not published in SDK headers and are not accessible to most components.

In order to make it possible to access these syscalls, I'd like to add a policy knob to the program block for the ELF runner, similar to job_policy_ambient_mark_vmo_exec and job_policy_create_raw_processes.  For example, we might call the key something like "use_next_vdso".

My next step is to work up a CL to see what's involved in adding this feature to ELF runner.  Please let me know if you have any questions or concerns.

Adam

Bryan Henry

unread,
Oct 13, 2021, 2:05:27 PM10/13/21
to Adam Barth, component-framework-dev, Travis Geiselbrecht, Carlos Pizano, Nick Maniscalco
Neat. It should be a pretty simple change. The ELF runner uses process_builder through fuchsia.process.Launcher, even when component_manager is hosting that service, so that component_manager can support running as a v1 component. process_builder already supports using a non-default VDSO if one is provided using HandleType::VdsoVmo, so it should just be a matter of providing ElfRunner::configure_launcher (in src/sys/component_manager/src/elf_runner/mod.rs) that extra handle to add to handle_infos.

--
All posts must follow the Fuchsia Code of Conduct https://fuchsia.dev/fuchsia-src/CODE_OF_CONDUCT or may be removed.
---
You received this message because you are subscribed to the Google Groups "component-framework-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to component-framewo...@fuchsia.dev.
To view this discussion on the web visit https://groups.google.com/a/fuchsia.dev/d/msgid/component-framework-dev/CAP%3D28cczTRZLi1-%2BL4Kb%3DPyEwER%2Bc3NCvxiP6dv7keWKnge73Q%40mail.gmail.com.

Adam Barth

unread,
Oct 13, 2021, 2:58:52 PM10/13/21
to Bryan Henry, component-framework-dev, Travis Geiselbrecht, Carlos Pizano, Nick Maniscalco
Yeah, https://fuchsia-review.googlesource.com/c/fuchsia/+/593646 is the work-in-progress.  I'm trying to figure out how to test it at the moment.

Adam

Adam Barth

unread,
Oct 13, 2021, 7:22:37 PM10/13/21
to Bryan Henry, component-framework-dev, Travis Geiselbrecht, Carlos Pizano, Nick Maniscalco
Figured out the test.  CL is ready for review.
Reply all
Reply to author
Forward
0 new messages