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

Re: Next MirageOS meeting 2024-06-24


  • To: mirageos-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Hannes Mehnert <hannes@xxxxxxxxxxx>
  • Date: Wed, 26 Jun 2024 09:11:38 +0200
  • Autocrypt: addr=hannes@xxxxxxxxxxx; keydata= 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
  • Delivery-date: Wed, 26 Jun 2024 07:11:56 +0000
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>

Hello,

below are the notes from the meeting. Next meeting in two weeks (since it is not clear whether I'll be available, someone else needs to organize it).

Participants: Pierre, Thomas G., Samuel, Virgile, Hannes, Fabrice

Agenda:
- network API thoughts https://github.com/mirage/mirage/issues/1550
- 4.5.2 release https://github.com/mirage/mirage/issues/1547 (with questions about boot parameters)
- ocaml-solo5 and OCaml 5

Notes:
#### Network API questions
- Hannes: how did the current API occur? was it guided by performance reasoning?
- Thomas: What API would you like to have?
- Hannes: Something that is more flexible where I don't need to instantiate functors manually (but can pass callbacks) - Thomas: Hard to find the right API due to efficiency. It was designed at the same tim as openvswitch appeared (https://github.com/mirage/ocaml-openflow). - Hannes: maybe something like BPF (as tcpdump uses for filters) would be nice: flexible and can compile to efficient code -- but there's no OCaml implementation that I can find
- Thomas: did anyone look at the openflow implementation?
- Thomas: a bit more dynamic would be nice (liking adding a new callback on events), but you've to design it properly to meet the performance goals) - Hannes: for applications (web server etc.), the current API is ok, but for lower layer things (DHCP, NAT, VPN), it is tedious
- Thomas: there's https://github.com/ygrek/ocaml-bpf
- Thomas: for vpnkit (https://github.com/moby/vpnkit/) we had to add something to be more dynamic (like adding routes)
- Virgile: how hard would it be to implement an eBPF in OCaml
- Hannes: can't be that hard, maybe a weekend -- in the end you need the parser for the rule language, and then a "compiler" that outputs sequences of `Cstruct.get` and `equal` instructions - Virgile: maybe the path forward is to go with a BPF implementation, play around, look at performance and flexibility

#### 4.5.2 release
- Hannes: still waiting for some opam packages to be merged
- Hannes: the remaining question is when a mirage device can take some runtime argument, should that be defined in the mirage package (the alternative is that the keys are defined in each unikernel) -- e.g. not done for git-over-ssh - Thomas: maybe they can move to the ssh/git library? (Hannes: that'd be nice, then they could have proper types as well (and not only string and int)).

#### OCaml 5 and ocaml-solo5
- Sam: we're still waiting for some more tests (esp. looking at memory profile of (long-running) unikernels)
- Sam: There are open PRs for fixing mirage-www
- Hannes: wants to test more, but no time before August. Would like to deploy on retreat.mirage.io and look at the memory usage; but had issue with monitoring. Really want to avoid memory usage increase.
- Thomas: has merged the opam-monorepo PR for ppx_lwt
- Pierre: uses the qubes-firewall with OCaml 5 since 2 weeks, works like before -- already got ~10% more bandwidth - Hannes: one thing could as well be to measure the mirage-www unikernel side-by-side OCaml 4 and OCaml 5 (2 unikernels on two IP addresses) - Hannes: I use mirage-monitoring to gather statistics, and then Grafana and Influx -- at the same time albatross is gathering statistics from the host system about the unikernel and reports these into the same Influx database - Thomas/Hannes: we want to have a Grafana for mirage.io on the mirage-www host. If anyone has time to set this up, please volunteer for doing that. - Virgile: I can do that. Hannes: Please send me your ssh public key, I'll set you up with an account. Virgile: sent it on Matrix

#### Unikraft update
- Sam: hope to have a first PoC for the OCaml-solo5 equivalent soon (with qemu)
- Sam: question: is clang used for MirageOS compilations?
- Hannes: I use clang since a long time, and MirageOS compiles (nowadays) fine with it. This doesn't mean that any unikraft & MirageOS must be working on FreeBSD/clang
- Sam: unikraft seems to be Linux-specific
- Sam: had a small example for quite some time, try to automate the things that need manual intervention (in respect to the build system etc.) - Sam: unikraft releases often, their most recent release doesn't work on my arm setup
- Sam & Fabrice: starting to work on the Mirage tool
- Thomas: a "HOWTO write a new MirageOS backend" (documentation) would be a great outcome - Sam: at configure time, you decide on the backend (qemu, firecracker, kvm, xen)

#### next meeting in two weeks



 


Rackspace

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