2020-04-24 18:06:51

by Jens Axboe

[permalink] [raw]
Subject: [GIT PULL] io_uring fix for 5.7-rc3

Hi Linus,

Single fixup for a change that went into -rc2, please pull.


git://git.kernel.dk/linux-block.git tags/io_uring-5.7-2020-04-24


----------------------------------------------------------------
Xiaoguang Wang (1):
io_uring: only restore req->work for req that needs do completion

fs/io_uring.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

--
Jens Axboe


2020-04-24 20:07:50

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] io_uring fix for 5.7-rc3

On Fri, Apr 24, 2020 at 11:03 AM Jens Axboe <[email protected]> wrote:
>
> Single fixup for a change that went into -rc2, please pull.

I'd like to point out that this was exactly the code that I pointed to
as being badly written and hard to understand:

"That whole apoll thing is disgusting.

I cannot convince myself it is right. How do you convince yourself?"

And you at that time claimed it was all fairly simple and clear.

I repeat: that whole apoll thing is disgusting. It wasn't simple and
clear and only a few obvious cases that had issues.

In fact, now it's even less clear, with an even more complicated check
for when to restore things,

I think that whole approach needs re-thinking. Is the union really worth it?

Can you guarantee and explain why _this_ time it is right?

Linus

2020-04-24 20:15:55

by Jens Axboe

[permalink] [raw]
Subject: Re: [GIT PULL] io_uring fix for 5.7-rc3

On 4/24/20 2:03 PM, Linus Torvalds wrote:
> On Fri, Apr 24, 2020 at 11:03 AM Jens Axboe <[email protected]> wrote:
>>
>> Single fixup for a change that went into -rc2, please pull.
>
> I'd like to point out that this was exactly the code that I pointed to
> as being badly written and hard to understand:
>
> "That whole apoll thing is disgusting.
>
> I cannot convince myself it is right. How do you convince yourself?"
>
> And you at that time claimed it was all fairly simple and clear.

I know, and I was pretty much expecting you to bring that up...

> I repeat: that whole apoll thing is disgusting. It wasn't simple and
> clear and only a few obvious cases that had issues.
>
> In fact, now it's even less clear, with an even more complicated check
> for when to restore things,
>
> I think that whole approach needs re-thinking. Is the union really worth it?
>
> Can you guarantee and explain why _this_ time it is right?

To be fair, this place is really the only place that is a bit tricky, since
it's where we restore things. The rest is clear, since we know exactly
which poll (&req->poll, or req->apoll) that is being used. The fix from
last week ended up somewhat conflicting with the cancellation part, which
is part of the reason it slipped.

But I do hear your point. If we run into anything like this again, I'll
bite the bullet and un-unionize this thing. I just care pretty deeply
about keeping the footprint of a single io_uring request down to as
little as we can, as we can be doing millions of these (per core). We've
still got some room in terms of not spilling into the next cacheline.

--
Jens Axboe

2020-04-24 20:53:05

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] io_uring fix for 5.7-rc3

The pull request you sent on Fri, 24 Apr 2020 12:03:28 -0600:

> git://git.kernel.dk/linux-block.git tags/io_uring-5.7-2020-04-24

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/aee1a009c9d247756b368890e3f886174776d3db

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker