[PATCH] um: ubd: Submit all data segments atomically

Gabriel Krisman Bertazi krisman at collabora.com
Sat Nov 21 23:09:18 EST 2020


Richard Weinberger <richard.weinberger at gmail.com> writes:

> On Wed, Nov 18, 2020 at 10:19 PM Gabriel Krisman Bertazi
> <krisman at collabora.com> wrote:
>>
>> Anton Ivanov <anton.ivanov at cambridgegreys.com> writes:
>>
>> > On 25/10/2020 04:41, Gabriel Krisman Bertazi wrote:
>> >> Internally, UBD treats each physical IO segment as a separate command to
>> >> be submitted in the execution pipe.  If the pipe returns a transient
>> >> error after a few segments have already been written, UBD will tell the
>> >> block layer to requeue the request, but there is no way to reclaim the
>> >> segments already submitted.  When a new attempt to dispatch the request
>> >> is done, those segments already submitted will get duplicated, causing
>> >> the WARN_ON below in the best case, and potentially data corruption.
>> >> In my system, running a UML instance with 2GB of RAM and a 50M UBD
>> >> disk,
>>
>> >>   [...]
>> >> ---[ end trace c6e7444e55386c0f ]---
>> >> Cc: Christopher Obbard <chris.obbard at collabora.com>
>> >> Reported-by: Martyn Welch <martyn at collabora.com>
>> >> Signed-off-by: Gabriel Krisman Bertazi <krisman at collabora.com>
>>
>> > Acked-By: Anton Ivanov <anton.ivanov at cambridgegreys.com>
>>
>> Hi,
>>
>> Is this queued somewhere?  I've been watching the linux-next branch of
>
> I had only one minor comment but apparently the mail got stuck locally. :-(
> Just sent my mail again.

Thanks for the feedback.  I fixed up the array declaration and I'm just
completing it a new round of test before sending the v2.

-- 
Gabriel Krisman Bertazi



More information about the linux-um mailing list