[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Next MirageOS meeting 2024-06-24
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |