Hello,

sorry for the late reply -- but we had some notes from the meeting below.

The next meeting is the upcoming Monday, January 13th 10:00 - 12:00 CET at https://meet.jit.si/MirageOS -- see our shared pad at https://pad.data.coop/To6IOSeNSOK9kFVlgo7XWw?both# for notes and agenda (add your talking points there) :)


Best,

Hannes


## Meeting Dec 9th 10:00 - 12:00 CET

- Participants: Sam, Hannes, Reynir, Pierre, Pixie

### OCaml 5
- ocaml-solo5 1.0.0 is released, now we can get MirageOS unikernels with OCaml 5.2.1
- TODO we should announce this on discuss.ocaml.org and on mirageos.org
- Romain opened a PR for ocaml-solo5 https://github.com/mirage/ocaml-solo5/pull/144 - Pierre: pthread_cond_init is a stub, so pthread_cond_destroy could as well be - Hannes: the second commit is to not use opam-monorepo -- let us briefly remind ourselves that a MirageOS unikernel has a custom libc, so we need to cross-compile all opam packages that include C stubs. The MirageOS 4 way of doing that is to download (using opam-monorepo all opam packages into a "duniverse" directory), and compile everything. - Hannes: it is not entirely clear to me how to detect opam packages that include C stubs (to cross-compile them), but removing the opam-monorepo dependency would be great - Sam: we all agree that if we're cross-compiling to a different architecture, this won't work - Reynir: does cross-compilation work at the moment? Sam: I have tested it, from x86_64 to aarch64 - running on Raspberry PI
  - Hannes: that cross-compilation is Linux-only so I never tested it
  - Sam: What do you mean it's Linux-only?
- Hannes: _ says it's Linux-only and I never bothered looking into the details. Actually, maybe it's not. -- Turns out the solo5-cross-aarch64 is Linux only - Reynir: maybe there should be an opam flag "this does not include C stubs", but that'd be incomplete and require some bookkeeping. If we mark common packages as such we can avoid some re-fetching. - Hannes: we would need to convince a lot of package maintainers to include this flag. - Hannes: META file includes information if we should link to external archives. Maybe a path forward. Feels a bit hairy, and only works with installed packages and not packages we don't have installed yet. - Hannes: If we separate pthread_cond_destroy() into another PR we can merge that now. For the rest of the PR we can discuss on the mailing list etc.
  - Sam: I agree.

### What is Mirage CI?
- https://github.com/ocurrent/mirage-ci
- Likely it has somewhere OCaml 4 hardcoded, and that needs to be changed

### OCaml 5 used on mirageos.org
- Sam: The OCaml 5 unikernel uses much more memory
- Sam talked with the OCaml GC people - they need more tests
- Sam: Now running with different space_overhead parameters - from 120 (default) to 60 - Sam: Currently OCaml pre-allocates lots of pools, it may be sensible to reduce the maximum size of the objects that pools are allocated for -- for MirageOS unikernels with a low memory footprint - Sam: On mirageos.org we have quite some memory available for the unikernels, would be interesting to see how such a unikernel behaves if it has not so much memory - Hannes: you could tweak the deployment shell scripts to give the unikernel less memory
- Hannes: is there an issue tracking this on the ocaml/ocaml repository?
- Sam: there have been discussions about frama-c and coq and their memory usages with OCaml 5

### Performance
- Pierre didn't have time to test VirtIO further (and won't for the next 3 weeks)

Reply via email to