Re: [syzbot] [io-uring?] [usb?] WARNING in io_get_cqe_overflow (2)

From: Jens Axboe
Date: Mon Nov 04 2024 - 12:07:11 EST


On 11/4/24 10:03 AM, Jens Axboe wrote:
> On 11/4/24 9:54 AM, Pavel Begunkov wrote:
>> On 11/4/24 15:43, Jens Axboe wrote:
>>> On 11/4/24 8:34 AM, Pavel Begunkov wrote:
>>>> On 11/4/24 15:27, Pavel Begunkov wrote:
>> ...
>>>> Regardless, the rule with sth like that should be simpler,
>>>> i.e. a ctx is getting killed => everything is run from fallback/kthread.
>>>
>>> I like it, and now there's another reason to do it. Can you out the
>>> patch?
>>
>> Let's see if it works, hopefully will try today.
>
> I already tried it here fwiw, does fix the issue (as expected) and it
> passes the full testing too.

Forgot to include the basic reproducer I wrote for this report, it's
below.

#include <stdio.h>
#include <inttypes.h>
#include <stdlib.h>
#include <unistd.h>
#include <liburing.h>

int main(int argc, char *argv[])
{
struct io_uring ring;
int fds[2], ret;
__u64 tags[2];

if (pipe(fds) < 0) {
perror("pipe");
return 1;
}

tags[0] = 1;
tags[1] = 2;

io_uring_queue_init(4, &ring, IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN);
io_uring_register_files_tags(&ring, fds, tags, 2);
io_uring_queue_exit(&ring);

sleep(1);

return 0;
}


--
Jens Axboe