From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 66567C4332F for ; Wed, 1 Nov 2023 02:26:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=D5caTi8yKdguK+CGoz6TtopQTkXuGZprRqqn2NKrkog=; b=CSIwcnqUZTgK1g VamV1AhLQfw/WRp442YfZdhsBIDwOX3lfDYOchHrR6lt71wxtM6RX+iZy9gwTjqmHsn5wyMxzj1Sg JwMHgkja/N8McYzbJejLOjPqXj3HRuzKc63kGeYALQ/Vc6GWwbLMqdw8MZGVsBndP97WYTf6N2DOR AWbvEZ2dzeZcqTTKDLft4F4ENB7z99nZI0uQajDo6wovpMDYDlv5hMGMLNNEM8zJIeSLTdMfI6MM+ 63Gf9sHsnNBYSWKqZuryiOLA25E0WrfS7+R94MIzrBQpUj3bGV2FpYEVf13yDJQLlMd+//JCi5wo4 jwPcbLrs5xBBiNHJgxpQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qy0v6-006WZP-1k; Wed, 01 Nov 2023 02:25:24 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qy0v1-006WYD-1G; Wed, 01 Nov 2023 02:25:23 +0000 X-UUID: df29a4aa785d11ee86758d4a7c00f3a0-20231031 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=jORAfPDKeK1Bho9lvsYHVcpmvRbIglM2bzAH+h7J/Ok=; b=WpuY7U6cGsACdheCHEXO8bJO69PC8BwHR4ARMAjn0upraac0D7leLlL2/IV9sbntZKecH4yi7i9nC5BLpNpHVH4sQKKQLYsMaXzVJHxDDiEqh0XXEq/cuQUiVAQ0zNYVoMNf3Mov98knvc9sScqmpQyinEdLUDkDFXmAa+cgJZA=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.33,REQID:a90eb97d-050e-4b34-858d-485a99754673,IP:0,U RL:0,TC:0,Content:14,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:14 X-CID-META: VersionHash:364b77b,CLOUDID:dcc68dd7-04a0-4e50-8742-3543eab8cb8e,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:3,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO, DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: df29a4aa785d11ee86758d4a7c00f3a0-20231031 Received: from mtkmbs14n2.mediatek.inc [(172.21.101.76)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 732223407; Tue, 31 Oct 2023 19:25:06 -0700 Received: from mtkmbs10n1.mediatek.inc (172.21.101.34) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 1 Nov 2023 10:24:29 +0800 Received: from APC01-PSA-obe.outbound.protection.outlook.com (172.21.101.237) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Wed, 1 Nov 2023 10:24:29 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=McMmQhezLTfcyoBnZDUdWCVI2sSno1Zrp1eG3HaesSZVB5E09cvXfIpBPBRwGIenCQKKpbeyDQmQzjdkVDDCZRBkKYakTpLWEZvgacjfbC1rDLx9xLZvyh5ugMY6MF9MPF8nmLPzUdRZWvsDMrVyZJ1cgg6V+JMW7EDv3fiC/zzT2FeqXdDKbc5omrQFaThCthCtFxNG+aG3aRnatRBo6OcLLIJ05MXsNEkgcTD5qjmzI7KoP/6mEU4sTo327fdPcJWnOEetRWuKwfuJrrkIjmCg+lvJphmb9xJAN+gKv1/FF4IgIEYLcKzm5L9b0fNWIMp9avMulDTH0hRAO+h4qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jORAfPDKeK1Bho9lvsYHVcpmvRbIglM2bzAH+h7J/Ok=; b=EJHCEpJ7f4b9tiDk9h5MwxSF7+uDMmRzux1eA/2w8BmafEzT5Wy0CZFPkKXrghIFk9q80Fu29RPrr3BX7FVFMbrft1ROAaih1hCgwy9m7qRsAA/eIKH0N/1Jy/B9ggHNEimZohpBaV7vFyop4fthIqYsUoo6m7SwJ+GEQIa5/aGAkz5s6r9cHjFlqvxjJzbGSf6e+pZvSk/eK4PwYryj+bqcUXl4Z69/85TkzGky3YKBaqqVdGrc1Tab6EfaJXv6g41rbIGrntQGFRL39ndthRi/ksohbJgSlZiH/Ug+NM5wVCYtx+BM8AvJ2okMwqj1vQmfiu/I4cnMvRQtLBPH1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jORAfPDKeK1Bho9lvsYHVcpmvRbIglM2bzAH+h7J/Ok=; b=icZ9IQQF6SvDeqVlZ0ifZciuezq/TQ2/u8h1bmYsXIflbyajO3PX2KpvEMDwBZ6YQynRMKJzBQGPKj0zJr2Rif+g6gT7V5CyLb4prLAWZVV9GLSxPtL7IfO0+rPb4kF0J1pA0ZP8SfMhThto6Z1aqx1E8YReNAxQvnZoiKCk+k4= Received: from SI2PR03MB5545.apcprd03.prod.outlook.com (2603:1096:4:131::9) by TYZPR03MB5775.apcprd03.prod.outlook.com (2603:1096:400:89::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.31; Wed, 1 Nov 2023 02:23:26 +0000 Received: from SI2PR03MB5545.apcprd03.prod.outlook.com ([fe80::d398:103e:796d:76b9]) by SI2PR03MB5545.apcprd03.prod.outlook.com ([fe80::d398:103e:796d:76b9%5]) with mapi id 15.20.6954.019; Wed, 1 Nov 2023 02:23:26 +0000 From: =?utf-8?B?RWQgVHNhaSAo6JSh5a6X6LuSKQ==?= To: "matthias.bgg@gmail.com" , "angelogioacchino.delregno@collabora.com" , "axboe@kernel.dk" CC: =?utf-8?B?V2lsbCBTaGl1ICjoqLHmga3nkZwp?= , =?utf-8?B?UGV0ZXIgV2FuZyAo546L5L+h5Y+LKQ==?= , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , =?utf-8?B?QWxpY2UgQ2hhbyAo6LaZ54+u5Z2HKQ==?= , "linux-mediatek@lists.infradead.org" , wsd_upstream , =?utf-8?B?Q2FzcGVyIExpICjmnY7kuK3mpq4p?= , =?utf-8?B?Q2h1bi1IdW5nIFd1ICjlt6vpp7/lro8p?= , =?utf-8?B?UG93ZW4gS2FvICjpq5jkvK/mlocp?= , =?utf-8?B?TmFvbWkgQ2h1ICjmnLHoqaDnlLAp?= , "linux-arm-kernel@lists.infradead.org" , =?utf-8?B?U3RhbmxleSBDaHUgKOacseWOn+mZnik=?= Subject: Re: [PATCH 1/1] block: Check the queue limit before bio submitting Thread-Topic: [PATCH 1/1] block: Check the queue limit before bio submitting Thread-Index: AQHaByTnzFC4rhYmWUKg+y7lOe9n1bBkxn0A Date: Wed, 1 Nov 2023 02:23:26 +0000 Message-ID: <64db8f5406571c2f89b70f852eb411320201abe6.camel@mediatek.com> References: <20231025092255.27930-1-ed.tsai@mediatek.com> In-Reply-To: <20231025092255.27930-1-ed.tsai@mediatek.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SI2PR03MB5545:EE_|TYZPR03MB5775:EE_ x-ms-office365-filtering-correlation-id: bfb4c5f8-fbb3-4875-646a-08dbda8187a0 x-ld-processed: a7687ede-7a6b-4ef6-bace-642f677fbe31,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cd/QwnKVH7ljlI5Dt5pJnFZsuPYXZyuordEbMkrePgs/10C2bPLvNjOxBTrIp/FqczBHpjokPyQwTxB9QIN4w/Cs5nvHM5J2pyyPMm6bBZ8vBbCTcIpuQ4ShthFu1xhipli4md55fVQBZ/XoJlSu+qg8sjAJ5S9MikoiEXxhSXrcznuvrh9sEW00PpNu1PLsYCN+ONqODJpgOWnh/LO7EusX4RDHB7E2zx3mOSOY9KaBLSwpT6KiS2k4gqbW/u3M1qxQ5nsAeFGOhIf1BXm2DErP2vi4sIuhEnziFoEk+H2cHAzeHNJ3krE61qvocEB8jjX8YIQl+A8rlbfjshk8IaQRMcqnnGdU0nQLwSAaBdc/cUsJBTILbzVnZtXtjx9RxlWzfnsCpOtRHu7gzzho1Tqu/OD4AKlk0xoO5iz2b1Jmr9ttWLRI7a7zOr8hMTw46gYVRIeF3mQbNZZ0vBgLVxb8DEajg4LWW+3f6oal8a1QZJ9fI4PzhZlcZWlipYIq+jWKl4TLa+zY066N+O+WHcbB8Nj2+EupSnTrLUQ97s9V0RDHzMmiBe9gzStpWnGbHWiZkPHOKFI874v1sXvJpBZk4EuJY4mOCpT0c8kS0euBFYOkXshGVIYJc1d/6ccLjVwR+f7Nd3gduw0J/jup51hWURBCmcc+LxodNKJatVg= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SI2PR03MB5545.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(376002)(346002)(39860400002)(366004)(230922051799003)(186009)(64100799003)(1800799009)(451199024)(38070700009)(6512007)(26005)(38100700002)(86362001)(85182001)(36756003)(122000001)(2906002)(478600001)(83380400001)(4001150100001)(71200400001)(107886003)(6506007)(64756008)(66446008)(316002)(8676002)(6486002)(54906003)(4326008)(8936002)(2616005)(66476007)(66556008)(110136005)(41300700001)(5660300002)(66946007)(76116006)(91956017);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bnNmOTgzbWE4Lzl2eWNETk5MR0tPb1ptcFRuc2RjOGpQZzk1NC9rR2lGeXBR?= =?utf-8?B?bkhCRWM5bytWeGdQT24yL1Z1R203eVBSZm5oWUZNb2NzWThUN0tTT09DRy8z?= =?utf-8?B?d29WY2w1eWVqeGRqaCt1TkRWbWJjNmc5czk2UjBNT25ZT0VNdlpvSTkrS0do?= =?utf-8?B?Q1BmZ2RqZzRqYm1sOEpRUGEzR3J6TG05NzdldExhWGR4R3NBdUl4VlhGckhx?= =?utf-8?B?ZEd6THZJMS9xek9VK0pWSlhGMWJKSUNvQjBZZFpXQ2hsYTFTSTA5SHNBQllr?= =?utf-8?B?UmV6R3FUUStMc1lVYkNvK1dFWmRYOTl5QjlLK3RrVFlaaHNLNVU5eHI1YVBa?= =?utf-8?B?c0EyRDJGa0VtTUxqLzZieDJxaVFZWDB6Qnh3cWVzczFtdnVFTGJCQ1pISDVa?= =?utf-8?B?TktzcXFpaUM3ZU1GTUx2QlpGdUdzcmsrdy9lSzRwcGM1UVNOYmtPVVNZSytZ?= =?utf-8?B?L2w4cU1Fblc1NkJzakxmOUpLbTdhSEN4ckRmYTNDY1BXa1ZTUmtiaGFBeTJw?= =?utf-8?B?Y09aT3hYYmFKUXZ4K1hIQysyRGZ3OTFieGZLczM2L2svRzdCMGFldGJYZG9p?= =?utf-8?B?NXh0WENGUERwTmNmOW1ia2I5cEkyL090VDkvdEtJenU1RWF6Lzg4Qnd3Sk9i?= =?utf-8?B?RGlOMnEyd3Z6QWZkTXZNUUlRSFJqUjh5UXpnMHA0ZkZFd3ZpUDZVUFpiUmRo?= =?utf-8?B?U0NuWXdKWk52SlMvQXF0NmY1QUduUGNXYjlYRGl1WC9aUU91WDU0NE9ld1ht?= =?utf-8?B?bGFxSm02dEtzLzJzeVhXMUVnQTNud25EeEVMdEJMZTFqZUtXdzNvQ3dHTjVv?= =?utf-8?B?d3dyV1JYZUhXaFBpR29GRGJIc3AxT1NPeU0xUm9zK3VaVUdrUUdlazNOZG5h?= =?utf-8?B?SkRpK2MrRVFwcTBWNnV2c3IyOEpTUzMwREJ1YnAzVjdXNDR6VXkzR3ZXSkt3?= =?utf-8?B?V0I3VkI2VXZ6K1VhRDUvcXJGeCtrdDVsWkVHRkszOTNPUDlHZGZUN0hwMnpC?= =?utf-8?B?S2F6aEZMZjRXcWRMdEdPSUFleGQ2RnZ1MEdpdmh5Z242M0hYZWNQWWRhb1o1?= =?utf-8?B?ZTdoNGE5QTRYZkxxdEUxZ0N5RHFzT3RzV2dZQ2xRNnNFZ2U2UUowSnVLL3hU?= =?utf-8?B?eGZWQzNMS0VYblF4WWJZb2V1NVJCQWwvY1h4MFJJZ1pEQnA3N1lNbW1nTFA3?= =?utf-8?B?UXJ1NGpKZ0VtdTZFcVF3T3BYNnZwSHhockpCZUFkQTE0SjB6UE85cGFtZlpD?= =?utf-8?B?YmtIUWpkUDZYMzdaZTA5MmpMYndDQVBFdUdWYktpVFQwWExkejVqUXZLMHVY?= =?utf-8?B?YTRxM0xjSmtiZGRtS3hjYnN6NWg3Ni92dGQrQ3R3LzVjWVFMVWlVbmFlRGt5?= =?utf-8?B?S21SUXp2MzZPdDZISmpGa3Jjb1NkMm05SjhFSHlWdy9DSDM0WGNQU2pvNWJI?= =?utf-8?B?TGpYK2pDY3VQL2U3TXE3V1hPQ2ZHNnp0TEFtUFhTdTJkRW5TeHFYNHMwRDFZ?= =?utf-8?B?T1lLZlRYWFZZdWlJcUJ4MElkVEJOTWZlcEVsRVUyQWdrUDNoTzBwSmhMNnlL?= =?utf-8?B?VDFrNlA0YW42YVhxOW93NzA2TDFnRzNseFVjMVZKUXdVY3JIYVJsOUp3S0Fo?= =?utf-8?B?WW1FY0YzdEJYTVJMMmJRNW1PZzhSOGFheDlQNVhRbGo0TkM1ZGp2ZmhlODFK?= =?utf-8?B?dEZYejlQTytwbzl4WTJoMk5qTnB4bnU3Sm9wb1d0MjdrVGJ6dVI3ZFZRUG5X?= =?utf-8?B?OHN0dDFrM2tVRWJGRC9XVElxY1BGbWhQMk1CSmhXSnJnNGIrNFdJNW5GWUEy?= =?utf-8?B?WDZHNUZrd1pEdUdQRGZvSjIzc3lud0VJblhpYUpHRmFkM3NmcHM3Q1d2cFc2?= =?utf-8?B?UjJOeldpWXVQd2w0ZmpUdGszdjQxaVcrQjcxcllmVEtpaDZaRWZDTXFZdm1L?= =?utf-8?B?S2NNT05LWEZIZ2RENDlhT0J5cXd4b1RnUkZvTnppMm1La0JaUGxjdERDaFk0?= =?utf-8?B?SHJROHNNWXE3WVlkSFpwak0vcjMydU9ra2lmN0pzUnozVGx4NDlDZmM3VkxB?= =?utf-8?B?bVcweGtIUzA5SFNUNWRyRjMyWGNiMGRHN2dxeTEyQnczcEszYVVFNGl2bzNI?= =?utf-8?B?OTRaK3BJcElmNW5wQ1pnY1laQTJqa0JvMWRWaHhmbzZ5VkFFY1o2dzBrWk1X?= =?utf-8?B?alE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SI2PR03MB5545.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfb4c5f8-fbb3-4875-646a-08dbda8187a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2023 02:23:26.4067 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LNsW/LDSmSzR7I9/ZrDpqZ2xUvN6XthFafSvs/uhxl2ogcqPyhppyZTGHhf63p6CBTZjy9GPOl6MCq3y/5tSlw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB5775 X-TM-AS-Product-Ver: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-AS-Result: No-10--21.028100-8.000000 X-TMASE-MatchedRID: a3sLnpBpvfTUL3YCMmnG4rhzZI/dfrdOjLOy13Cgb4+qvcIF1TcLYDQq rqK/M/JqBIbeFm+CMiEPO54Cyom6Kw6iz8JOSFIInu1HSadECDX6Vf9FxCgbYcnJhTYnTng9plt rkRvr+RONQXnllFqLb5H6sOUhKFhAhi8uFzr7cft/TWpwlAOFXtsE4j/Y3E9Eo0LZViYXld2cXK sopitOMaE3uI1B9uu5XgOjBlkjxG5OjNu6RY8dSxWCVBr+Ay98si3nm+6QLrzL2ewfGE+i4/lYo V6p/cSxI1/Ds5nW8XAEWuy9Dt5OU62IX6n70FjpV96W6JwvGvcxmbT6wQT2a3RNGrhtzGYfUKmz H22CobI2WmZJAyNkH/zY2JLKJyDry7mgwFdMot5K2kj7j4ouANMNeBxSUI2jh8BhJvgqWBlh4r/ wCPzhZBEyEcHRT1oHzaWPHHSujhZ5X0FJZbmEpp4CIKY/Hg3AwWulRtvvYxTUHQeTVDUrItRnEQ CUU+jzjoczmuoPCq2UTGVAhB5EbQ== X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--21.028100-8.000000 X-TMASE-Version: SMEX-14.0.0.3152-9.1.1006-23728.005 X-TM-SNTS-SMTP: 7956427A9E7F8E0531678A365CB155D2AB58632E6F391F4A5086FB122CED08872000:8 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231031_192519_443516_8A4F6F5E X-CRM114-Status: GOOD ( 24.89 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, 2023-10-25 at 17:22 +0800, ed.tsai@mediatek.com wrote: > From: Ed Tsai > > Referring to commit 07173c3ec276 ("block: enable multipage bvecs"), > each bio_vec now holds more than one page, potentially exceeding > 1MB in size and causing alignment issues with the queue limit. > > In a sequential read/write scenario, the file system maximizes the > bio's capacity before submitting. However, misalignment with the > queue limit can result in the bio being split into smaller I/O > operations. > > For instance, assuming the maximum I/O size is set to 512KB and the > memory is highly fragmented, resulting in each bio containing only > one 2-pages bio_vec (i.e., bi_size = 1028KB). This would cause the > bio to be split into two 512KB portions and one 4KB portion. As a > result, the originally expected continuous large I/O operations are > interspersed with many small I/O operations. > > To address this issue, this patch adds a check for the max_sectors > before submitting the bio. This allows the upper layers to > proactively > detect and handle alignment issues. > > I performed the Antutu V10 Storage Test on a UFS 4.0 device, which > resulted in a significant improvement in the Sequential test: > > Sequential Read (average of 5 rounds): > Original: 3033.7 MB/sec > Patched: 3520.9 MB/sec > > Sequential Write (average of 5 rounds): > Original: 2225.4 MB/sec > Patched: 2800.3 MB/sec > > Signed-off-by: Ed Tsai > --- > block/bio.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/block/bio.c b/block/bio.c > index 816d412c06e9..a4a1f775b9ea 100644 > --- a/block/bio.c > +++ b/block/bio.c > @@ -1227,6 +1227,7 @@ static int __bio_iov_iter_get_pages(struct bio > *bio, struct iov_iter *iter) > iov_iter_extraction_t extraction_flags = 0; > unsigned short nr_pages = bio->bi_max_vecs - bio->bi_vcnt; > unsigned short entries_left = bio->bi_max_vecs - bio->bi_vcnt; > + struct queue_limits *lim = &bdev_get_queue(bio->bi_bdev)- > >limits; > struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; > struct page **pages = (struct page **)bv; > ssize_t size, left; > @@ -1275,6 +1276,11 @@ static int __bio_iov_iter_get_pages(struct bio > *bio, struct iov_iter *iter) > struct page *page = pages[i]; > > len = min_t(size_t, PAGE_SIZE - offset, left); > + if (bio->bi_iter.bi_size + len > > + lim->max_sectors << SECTOR_SHIFT) { > + ret = left; > + break; > + } > if (bio_op(bio) == REQ_OP_ZONE_APPEND) { > ret = bio_iov_add_zone_append_page(bio, page, > len, > offset); > -- > 2.18.0 > Hi Jens, Just to clarify any potential confusion, I would like to provide further details based on the assumed scenario mentioned above. When the upper layer continuously sends 1028KB full-sized bios for sequential reads, the Block Layer sees the following sequence: submit bio: size = 1028KB, start LBA = n submit bio: size = 1028KB, start LBA = n + 1028KB submit bio: size = 1028KB, start LBA = n + 2056KB ... However, due to the queue limit restricting the I/O size to a maximum of 512KB, the Block Layer splits into the following sequence: submit bio: size = 512KB, start LBA = n submit bio: size = 512KB, start LBA = n + 512KB submit bio: size = 4KB, start LBA = n + 1024KB submit bio: size = 512KB, start LBA = n + 1028KB submit bio: size = 512KB, start LBA = n + 1540KB submit bio: size = 4KB, start LBA = n + 2052KB submit bio: size = 512KB, start LBA = n + 2056KB submit bio: size = 512KB, start LBA = n + 2568KB submit bio: size = 4KB, start LBA = n + 3080KB ... The original expectation was for the storage to receive large, contiguous requests. However, due to non-alignment, many small I/O requests are generated. This problem is easily visible because the user pages passed in are often allocated by the buddy system as order 0 pages during page faults, resulting in highly non-contiguous memory. As observed in the Antutu Sequential Read test below, it is similar to the description above where the splitting caused by the queue limit leaves small requests sandwiched in between: block_bio_queue: 8,32 R 86925864 + 2144 [Thread-51] block_split: 8,32 R 86925864 / 86926888 [Thread-51] block_split: 8,32 R 86926888 / 86927912 [Thread-51] block_rq_issue: 8,32 R 524288 () 86925864 + 1024 [Thread-51] block_rq_issue: 8,32 R 524288 () 86926888 + 1024 [Thread-51] block_bio_queue: 8,32 R 86928008 + 2144 [Thread-51] block_split: 8,32 R 86928008 / 86929032 [Thread-51] block_split: 8,32 R 86929032 / 86930056 [Thread-51] block_rq_issue: 8,32 R 524288 () 86928008 + 1024 [Thread-51] block_rq_issue: 8,32 R 49152 () 86927912 + 96 [Thread-51] block_rq_issue: 8,32 R 524288 () 86929032 + 1024 [Thread-51] block_bio_queue: 8,32 R 86930152 + 2112 [Thread-51] block_split: 8,32 R 86930152 / 86931176 [Thread-51] block_split: 8,32 R 86931176 / 86932200 [Thread-51] block_rq_issue: 8,32 R 524288 () 86930152 + 1024 [Thread-51] block_rq_issue: 8,32 R 49152 () 86930056 + 96 [Thread-51] block_rq_issue: 8,32 R 524288 () 86931176 + 1024 [Thread-51] block_bio_queue: 8,32 R 86932264 + 2096 [Thread-51] block_split: 8,32 R 86932264 / 86933288 [Thread-51] block_split: 8,32 R 86933288 / 86934312 [Thread-51] block_rq_issue: 8,32 R 524288 () 86932264 + 1024 [Thread-51] block_rq_issue: 8,32 R 32768 () 86932200 + 64 [Thread-51] block_rq_issue: 8,32 R 524288 () 86933288 + 1024 [Thread-51] I simply prevents non-aligned situations in bio_iov_iter_get_pages. Besides making the upper layer application aware of the queue limit, I would appreciate any other directions or suggestions you may have. Thank you! _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel