noticed that i made a mistake in c reproducer. it doesn't reap completelitions correctly, but it was still sufficient to reproduce the problem. the idea is to submit writes at the high rate, waiting only when necessary and at the end. anyway, i am not so interested in making it work on my computer but rather would like to ask, what are your thoughts about serializing writes in the kernel? it looks like that sometimes it is strictly worse and might be a problem for integrations into the runtimes (e.g. libuv, nodejs, golang). at the same time it is very easy to serialize in user space if necessary. On Wed, 19 Aug 2020 at 10:55, Dmitry Shulyak <yashulyak@xxxxxxxxx> wrote: > > reproducer with liburing - > https://github.com/dshulyak/liburing/blob/async-repro/test/async-repro.c > i am using self-written library in golang for interacting with uring, > but i can reproduce the same issue with that snippet consistently. > > On Tue, 18 Aug 2020 at 19:42, Jens Axboe <axboe@xxxxxxxxx> wrote: > > > > On 8/18/20 9:09 AM, Dmitry Shulyak wrote: > > > it worked, but there are some issues. > > > with o_dsync and even moderate submission rate threads are stuck in > > > some cpu task (99.9% cpu consumption), and make very slow progress. > > > have you expected it? it must be something specific to uring, i can't > > > reproduce this condition by writing from 2048 threads. > > > > Do you have a reproducer I can run? Curious what that CPU spin is, > > that obviously shouldn't happen. > > > > -- > > Jens Axboe > >