On 11/4/24 17:05, Jens Axboe wrote:
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.
Thanks for testing.
I was just looking at the patch, and the fun part is that it depends on
failing tw off PF_KTHREAD tasks... Otherwise when the fallback executes
a request the original task could still be alive =>
(req->task->flags & PF_EXITING) check passes and the request continues
doing stuff from the kthread (with no mm and so).
A side note that it should be marginally better than before on the
cancellation front because we're killing task_work more eagerly
for a dying ctx but alive tasks.
I'll send the patch properly.
--
Pavel Begunkov