hannes changed the topic of #mirage to: bug cleaning day every first friday in month (14:00 UTC - late, next: April 6th) - retreat 7th-18th March http://retreat.mirage.io - this channel is logged at http://irclog.whitequark.org/mirage/ - MirageOS 3 is released - happy hacking!
dtornabene_ has joined #mirage
dtornabene has quit [Read error: Connection reset by peer]
dtornabene_ has quit [Read error: Connection reset by peer]
dtornabene_ has joined #mirage
dtornabene_ has quit [Client Quit]
dtornabene has joined #mirage
ricarkol has joined #mirage
dtornabene has quit [Ping timeout: 260 seconds]
dtornabene has joined #mirage
ricarkol has quit [Quit: Leaving.]
argent_smith has joined #mirage
Haudegen has joined #mirage
dtornabene has quit [Quit: Leaving]
mort___ has joined #mirage
mort___ has quit [Quit: Leaving.]
mort___ has joined #mirage
mort___ has quit [Client Quit]
Haudegen has quit [Remote host closed the connection]
Haudegen has joined #mirage
ricarkol has joined #mirage
AltGr has joined #mirage
AltGr has left #mirage [#mirage]
AltGr has joined #mirage
AltGr has left #mirage [#mirage]
yomimono has joined #mirage
<mato> I won't be able to attend today's mirage call, have commented on the virt_to_mfn PR mentioned in the agenda
djs55 has joined #mirage
<hannes> morning!
<yomimono> good morning!
* djs55 waves
<yomimono> so I suppose it's time for us to have a catchup then :)
<yomimono> please feel free to add things to it :)
<yomimono> first up is an item carried over from the hack retreat on grant table initialization from reynir
thomasga has joined #mirage
<yomimono> although I didn't check with reynir whether he'd be around to talk about it after we moved the meeting from last week...
<thomasga> hello hello
<reynir> hello and thanks for the ping
avsm has joined #mirage
<yomimono> whew, that's a relief :)
<lobo> good aftern00n
<avsm> hello!
<reynir> (I guess this is where I explain what that item is about...)
<yomimono> that would be nice, I think!
<reynir> Basically, it's that the grant table in mini-os by default is somewhat small, and in order to set it to some other size one must call "gntmap_set_max_grants" before mapping any grants
* h01ger waves
* Kensan waves
<avsm> reynir: why are you using the minios grant table? i seem to remember building this in ocaml
<reynir> And for example the Qubes.DB(?) device does this
<avsm> or is it for another usecase? ocaml-gnt has the code in OCaml so the minios code isnt used I believe
<reynir> avsm: it's used in vchan
<reynir> (and I use vchan for qrexec in qubes)
<avsm> but our ocaml-vchan uses ocaml-gnt
<avsm> so you should never run into the minios gnt limit
<reynir> Oh?
<avsm> I cant be sure without printf debugging in minios, but I distinctly remember deleting the minios C code for grants at one point. @djs55 might remember more
<avsm> are you sure the minios code is being used? try a printk in there to be sure
<yomimono> does it matter whether it's the minios code or the ocaml code for this case, reynir?
<avsm> sorry, I pasted the wrong link -- here is the OCaml grant array allocation code: https://github.com/mirage/ocaml-gnt/blob/master/lib/gnt.ml#L92
<yomimono> iirc the real problem was that you couldn't easily inject code to change the size before something else initialized the table
<avsm> ahhh! that would be a problem indeed. I'm not sure how the OCaml code decided how many grants to allocate
<avsm> (frankly, I can't remember anything about that code. It was a dark and gloomy year all around trying to get it to work :)
<reynir> Well, I added bindings for gntmap_set_max_grants and set it to 512 instead of 128 and then I could have more concurrent ssh-agent connections...
<avsm> hm, interesting
<avsm> (and I'm glad your problem got solved)
<reynir> So it seems to me the mini-os code *is* being used
olle has quit [Quit: olle]
<avsm> I see quite a few #ifdefs in the C stubs :-/ Hard to know without looking at the modern build what's exactly going on.
olle has joined #mirage
<avsm> The issue is that at one point we added Linux userspace support for grants via /dev/xen
<avsm> so that muddles everything up -- I wouldn't be surprised if the minios code is somehow being used
olle has quit [Client Quit]
<hannes> reynir, avsm: if i understand it correctly, there's still the issue that it would be nice to have a way in config.ml (or via argument) to set the max_grants!?
<reynir> hannes: Yes, that would be very nice - and then you need to ensure it happens before anything else related to the grants
<avsm> I think so hannes; but we also need to look into gnt v2 which I think lifted this restriction
<avsm> it might well be that this limitation is because we're stuck on the v1 interface (but it might have been upgraded to v2 magically if we're using the minios stubs now)
<yomimono> the code path for getting the other initialization stuff needed by qubes is a bit gory already: https://github.com/mirage/mirage/blob/master/lib/mirage.ml#L2073
<yomimono> but I can imagine a patch that adds another module to this, on which the others depend, which allows that code injection
<yomimono> (just to give you a path for this, reynir, that doesn't depend on massive refactoring of the entire xen backend)
<avsm> can we just increase the number of grants globally :P
<avsm> to give an even shorter path
<yomimono> that's pretty much what such a patch would do
<avsm> let's just do that -- i can't imagine any dramatic side effects
<yomimono> I'm not actually sure it would be easier to do it for qubes + xen vs just qubes
<yomimono> (or cleaner, perhaps I should say)
<avsm> i say just do it for xen rather than special casing qubes
<yomimono> qubes is already special cased
<yomimono> reynir, does that seem like a reasonable approach to you?
<avsm> oh of course, so your patch would be very risk free
<reynir> Yes
<yomimono> there's a pretty wordy writeup of adding those qubes modules in the first place on the mirage.io blog
<yomimono> which might be helpful in making such a patch :)
<reynir> ah cool
<reynir> Yes, I think that would be very useful
* avsm adds "buy a cheapo qubes laptop" to his todo list :)
AltGr has joined #mirage
<yomimono> get one without much RAM, that'll inspire you to make unikernels for everything ;)
<reynir> :D
<yomimono> I got too nice a laptop and now my motivation is low
<yomimono> shall we move on?
<reynir> Yes
<yomimono> next up I wanted to ask for some attention to a couple issues I put on the mirage/mirage about block devices
<yomimono> https://github.com/mirage/mirage/issues/893 (retiring the xen configuration doc generation)
<yomimono> and https://github.com/mirage/mirage/issues/890 (making block device configuration better)
<yomimono> please comment there if the spirit moves you :)
<yomimono> next on the agenda, hannes had a mirage-xen related PR
<yomimono> further comments, hannes?
<hannes> it is https://github.com/mirage/mirage-xen/pull/4 (exposing virt_to_mfn), provided by cfcs
<avsm> I started to debug the block issue on the new infrastructure servers 2 weeks ago, but then we got loads of snow, and the Cambridge Computer Lab new datacentre is down due to a burst pipe in the ceiling :(
<hannes> (my motivation was to reduce the number of pins in https://github.com/cfcs/mirage-ocra-demo basically ;)
<hannes> but that PR already got some attention during today, so I think we'll get something merged there pretty soon
<hannes> next item would be hack retreat aftermath. thanks for participation! :)
<yomimono> thanks for organization :D
<hannes> I've still not managed to finish all the marrakesh bits off, but plan to write something about our infrastructure there (which basically included a dnsmasq replacement on a AMD cpu) -- haesbaert's dhcp server and my dns recursive resolver ran fine over the > 10 days, consuming not much memory (4-5MB)
<reynir> o/*\o
<hannes> there's quite some new repositories in the mirage organisation: mirage-propaganda currently containing the tshirt logo (if you have logos/ci, please add there (I should ask gemma as well))
<hannes> mirage-unix and mirage-xen are split off (preserving history) from mirage-platform
<hannes> (the plan is to retire mirage-platform once we managed to move to the ocaml-freestanding world -- and this seems rather doable (a plan is inside the mirage-platform issue))
<avsm> it would be really great to get rid of the need for our own minios -- there is also the possibility of adding Unikraft support to ocaml-freestanding
<hannes> mirage-handbook is an attempt to sort ourselves a bit more on documentation, in the form of both tutorials and a deeper developers handbook
<hannes> avsm: yes! upgrading to a minios-master is included in the plan, and some stubs from mirage-xen-posix need to move to ocaml-freestanding as a sysdeps_minios
<avsm> awesome :)
<hannes> (the plan is only a plan, but nobody is actively working on it, due to lack of time for that afaict)
<avsm> re: mirage-handbook, samoht yminsky and I are working hard on a modern interface for writing ocaml books https://github.com/realworldocaml/book
<avsm> so that tooling will let you write ocaml sessions and markdown, and generate nice html
<hannes> (issue is https://github.com/mirage/mirage-platform/issues/199, please read and comment in there)
<avsm> will update mirage-handbook when we finish the push on dev.realworldocaml.org
<hannes> avsm: yes. samoht mentioned that as well. what we have thanks to an hour workshop is a draft for a table of contents!
<avsm> hannes: yep thanks for issue link; I am working on Dune variants support which will hopefully simplify a lot of things -- will context switch back to that issue when that's done
<hannes> next marrakesh retreat dates have been negotiated: oct 3-10 2018, march 6-13 2019! :)
<avsm> the ToC in the handbook looks great!
<thomasga> hannes: I'll add some notes about the tooling that I am working on; hopefully we can use this in MirageOS manual too
<thomasga> (and yes the ToC is great, I am looking forward to read the full contents :p)
<reynir> s/read/write/ :D
<thomasga> haha
<hannes> and for mirage deployments, I really want to track which opam packages + versions are inside of the unikernel. thanks to drup we already have the dependencies in Mirage_info exposed (see mirage-skeleton/tutorial/app_info)
<thomasga> hannes: I have just added a comment on your issue, but I did something similar for JITSU: https://github.com/MagnusS/mirage-stats-demo
<thomasga> e.g. it computes the opam packages needed to compile the unikernel and put them in a static module that the unikernel can read
<hannes> in https://github.com/mirage/mirage/issues/896 I outline a patch to functoria which calls "ocamlfind query -r -format %p <deps>" (and afterwards some opam subst) to include a _full list of all transitive dependencies_. in the issue I have some open questions (i.e. is anyone interested in ocamlfind versions?)
<thomasga> but yea, Drup's solution seems cleaner :-)
<hannes> thomasga: how does it compute the opam packages?
<thomasga> and no, I am not interested by ocamlfind versions :-)
<thomasga> (which is probably very wrong :p)
<hannes> thomasga: that will include the build dependencies afaict
<thomasga> yup
<hannes> and last but not least: this time we had 2 ADSL lines in marrakesh terminating (via a long cable) on our router -- would be nice to have a unikernel doing some load balancing... anyone up for implementing GRE tunnels in MirageOS (or any other simple solution, ECMP is a bit too simple), something with monitoring (packet loss + delay) would be highly appreciated :)
<yomimono> opam2 has a `--nobuild` argument to its `list`
Haudegen has quit [Remote host closed the connection]
<yomimono> (please do not interpret that statement as volunteering to set up GRE tunnels :P )
<yomimono> that was the last thing on the agenda, any other items?
<hannes> the ocamlfind solution atm has the issue that not all our bottom dependencies are in META files (i.e. ocaml-freestanding which includes an openlibm and a nolibc, gmp-freestanding as well won't appear there)... but imho a sensible intermediate solution, once we hopefully get rid of ocamlfind, we can find a more elegant solution ;)
<hannes> so in the end, I'll open a functoria PR and await comments over there :)
<avsm> oh here's some slightly random news - I'm going to register as a RIPE LIR
<avsm> so we get a /22 ipv4 allocation, and a bigger ipv6 allocation
<hannes> \o/
<hannes> \O/
<avsm> i think mort has a student working on a bgp implementation
<avsm> soooooooo, after the GRE tunnel... :)
<avsm> only other update from me is that i'm doing a refresh of docs.mirage.io
<avsm> there is a new odoc home at https://github.com/ocaml/odoc
<avsm> so I'll be pinning docs.mirage.io to that to test the master branch of the new odoc, which includes lots of html fixes thanks to anton
<hannes> (bgp stuff mort's student at https://github.com/jimyuan1995/mrt-format/)
<hannes> avsm: sweet, and thanks for getting docs.mirage.io back up, that was super-useful at the retreat -- we should get a local version of that as a unikernel :)
<hannes> (one idea i had was to basically do jitsu with <library>.docs.mirage.io :)
<avsm> heh
<avsm> working on it... (well, a larger version of it)
<thomasga> jitsu-odoc: that's interesting :-)
<hannes> does odoc need unix?
<avsm> somewhat
<avsm> there's a lot of refactoring ongoing, but it probably only really needs Sys
<avsm> I'm working on a much faster version of docs.mirage.io based on `opam source` and dune -- will update when I have something
<hannes> avsm: would be great if the refactoring could have that as goal :)
<avsm> yeah the core is already pretty good -- the issue is ocaml's compiler-libs
<avsm> which mainly use Sys as Unix is in otherlibs
<avsm> so we should largely be good
* hannes is running away for dinner, thanks for this meeting! :)
thomasga has quit [Quit: Leaving.]
thomasga has joined #mirage
ricarkol has quit [Ping timeout: 252 seconds]
djs55 has quit [Quit: Leaving.]
ricarkol has joined #mirage
ricarkol has quit [Client Quit]
thomasga has quit [Quit: Leaving.]
AltGr has left #mirage [#mirage]
Haudegen has joined #mirage
DonRichie has quit [Ping timeout: 276 seconds]
DonRichie has joined #mirage
avsm has quit [Ping timeout: 260 seconds]
yomimono has quit [Ping timeout: 256 seconds]
thomasga has joined #mirage
thomasga has quit [Quit: Leaving.]
yomimono has joined #mirage
jnavila has joined #mirage
jnavila has quit [Ping timeout: 240 seconds]
jnavila has joined #mirage
ricarkol has joined #mirage
dograt has quit [Ping timeout: 260 seconds]
jnavila has quit [Ping timeout: 265 seconds]
ricarkol has quit [Quit: Leaving.]
jnavila has joined #mirage
ricarkol has joined #mirage
Haudegen has quit [Remote host closed the connection]
jnavila has quit [Read error: No route to host]
jnavila has joined #mirage
Guest40779 has joined #mirage
Guest40779 is now known as Haudegen
argent_smith has quit [Quit: Leaving.]
jnavila has quit [Remote host closed the connection]
gentauro has quit [Ping timeout: 256 seconds]
gentauro has joined #mirage
Haudegen has quit [Remote host closed the connection]