| 28 Jul 2025 |
jade_ | * I concur on your suspicion on QoS being involved, since Kate actually also mentioned this a year ago iirc | 00:11:14 |
emily | if it is priority inversion with the daemon then a quick fix may be as simple as ensuring the daemon re-execs itself with the posix_spawn API to set utility QoS class | 00:12:37 |
emily | I also suspect something about logging could be very slow | 00:12:53 |
jade_ | is there a way to get the task policy of a job? | 00:13:01 |
jade_ | this is DEFINITELY true | 00:13:08 |
jade_ | the logging in lix is blocking on the daemon | 00:13:15 |
jade_ | which is totally fucked and we can't really fix it in the current protocol, not easily at least | 00:13:33 |
jade_ | well, maybe we could | 00:13:42 |
jade_ | we would just have to dispatch "logging" to a separate task than "dealing with proto" | 00:14:01 |
jade_ | but it's super fragile | 00:14:04 |
jade_ | known perf problem :( | 00:14:23 |
emily | not sure | 00:14:57 |
jade_ | https://git.lix.systems/lix-project/lix/issues/717 here's the last time qos was mentioned and i filed a bug | 00:15:16 |
jade_ | i would suspect it might be in either activity monitor, some xcode thing, or native ps | 00:15:48 |
emily | whoever led to that bug report must be super smart :D | 00:15:51 |
emily | I think it's not in Activity Monitor sadly | 00:16:09 |
jade_ | sudo powermetrics --show-process-qos --samplers tasks -n 1 | head -n 30 | 00:16:12 |
emily | https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/PrioritizeWorkAtTheTaskLevel.html#//apple_ref/doc/uid/TP40013929-CH35-SW10 | 00:16:18 |
emily | yeah | 00:16:24 |
jade_ | copied directly out of the bazel thing | 00:16:25 |
jade_ | https://git.lix.systems/lix-project/lix/issues/935 here filed another issue with the intent of the fault being written down | 00:20:28 |
emily | losing events sounds really bad for build logs | 00:20:59 |
jade_ | agreed | 00:21:14 |
emily | especially since a big Hydra farm spends most of its time with builders under intense load | 00:21:19 |
emily | (well… ideally) | 00:21:24 |
jade_ | backpressure is probably the correct choice here, but it does mean that theres a correct amount of blocking for logs... | 00:21:38 |
jade_ | just not the amount we have | 00:21:47 |
jade_ | we also do blocking syscalls on every log line lol | 00:22:09 |
emily | I think it's already true, absent Nix, that make >/dev/null is faster than make | 00:22:20 |
emily | IIRC Ninja might do smart stuff to mitigate that | 00:22:29 |