From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on gnuweeb.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,NO_DNS_FOR_FROM, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from [192.168.88.254] (unknown [125.160.97.11]) by gnuweeb.org (Postfix) with ESMTPSA id 0FF2A7E24B; Thu, 21 Jul 2022 13:08:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1658408907; bh=8c6DdywAwBIRE/n+UmqEj4dgROYwPvas+8/IzXZ355g=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=UQ52k7JVTOzrvedUUP/PSYuZMkcAfkJMr0e+KquX36/k7Jo2sPLxv+6JBAmGVhrwF rGxxdEqXLAX9/vAhD1yYTfUoRAM3CAV6ZMLHyF3G39jGzSTGo74drkTDCOxx1t4p6Z t4FmHtGD9on3Yxd+Z3blwT2ae3MpdYZPnv+LNJLAcivz5Zo8ATK+MJfvU2MgRJg/gA 8eU3GTuBKYOAq8fswgm/b5Ka27HcSN+rPN67AwX4M3vRRlNPUKdeU5/H7Lpw1/8STD I5TgQ1phD5ECE3yTaPYQYC2knUKc9JGxeGd8uFF0Yorpjiy7wIVtKFMnVCinWOZ53p DLCqp80spwbAA== Message-ID: <3761ef37-85fc-de81-b211-39eaf3fe2362@gnuweeb.org> Date: Thu, 21 Jul 2022 20:08:19 +0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Linux 5.19-rc7 liburing test `poll-mshot-overflow.t` and `read-write.t` fail Content-Language: en-US To: Dylan Yudaken Cc: Jens Axboe , Pavel Begunkov , Fernanda Ma'rouf , Linux Kernel Mailing List , io-uring Mailing List , GNU/Weeb Mailing List References: <2709ed98-6459-70ea-50d4-f24b7278fb24@gnuweeb.org> <3489ef4e810b822d6fdb0948ef7fdaeb5547eeba.camel@fb.com> From: Ammar Faizi In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: On 7/21/22 7:05 PM, Dylan Yudaken wrote: > It seems to be a problem with blocking reads, buffer select and READV. > My guess is that ext4/xfs are not blocking. > > in b66e65f41426 ("io_uring: never call io_buffer_select() for a buffer > re-select"), this line was added in __io_iov_buffer_select > > - iov[0].iov_len = len; > + req->rw.len = iov[0].iov_len = len; > > Basically stashing the buffer length in rw.len. The problem is that the > next time around that breaks at > > if (req->rw.len != 1) > return -EINVAL; > > > The below fixes it as an example, but it's not great. Maybe someone can > figure out a better patch? Otherwise I can try tomorrow: It's 8:05 PM from my end. I'll try to play with your patch after dinner while waiting for others say something. -- Ammar Faizi