Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1190564pxf; Fri, 19 Mar 2021 00:51:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz6K8/Zr0xdhv2uecMB1QpKRadzKsAchqb8zmamzMo00DRd7XpTgJPp+o6XdGJ0D2aDhjMH X-Received: by 2002:a05:6402:4309:: with SMTP id m9mr8361978edc.25.1616140266570; Fri, 19 Mar 2021 00:51:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616140266; cv=none; d=google.com; s=arc-20160816; b=xHVtAL6xJFBUma9+UYf4ebG5GHOCArz6urJiRV5cPr27TTLjnJmglreNY6WYqD5Lfo rIMlASRshvjMq2uffrUxkmg7SMBO3D2dftdqBkBO1unlsPyEDgjeaMSJwtY0skgs4+I9 ZEk051hkRyzElfEYPjIG/lTVmk2FUnkLH9zqP49ZmM1YPUteDOrzw9PfK9oQshq9Lsjj RiEQ1MgeQti3jzt/ApbA/8S5vAcWR07srWg+wScW4lwY/yPtawV6+LkyzvL5rzxzD3cB 7Ns8cA8AwBbcymkXgEKGxnMfGxf9ihcNCPDLT5xh1pC49mlfEdU3/vd9kCVQdUiUNn9h Xq5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:mime-version:subject:references :in-reply-to:cc:to:from:dkim-signature; bh=tzstS7qE5Oi03rZfcoNGHRXwKYApIlwaSb7+LgQ+Xlg=; b=S/g43c/3Qdhre3sxfzWyoI9/P1XtnVyBLkvTKsLYZgM0LsWt0JAfQP6o67EsmCKbKR 4mffbpKxBY593qKKVh/RmK80WXE7Y2RMweqfmnWKAResTaQv0Dhiv0iNFJhn3dUk+9NM XgxLyCgXJOh111kdq/LONtwTPbh2Wpfi6AZIa+wMN9wV2GMsRpSllKZSyPDmHVkLWyPo aC/oX06DqeDlH721lsUFsquJwESEXZjfIQdAcMzbapdUamIkX5KtEsug8wHcUrwA/4zE F32pJmFI4pOpD4uGio5hc3FebIDa/qCnNbRcdFIRCAeclNuFdToeqWLckOh2y6HDcjvv ozgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@yandex-team.ru header.s=default header.b=d8agIJaJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s20si3438015edu.53.2021.03.19.00.50.43; Fri, 19 Mar 2021 00:51:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@yandex-team.ru header.s=default header.b=d8agIJaJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234178AbhCSHsD (ORCPT + 99 others); Fri, 19 Mar 2021 03:48:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234233AbhCSHri (ORCPT ); Fri, 19 Mar 2021 03:47:38 -0400 X-Greylist: delayed 109 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Fri, 19 Mar 2021 00:47:37 PDT Received: from forwardcorp1o.mail.yandex.net (forwardcorp1o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::193]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 378A4C06174A; Fri, 19 Mar 2021 00:47:37 -0700 (PDT) Received: from sas1-6b1512233ef6.qloud-c.yandex.net (sas1-6b1512233ef6.qloud-c.yandex.net [IPv6:2a02:6b8:c14:44af:0:640:6b15:1223]) by forwardcorp1o.mail.yandex.net (Yandex) with ESMTP id 8D0C62E1869; Fri, 19 Mar 2021 10:45:46 +0300 (MSK) Received: from mail.yandex-team.ru (mail.yandex-team.ru [2a02:6b8:0:408:868:71a6:d203:8f53]) by sas1-6b1512233ef6.qloud-c.yandex.net (mxbackcorp/Yandex) with HTTP id RjXCO10PAW21-jkP0U1St; Fri, 19 Mar 2021 10:45:46 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1616139946; bh=oYzw9yBamYcVEFuiIKWorYqGTToWeWfjmDgdEX5vWHw=; h=Subject:In-Reply-To:Cc:Date:References:To:From:Message-Id; b=d8agIJaJs8ywnSwg7SCNLlZvKUboPEkU99qAmepVI/kWfacx5/zGNAiFQSLtjdnap WDZJKTgboUw7EpyUJBvPdNpfCbspvi8NnQVJPS4GWkq/EC+181AThp2z61Q5uttG0T YGzm0uWYe/hJ6ubzhsIRlMzBsknNvdE2cniUbPoY= Authentication-Results: sas1-6b1512233ef6.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru X-Yandex-Sender-Uid: 1120000000084479 X-Yandex-Avir: 1 Received: from sas1-ec30c78b6c5b.qloud-c.yandex.net (sas1-ec30c78b6c5b.qloud-c.yandex.net [2a02:6b8:c14:2704:0:640:ec30:c78b]) by sas2-3467662b745a.qloud-c.yandex.net with LMTP id xc1xHhWXL8-j8Hy5040 for ; Fri, 19 Mar 2021 10:45:36 +0300 Received: by sas1-b43cfc766761.qloud-c.yandex.net with HTTP; Fri, 19 Mar 2021 10:45:36 +0300 From: Dmitry Monakhov To: "linux-kernel@vger.kernel.org" Cc: "linux-fsdevel@vger.kernel.org" , "axboe@kernel.dk" In-Reply-To: <20210319052859.3220-1-dmtrmonakhov@yandex-team.ru> References: <20210319052859.3220-1-dmtrmonakhov@yandex-team.ru> Subject: Re: [PATCH] io_uring: Try to merge io requests only for regular files MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 19 Mar 2021 10:45:46 +0300 Message-Id: <61611616138730@mail.yandex-team.ru> Content-Type: multipart/mixed; boundary="----==--bound.300.sas1-b43cfc766761.qloud-c.yandex.net" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ------==--bound.300.sas1-b43cfc766761.qloud-c.yandex.net Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 - stable@ 19.03.2021, 08:29, "Dmitry Monakhov" : > Otherwise we may endup blocking on pipe or socket. > > Fixes: 6d5d5ac ("io_uring: extend async work merge") > Testcase: https://github.com/dmonakhov/liburing/commit/16d171b6ef9d68e6db66650a83d98c5c721d01f6 > Signed-off-by: Dmitry Monakhov > --- >  fs/io_uring.c | 3 +++ >  1 file changed, 3 insertions(+) > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 478df7e..848657c 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -2183,6 +2183,9 @@ static int __io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req, >  static struct async_list *io_async_list_from_req(struct io_ring_ctx *ctx, >                                                   struct io_kiocb *req) >  { > + if (!(req->flags & REQ_F_ISREG)) > + return NULL; > + IMHO it is reasonable to completely disable io_should_merge logic because even with the this fix it still affected by latency spikes like follows: ->submit_read: req1[slow_hdd, sector=z] ->submit_read: req2[nvme, sector=X] -> wait(req2) -> fast ->submit_read: req3[nvme, sector=Y] --> wait(req3) ->slow if completes if X and Y belongs to same page merge logic will wait for req1 to complete ------==--bound.300.sas1-b43cfc766761.qloud-c.yandex.net Content-Disposition: attachment; filename="0001-io_uring-completely-disable-io_should_merge-logic.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name="0001-io_uring-completely-disable-io_should_merge-logic.patch" RnJvbSBjMjRjZGE5YWE5MDI3NzVlNGUyMzU3NWI3NThmMDA5ZTlmYWU0NjQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgTW9uYWtob3YgPGRtdHJtb25ha2hvdkB5YW5kZXgt dGVhbS5ydT4KRGF0ZTogRnJpLCAxOSBNYXIgMjAyMSAwODo0ODoxOCArMDMwMApTdWJqZWN0OiBb UEFUQ0hdIGlvX3VyaW5nOiBjb21wbGV0ZWx5IGRpc2FibGUgaW9fc2hvdWxkX21lcmdlIGxvZ2lj Cgppb19zaG91bGRfbWVyZ2UgbG9naWMgaXMgd2llcmQgYW5kIHByb25lIHRvIGxhdGVuY3kgc3Bp a2VzIGJlY2F1c2Ugb2Ygc2xvdyBuZWlnaGJvcnMuCgpTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgTW9u YWtob3YgPGRtdHJtb25ha2hvdkB5YW5kZXgtdGVhbS5ydT4KCmRpZmYgLS1naXQgYS9mcy9pb191 cmluZy5jIGIvZnMvaW9fdXJpbmcuYwppbmRleCA0NzhkZjdlLi5hNGZiM2E3IDEwMDY0NAotLS0g YS9mcy9pb191cmluZy5jCisrKyBiL2ZzL2lvX3VyaW5nLmMKQEAgLTEyODgsNyArMTI4OCw3IEBA IHN0YXRpYyBzc2l6ZV90IGlvX2ltcG9ydF9pb3ZlYyhzdHJ1Y3QgaW9fcmluZ19jdHggKmN0eCwg aW50IHJ3LAogCiBzdGF0aWMgaW5saW5lIGJvb2wgaW9fc2hvdWxkX21lcmdlKHN0cnVjdCBhc3lu Y19saXN0ICphbCwgc3RydWN0IGtpb2NiICpraW9jYikKIHsKLQlpZiAoYWwtPmZpbGUgPT0ga2lv Y2ItPmtpX2ZpbHApIHsKKwlpZiAoYWwtPmZpbGUgPT0ga2lvY2ItPmtpX2ZpbHAgJiYgMCkgewog CQlvZmZfdCBzdGFydCwgZW5kOwogCiAJCS8qCi0tIAoyLjcuNAoK ------==--bound.300.sas1-b43cfc766761.qloud-c.yandex.net--