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

next meeting: Monday Feb 10, 10:00 - 12:00 CET



Dear list,

The next meeting is Feb 10, 10-12 CET. Please see the following link for the agenda and previous meeting notes. Please also feel free to add items to the agenda:

https://pad.data.coop/To6IOSeNSOK9kFVlgo7XWw

And please find at the end the meeting notes of today's meeting.

Best,
Reynir

## Meeting January 27th 10:00 - 12:00 CET

- Participants: Pierre, Sam, Reynir, Pixie

### GC compactor
- The GC compactor will unmap _ leading to ABORT
- As you have to call the compactor explicitly we probably did not test it
- Maybe we don't actually need compaction?
- Sam: Observeration from mirage-www:
  - the behavior was similar to ocaml 4 version
- if we tweak space overhead to 80 we get a similar profile as ocaml 4 version - Pierre: we can't deny users to call `Gc.compact ()` which would lead to a crash
- Pierre: implementing mmap/munmap would be a huge effort
- Sam: https://github.com/ocaml-flambda/flambda-backend/pull/3179 propose a different version of the compactor that doesn't fragment memory
- Sam: So we could switch the whole GC (but this is a lot of work)
- Pierre: Maybe time to investigate another allocator (e.g. jemalloc)
- Pierre: everytime I looked into this it was very difficult
- Sam: is writing or switch the allocator difficult?
- Pierre: switching is easy, writing one is hard. Writing an allocator based on mmap/munmap is easy, the other way is hard. - Sam: we can imagine something radical like we know how much we will allocate to the unikernel. - Pierre: we know that: all the memory at the beginning. It's in sysdeps_solo5.c. We have `_nolibc_init()` where we can init everything.
- Pierre: doesn't have time, but can look into a list of allocators
- Pierre: We want to have very fast free memory estimation like we do in Qubes firewall. Will check that.
- Sam: we do many small allocations in Mirage unikernels?
- Pierre: we do as long as we have BigArrays
- Pierre, with Sam agreeing: in the meantime we should encourage users to not call `Gc.compact ()`

### Performance: bytes vs. bigarray (cstruct)
- Pierre: No news :D
- Sam: I agree about reducing small (bigarray) allocations cf. previous item.

### Unikraft
- Sam: Unikraft has real mmap/munmap which would be another way to solve the GC compactor issue - Pierre: is it possible to "steal" the allocator from unikraft? Also wrt. licensing. - Sam: Re: licensing, it may be quite a mess. In the code base it's already quite a mix of licenses: GPL, MIT, ...
- Sam: also possible their implementation uses part of musl
- Sam: all in all, not so simple



 


Rackspace

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