On 7/24/19 8:11 AM, Daniel Kozak wrote:
> Hi,
> 
> I am playing with io_uring interface and for some reason it is causing
> freezing my pc.  Here is some example code which cause this:
> 
> https://bitbucket.org/kozzi11/uring_hang/src/master/main.c
> 
> When runing this and test it with wrk (https://github.com/wg/wrk) :
> wrk --latency -d 15 -c 2048 --timeout 8 -t 8 http://localhost:8080/
> 
> it completly hang pc.
> 
> Thank you for any hint if there is something wrong with way how I am
> using io_uring interface or it is a bug in io_uring itself.
> 
> Daniel Kozak
> 

Does this help?


diff --git a/fs/io_uring.c b/fs/io_uring.c
index 7343d655f247..fb94cfe0ff3a 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -1599,7 +1599,7 @@ static int io_poll_wake(struct wait_queue_entry *wait, 
unsigned mode, int sync,
        list_del_init(&poll->wait.entry);
 
        if (mask && spin_trylock_irqsave(&ctx->completion_lock, flags)) {
-               list_del(&req->list);
+               list_del_init(&req->list);
                io_poll_complete(ctx, req, mask);
                spin_unlock_irqrestore(&ctx->completion_lock, flags);
 

-- 
Jens Axboe

Reply via email to