From: Avi Kivity <email@example.com> To: Glauber Costa <firstname.lastname@example.org> Cc: Pavel Begunkov <email@example.com>, firstname.lastname@example.org, Jens Axboe <email@example.com> Subject: Re: shutdown not affecting connection? Date: Sat, 8 Feb 2020 22:28:59 +0200 Message-ID: <firstname.lastname@example.org> (raw) In-Reply-To: <CAD-J=zZwH7ceTaAS=ck5_5thGN_ne1kVXOJzZfBK-gorzwNLxg@mail.gmail.com> On 2/8/20 10:20 PM, Glauber Costa wrote: >> >>> Perhaps you can reduce the >>> problem to a small C reproducer? >>> >> That was my intended next step, yes > s***, I didn't resist and I had to explain to my wife that no, I don't > like io_uring more than I like her. > > But here it is. > > This is a modification of test/connect.c. > I added a pthread comparison example that should achieve the same > sequence of events: > - try to sync connect > - wait a bit > - shutdown > > I added a fixed wait for pthread to make sure that shutdown is not > called before connect. > > For io_uring, the shutdown is configurable with the program argument. > This works just fine if I sleep before shutdown (as I would expect from a race). > This hangs every time if I don't. > > Unless I am missing something I don't think this is the expected behavior I think it is understandable. Since the socket is blocking uring moves the work to a workqueue, and the shutdown() happens before the workqueue has had a chance to process the connection attempt. So we'll have to cancel the sqe. Jens, does the blocking connect doesn't consume a kernel thread while it's waiting for a connection? Or does it just set things up and move on?
next prev parent reply index Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-08 13:55 Glauber Costa 2020-02-08 14:26 ` Pavel Begunkov 2020-02-08 18:42 ` Glauber Costa 2020-02-08 18:48 ` Avi Kivity 2020-02-08 18:57 ` Glauber Costa 2020-02-08 20:20 ` Glauber Costa 2020-02-08 20:28 ` Avi Kivity [this message] 2020-02-08 20:43 ` Glauber Costa 2020-02-08 18:48 ` Andres Freund 2020-02-08 18:54 ` Glauber Costa
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
IO-Uring Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/io-uring/0 io-uring/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 io-uring io-uring/ https://lore.kernel.org/io-uring \ email@example.com public-inbox-index io-uring Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.io-uring AGPL code for this site: git clone https://public-inbox.org/public-inbox.git