IRC logs for #buildstream for Saturday, 2022-12-10

*** tristan <tristan!tristan@223.62.169.92> has joined #buildstream02:52
*** ChanServ sets mode: +o tristan02:52
*** tristan <tristan!tristan@223.62.169.92> has quit IRC03:16
*** tristan <tristan!tristan@223.62.169.218> has joined #buildstream08:42
*** ChanServ sets mode: +o tristan08:42
*** tristan <tristan!tristan@223.62.169.218> has quit IRC08:45
juergbinanonyme: juerg/overlayfs branches of buildbox-common and buildbox-run-bubblewrap are mostly working14:42
nanonymeCool14:43
juergbiseeing two buildstream integration test failures, one is the read-only test (with overlayfs, buildbox-fuse can't deny writes) and the other is an incremental workspace test. not sure why that's failing14:43
juergbiit might be in good enough state to build freedesktop-sdk, if you want to give this a try14:43
juergbirequires linux 5.11 (and unprivileged user namespaces)14:44
nanonymeUngh. Looks like Debian stable has 5.10 https://packages.debian.org/search?keywords=linux-image-amd&searchon=names&suite=stable&section=all14:45
juergbiis that what the runners are using or your local system?14:45
nanonymeIt's what the runners are using, yes. x86_64 runners are running on top of Debian 11 AMI14:46
nanonyme+ customizations14:46
nanonymejuergbi: might take a bit of extra sorting out14:48
nanonymejuergbi: wouldn't it be easier to just block the opens for write access than blocking the writes?14:49
juergbinanonyme: we use the no-open optimization, so open requests won't reach buildbox-fuse14:50
juergbihowever, that's not the issue here. the issue is that buildbox-fuse won't see any write-related activity with the overlay active14:51
juergbian overlay's 'lower' filesystem is always treated as read-only14:51
nanonymeYeah, but kernel will assumably block the write if file is opened in read-only mode14:51
juergbiyes but the overlay will trigger a copy-up, it won't allow the lower filesystem to block anything14:52
nanonymeHm14:52
juergbiread-only bind mounts on top of the overlay might do the trick14:53
juergbianother option could be to mark the releveant files and directories read-only (via file mode). wouldn't prevent chmod and then writing but the whole thing is anyway about detection of incorrect/accidental writes, not security15:05
nanonymeYeah18:13
nanonymejuergbi: do you think we could have some synthetic benchmarks between native, plain buildbox-fuse and buildbox-fuse+overlayfs?18:14
nanonymeI'm not sure we can immediately integrate that stuff due to kernel requirements18:14
nanonymeJust to see if this is worth further work18:16
juergbinanonyme: I've tested flatpak build-export for platform+sdk+pre-bootstrap19:05
juergbiwith plain buildbox-fuse it takes 42s, with buildbox-fuse + overlayfs it takes 32s19:05
nanonymeIt's suspiciously fast even with plain buildbox-fuse19:07
juergbiit's just these three parts, not the whole stack, and on a reasonably fast desktop system19:08
nanonymejuergbi: did you use the debug extension?19:08
nanonymeThere's several gigabytes of debuginfo19:08
juergbino, that's without -debug.bst elements19:08
juergbitiming with the sdk-debug.bst would be useful?19:09
nanonymeWell, it's by far the biggest component there and also probably has biggest individual files19:10
juergbilet's see whether I'm not running out of disk space19:11
juergbibtw: there is still some optimization potential in the overlayfs variant, it currently has to hash new/modified files twice19:11
juergbibut with regards to writes it should already be efficient (could further be optimized with reflinks for capture, independent of overlayfs being used or not)19:12
juergbinanonyme: also including sdk-debug it's 1m41s vs. 1m10s19:23
nanonymejuergbi: the thing is, it takes us *hours* to run full flatpak repo19:24
nanonymeSo something is now clearly off19:24
nanonymeI am really getting the feeling we need to test with newer kernel19:25
juergbithis is with fast local I/O. ext4 (+LUKS) on NVMe. no VM19:25
juergbi5.10 is not that old, though. I don't remember huge FUSE optimizations in the meantime19:26
nanonymeWell, what led us to suspect FUSE in the first place is bst1 on exact same runner was magnitude faster19:30
nanonymeSince as we know bst1 doesn't actually use FUSE19:31
juergbi(it does for some cases but presumably not in this context)19:32
nanonymeWell, we tested the build sandbox, it did not19:33
nanonymeAnd this is normal case for majority of builds.19:34
juergbiyes. it's mainly integration commands where FUSE is used, iirc19:36
nanonymejuergbi: I guess this overlayfs would also help heaps with integration commands?19:36
nanonymeRight19:37
juergbiif they are write-bottlenecked. not sure they are19:37
nanonymeI am reading through buildbox-fuse cmake definitions. Can you please open up in simple English whether https://gitlab.com/BuildGrid/buildbox/buildbox-fuse/-/blob/master/CMakeLists.txt#L69-74 ; does it have any impact other than for testing?19:53
nanonymeWe use very limited build sandboxes and I'm pretty sure those things are not in it19:54
juergbithat's only for testing19:56
nanonymeRight. It looks almost impossible to build buildbox-fuse wrong then19:56
juergbinanonyme: fdo-sdk docker-images seems to still be on buildbox-fuse 0.0.61, not 0.0.63, though19:58
juergbiit includes an opendir optimization. however, I don't expect it to make that much of a difference19:59
nanonymeI can fix that. We don't currently have automatic updates for docker repo, I've been asking every now and then if we should20:00
juergbicould we easily e.g. run top on the CI VM while it's building flatpak-release?20:04
juergbijust to figure out where CPU time is going or whether there is a lot of I/O wait?20:04
nanonymeWell, I can't. jjardon and benjaminb (https://matrix.to/#/#freedesktop-sdk:matrix.org) probable can at least get the to VM.20:13
nanonymeI am anyway updating all builbox components now https://gitlab.com/freedesktop-sdk/infrastructure/freedesktop-sdk-docker-images/-/merge_requests/35620:13

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!