[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MirageOS biweekly meeting; next Mar 15 2023 14:00 CET



Hey,

our notes are below -- next meeting in two weeks (Mar 15th 14:00 CET in whereby.com/ocamllabs), agenda https://pad.data.coop/k2z2UqDCQ1G1ZOic6g7XwA# (please add stuff you'd like to discuss).

Best,

Hannes

# MirageOS meeting 2023-03-01

Attendees: reynir, Pierre, Taka, Lortex, Thomas Leonard, Hannes, dinosaure

## Clock drift in solo5 (reynir)
- https://github.com/Solo5/solo5/issues/549
- on suspend and resume, the hvt clock gets behind several weeks
- solo5 takes the offset once and uses that to compute the wall clock time
- ways forward:
  - use the system call on every `now_d_ps ()` call (will be slow)
- keep the offset, but recompute every few minutes (according to monotonic clock) - provide access to the system call/hypercall (would require changes to mirage-clock code) - curious how a NTP implementation could work (since we don't get any notification from the OS when the computer goes to sleep / resumes)
- reynir also suggests to move the offset computation into the mirage code

## Solving recent breakages in MirageOS 4 (Lortex)
- recent changes to the opam-repository lead to mirage failures:
- dune 3.7 changed semantics that broke chamelon package (which opam-monorepo always picks the latest release of dune) - ppxlib 0.29 included a vendoring of ppx_sexp_conv, which lead opam-monorepo to provide multiple ppx_sexp_conv - dune 3.7 uses `(lang dune 3.5)` and opam-monorepo pulls in the latest dune - which then can't be built if the switch has dune<3.5.0.

### solution: custom opam repository for MirageOS unikernels
- a solution would be to maintain a custom opam-repository at the mirage organization that is automatically updated (& merged) when the mirage CI succeeds - we could even provide a branch of that opam-repository for each mirage minor release to sustain working versions, and drop upper bound constraints from the mirage utility - instead of adding dune-overlays etc. in the Makefile (during depend/pull), add the mirage-opam-repository
- action item 1: extend the Mirage CI to run on that repository
- action item 2: extend the Mirage CI to update the mirage-opam-repository when opam-repository or dune-overlays repository updates
- action item 3: send notifications to opam-repository PRs

## mirage configure should check whether config.ml is compatible with the mirage version
- https://github.com/mirage/mirage/issues/1381
- maybe a step before mirage configure is executed is needed (comparing the output of --version with the required minimal (maximal?) one)

## Solo5 and OCaml 5 (thread local storage -- Pierre)
- https://github.com/Solo5/solo5/pull/546
- Pierre did some work on how solo5 could deal with thread specific variables (`__thread`) that OCaml 5 runtime adds
- it is difficult: two toolchains (gcc & GNU ld vs clang & lld)
- Pierre has developed linker scripts that work for both GNU ld and lld
- at the moment, 4kB are reserved for the TLS
- the PR exposes the size of tbss and tdata segments so ocaml-solo5 can allocate that region
- the linker computes the size/offset of the section
- review of that PR is highly welcome
- in the future (multiple CPUs), we'll need to allocate one tdata+tbss per CPU and copy over the tdata
- unclear whether it works on powerpc or arm64
- tested on OpenBSD & Linux tested on X86
- action item 1: review PR
- action item 2: test on powerpc & arm64

## Old issue in qubes-mirage-firewall (Pierre)
- https://github.com/mirage/qubes-mirage-firewall/issues/107
- sys-net is not autostarted, q-m-f receives a EACCESS
- proposal: wait for xenstore being initialized with the network interface
- (possible?) fix in https://github.com/palainp/mirage-net-xen/commit/1afc600c96dd8c6b6024d383de0dae21cf9151c7 - On Qubes-os forum: https://forum.qubes-os.org/t/libxenlight-failed-unable-to-add-vif-devices/16958/1 - action: wait for qubes forum user to test whether the above commit fixes their issue

## next meeting March 15th 14:00 CET https://whereby.com/ocamllabs



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.