Hi everyone,
The next proposed meeting is Monday, June 16th 10:00 - 12:00 CEST 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) :)
Below are the notes from the last meeting (June 2nd)
Best,
Hannes
## Meeting June 2nd 10:00 - 12:00 CEST
- Participants: Pierre, Hannes, Virgile
### OCaml 5 performance
- Virgile did some experiments in last 2024 about mirage-www and OCaml 5
- Notes about results (using OCaml 5.2):
https://hackmd.io/@Firobe/ByKlnueNke
- TL;DR: If set the space-overhead GC parameter to 60 (or 80), we get
similar memory behaviour than OCaml 4
- "with OCaml 5, the GC parameters need to be tweaked"
- with default space_overhead, there's ~2x CPU used; with space_overhead
set to 60 (memory is 0.94x), 1.62x CPU is used
- Pierre didn't measure the memory consumption with OCaml 5, the
unikernel has 32MB assigned. The measure was throughput, and OCaml 5 was
slightly better.
- Virgile: from memories, the GC pacing is very bad under stress --
memory usage is exploding
- Hannes: The compaction needs to be called manually (with OCaml5), so
we need to figure places where to call it.
- conversation about this on the Ocamllabs slack:
https://hackmd.io/@Firobe/H19exkozxl
- Pierre: Is compaction called from full_major? Virgile: No, it is not.
- Pierre: when running a dns-resolver locally, there's quickly (after 10
- 20 minutes) an out of memory. This is due to a lot of Bigarray
allocation. This is not only on OCaml 5.
- Hannes: removing BAs is very desirable in general, but haven't been
done yet mostly due to Xen which needs memory alignment
- Hannes: availability of memory profiling tools will help figuring out
the exact sources of the allocations and where efforts should be directed
- Pierre: Didn't work too much on the io-page stuff. There's some
bigarray usage in TCP/IP (checksum computation). Apart from that, it
seems to be doable to get the io-page PR
https://github.com/mirage/io-page/pull/72 merged. The
cstruct-using-bytes branch works pretty nicely.
- Hannes: about checksum computations, we can take the code in
https://github.com/robur-coop/utcp/blob/main/src/checksum.ml which works
for both bytes/string and Cstruct.t
- Hannes will take a look and create a branch/PR for mirage-tcpip (under
the assumption that Cstruct.t is backed by bytes)
### Unikraft
- Virgile mentioned that this is mostly ready, there's a mail draft to
be sent to the MirageOS mailing list
- last bug to fix in network stack
### Security vulnerabilities
- Hannes: will findings from hacksat challenge be reported to
secur...@mirage.io
- Virgile: Yes, all that are related to MirageOS, other open source
findings will as well be upstreamed.
- Hannes: when will you do that? At the time of when it is reported, or
at the time the challenge ends?
- Virgile: the current plan is to do that at the end.
- Virgile: what is tested is one deployment of a HTTP/AF server.
- Hannes: let's treat the 90 days period as a hard deadline to put out
patches and reports