Re: [PATCH v1] dmaengine: dmatest: Fix dmatest waiting less when interrupted
From: Vinicius Costa Gomes
Date: Wed Mar 12 2025 - 18:14:10 EST
Hi Nathan,
Nathan Lynch <nathan.lynch@xxxxxxx> writes:
> Hi,
>
> Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx> writes:
>> Change the "wait for operation finish" logic to take interrupts into
>> account.
>>
>> When using dmatest with idxd DMA engine, it's possible that during
>> longer tests, the interrupt notifying the finish of an operation
>> happens during wait_event_freezable_timeout(), which causes dmatest to
>> cleanup all the resources, some of which might still be in use.
>>
>> This fix ensures that the wait logic correctly handles interrupts,
>> preventing premature cleanup of resources.
>>
>> Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
>> Closes: https://lore.kernel.org/oe-lkp/202502171134.8c403348-lkp@xxxxxxxxx
>
> Given the report at the URL above I'm struggling to follow the rationale
> for this change. It looks like a use-after-free in idxd while
> resetting/unbinding the device, and I can't see how changing whether
> dmatest threads perform freezeable waits would change this.
>
I think that the short version is that the reproducition script triggers
different problems on different platforms/configurations.
The solution I proposed fixes a problem I was seeing on a SPR system, on
a GNR system (that I was only able to get later) I see something more similar
to this particular splat (currently working on the fix).
Seeing this question, I realize that I should have added a note to the
commit detailing this.
So I am planning on proposing two (this and another) fixes for the same
report, hoping that it's not that confusing/unusual.
Cheers,
--
Vinicius