ocaml-multicore / eio

Effects-based direct-style IO for multicore OCaml
Other
557 stars 72 forks source link

Eio_unix: Allocation warning from sched.ml breaks cram tests #677

Closed clecat closed 8 months ago

clecat commented 8 months ago

Context: When working on moving a project to eio, a warning has started to appear on the CI servers: eio_linux [WARNING] Failed to allocate 262144 byte fixed buffer

The warning seems to come from the allocation of the fixed uring buffer done for the scheduler here. This buffer size is calculated with the default values set here and seems quite reasonable.

However my guess is that the shared memory with the kernel allowed by the CI servers for each worker is quite limited to avoid impacting other CI runs.

Issue: While eio is perfectly able to run without a fixed buffer for it's scheduler, it raises a warning nonetheless, which happens to break some cram tests of our project in which we might want to track our own warnings (hence we cannot simply disable all warning logs).

Question: Would there be a way for us to disable/not get this warning as an application built over eio ? Maybe by exposing a way to set the log level from the eio_main/eio_linux interface.

Thank you for your time, Gwen

talex5 commented 8 months ago

It is possible to get the log source from Logs, using Logs.Src.list, and configure the level there.

I'd like to remove the logs dependency completely (only eio_linux is still using it, and only in two places), so I'd prefer not to expose the log source in the API.

clecat commented 8 months ago

I see thank you for your answer. It would indeed be a bad idea if logs is going to be removed.

I had considered Logs.Src.list but I did not know the extend at which you were using logs within eio. However with your answer, I'll go for it ! Have a nice day