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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B0B1C02192 for ; Wed, 5 Feb 2025 16:22:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8921B280003; Wed, 5 Feb 2025 11:22:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 84129280001; Wed, 5 Feb 2025 11:22:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 694A3280003; Wed, 5 Feb 2025 11:22:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3BB66280001 for ; Wed, 5 Feb 2025 11:22:52 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 017BB1A03AF for ; Wed, 5 Feb 2025 16:22:51 +0000 (UTC) X-FDA: 83086409784.09.E0F76DF Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf10.hostedemail.com (Postfix) with ESMTP id A6580C000F for ; Wed, 5 Feb 2025 16:22:49 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NlyeIlie; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w0D9bsN3; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NlyeIlie; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w0D9bsN3; spf=pass (imf10.hostedemail.com: domain of hare@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=hare@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738772570; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=W/PHZfJGXEJCwO2dsYXIfWE3RrvRzWPKdAp7DcUJxQQ=; b=B6BFO+YxPHELEs9KFOfHdSAem8CJCl4M0fl1Prdsx3eTfO/y7N5XClqq41EHb5NufSWNlW qNRHaOtcjEL0M0voPPfX6riji35dj/JhKM+7ZMAKzeD3qks0z9n7/aDjISCLHgJNTc7qCk j4ge7+IICSsutYGhCpzKolMsTSF2gCM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738772570; a=rsa-sha256; cv=none; b=REKsYf1nuPy5cMvWE7yrjJaT2lrspGrKX0Uff/x1y/LZGs4olyVcWw9ElkH+egNx7vfb98 EHxUIYDmYCZEKzhOA7i4BEiZctT5YGZP6RoNNFDvFdshv9I9I0go4Nm4FurZ4/SD66JVL6 vv3oHNDZuo9M7Sp0cWoHcLxP0/bYADs= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NlyeIlie; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w0D9bsN3; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=NlyeIlie; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=w0D9bsN3; spf=pass (imf10.hostedemail.com: domain of hare@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=hare@suse.de; dmarc=pass (policy=none) header.from=suse.de Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F35A11F7D0; Wed, 5 Feb 2025 16:22:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1738772568; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W/PHZfJGXEJCwO2dsYXIfWE3RrvRzWPKdAp7DcUJxQQ=; b=NlyeIlieMQryK18Ud1UnidQEZ/EGOS7TLNr8RFTPwar32cJQSfgEQ8aAcMMtyMXHwgwTzK 7SewcjZyBXpd19Ua0vGcbMtIzA/h57zkGVPhXeF5YBxJEODxWu98g04nKw4o+WKPh/6Tts SgU+TB2nnJMgGaQv+99UClmRhmYSbwY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1738772568; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W/PHZfJGXEJCwO2dsYXIfWE3RrvRzWPKdAp7DcUJxQQ=; b=w0D9bsN3drjgKq6sN6UyZ1okakMldAzzI2YQEfd8hD/Vw0HsjTrdR/PH/z99b+oIaX0Rlf GStPskKMWbjjVwBA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1738772568; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W/PHZfJGXEJCwO2dsYXIfWE3RrvRzWPKdAp7DcUJxQQ=; b=NlyeIlieMQryK18Ud1UnidQEZ/EGOS7TLNr8RFTPwar32cJQSfgEQ8aAcMMtyMXHwgwTzK 7SewcjZyBXpd19Ua0vGcbMtIzA/h57zkGVPhXeF5YBxJEODxWu98g04nKw4o+WKPh/6Tts SgU+TB2nnJMgGaQv+99UClmRhmYSbwY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1738772568; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W/PHZfJGXEJCwO2dsYXIfWE3RrvRzWPKdAp7DcUJxQQ=; b=w0D9bsN3drjgKq6sN6UyZ1okakMldAzzI2YQEfd8hD/Vw0HsjTrdR/PH/z99b+oIaX0Rlf GStPskKMWbjjVwBA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 8947E13694; Wed, 5 Feb 2025 16:22:47 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id SY8QIFeQo2f5NAAAD6G6ig (envelope-from ); Wed, 05 Feb 2025 16:22:47 +0000 Message-ID: <9644cd31-1254-4384-b108-94e74629bd90@suse.de> Date: Wed, 5 Feb 2025 17:22:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 8/8] bdev: use bdev_io_min() for statx block size To: Luis Chamberlain , willy@infradead.org, dave@stgolabs.net, david@fromorbit.com, djwong@kernel.org, kbusch@kernel.org Cc: john.g.garry@oracle.com, hch@lst.de, ritesh.list@gmail.com, linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org, gost.dev@samsung.com, p.raghav@samsung.com, da.gomez@samsung.com, kernel@pankajraghav.com References: <20250204231209.429356-1-mcgrof@kernel.org> <20250204231209.429356-9-mcgrof@kernel.org> Content-Language: en-US From: Hannes Reinecke In-Reply-To: <20250204231209.429356-9-mcgrof@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Action: no action X-Stat-Signature: zpubuthedaicumxrk8ezcqgzfpesf7xu X-Rspam-User: X-Rspamd-Queue-Id: A6580C000F X-Rspamd-Server: rspam03 X-HE-Tag: 1738772569-334637 X-HE-Meta: U2FsdGVkX1/Q4s+ED5yZaK2olhnWIdLXsoc3FXxdax0GuyA+//g9hWFaVco6jqMRLZoZgX9Bz4i0LYbUIWdVJo2WUWTf4BORqFa8xGIYsubAzwAq3tHct6saaNVI6oAHrJEnoUOqrKiEP0lLSFOV1DlfNTd2xX0+pBAY6zhP2+9NK3s6mXAnoIDNj4F/t0u6nDCvrVX9pfOd8ddO2gxyQnx0o5iMc1/yPccdisAX2ZroFs2MVnbpv1bkWszqEs+eV2VVZFXGuqq+OGpmfCQ1wRHCFnkm48FmaCZny1t65enbCbDXnFX5lQgwSEoBvAK0+pXx20gMcYH5FmYhHMvagwipQlLsEHAMxPhIhk5vo5ia37yrDU/qG/NS57bWg/5PQQAqBRsYH3ZMVxLdzDgmSi1GIenZ0WnJ8OIrxWJZjm1iC5FMVF35RS2sp7JUdGbVp7UlNaYFUXARS7W46d6Cy1pgQUVwqJ0l6PESQfJOWyLdyvWAmQwmSt44hdcZRJ5GyqAuXBjhShIwClwQxdhJAB0JqXsSoPHIPCReqqO0udNvg2JKfqfvgGFYk5uCMFRZz5/wBvZwhTw1aXdBXSSeDALipQqZX6KetllCfdoal6yU5j7SwgaL9ZU7t2sEbwkRcp7ctAqqwGAVD5yanDl3Balk3T+ng4VUatz1UVVUy1k84BgN/OMH83FIqGhO7M1SbxDT8ZwnNSEMpBihlePWl+NfvqILe+DG401XBjtQtToKeYDInOwi5fZoaZ5uLQjogidrZnZEZ48S4wY0psDVvZZBnAlmgU82PaOZ8hcJIGwrJzcWVCtAmSFP7tM6tQ6BhWrfM3LOunwAZkMwoeZCB+FOlJSZBmPGC9dg0IgH7PwoC9pUJzKkqdpkx1hfIGi/Cv+4DSPhRwHBr6SxgqolZo+G0EMZeSZrKFiSyoNoKS8maUtXm2evpWrSHW4ACnttsh9lT2Xz6es7W0HClUe Pb1VP3Oa LcJ5Jo6e0vALO3BVKmW6aehaZx/UqAsL1t3HDtBGj4kkbn8WZBoqwOC6waSqOJSwYImKTNt6mv6BJiWVHrcL19god5kVgJD7v8scvie60vcnSJWHkVIYM5Emi0xlE+HdqI6HpNIxQupPxzWzBYCpcelw3/0gjWSX9GkkczUYiOgnEwfE2Mu0CJAZs1LKRaf5IxNUfwWLw5GQ6JDPvsELCv9VT8UZOImtuyUxGtL/sPMXgzSSYYdh7ON63SKxrGoA+QCACuegWjGFQ6ORBjZV3r+11WWOmyONAWBWeeAFW2lJwELjCPVIzOsU8lE6V9DgFornoFGlczReQXd/FYFDxaEEsNARK83ga3kphRqRh9WrrQdhhCygO+4e2mqJs6rFUeJ1ZNx48G0QxWg905mT+Jvb4itvlkd/94aOLoZFx+qBvc7jDUNMFCrFKqXLCf4LqoVisOFSPWzObDTDqpSdpW7cR8koc7Q8ftbEb X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2/5/25 00:12, Luis Chamberlain wrote: > You can use lsblk to query for a block device block device block size: > > lsblk -o MIN-IO /dev/nvme0n1 > MIN-IO > 4096 > > The min-io is the minimum IO the block device prefers for optimal > performance. In turn we map this to the block device block size. > The current block size exposed even for block devices with an > LBA format of 16k is 4k. Likewise devices which support 4k LBA format > but have a larger Indirection Unit of 16k have an exposed block size > of 4k. > > This incurs read-modify-writes on direct IO against devices with a > min-io larger than the page size. To fix this, use the block device > min io, which is the minimal optimal IO the device prefers. > > With this we now get: > > lsblk -o MIN-IO /dev/nvme0n1 > MIN-IO > 16384 > > And so userspace gets the appropriate information it needs for optimal > performance. This is verified with blkalgn against mkfs against a > device with LBA format of 4k but an NPWG of 16k (min io size) > > mkfs.xfs -f -b size=16k /dev/nvme3n1 > blkalgn -d nvme3n1 --ops Write > > Block size : count distribution > 0 -> 1 : 0 | | > 2 -> 3 : 0 | | > 4 -> 7 : 0 | | > 8 -> 15 : 0 | | > 16 -> 31 : 0 | | > 32 -> 63 : 0 | | > 64 -> 127 : 0 | | > 128 -> 255 : 0 | | > 256 -> 511 : 0 | | > 512 -> 1023 : 0 | | > 1024 -> 2047 : 0 | | > 2048 -> 4095 : 0 | | > 4096 -> 8191 : 0 | | > 8192 -> 16383 : 0 | | > 16384 -> 32767 : 66 |****************************************| > 32768 -> 65535 : 0 | | > 65536 -> 131071 : 0 | | > 131072 -> 262143 : 2 |* | > Block size: 14 - 66 > Block size: 17 - 2 > > Algn size : count distribution > 0 -> 1 : 0 | | > 2 -> 3 : 0 | | > 4 -> 7 : 0 | | > 8 -> 15 : 0 | | > 16 -> 31 : 0 | | > 32 -> 63 : 0 | | > 64 -> 127 : 0 | | > 128 -> 255 : 0 | | > 256 -> 511 : 0 | | > 512 -> 1023 : 0 | | > 1024 -> 2047 : 0 | | > 2048 -> 4095 : 0 | | > 4096 -> 8191 : 0 | | > 8192 -> 16383 : 0 | | > 16384 -> 32767 : 66 |****************************************| > 32768 -> 65535 : 0 | | > 65536 -> 131071 : 0 | | > 131072 -> 262143 : 2 |* | > Algn size: 14 - 66 > Algn size: 17 - 2 > > Signed-off-by: Luis Chamberlain > --- > block/bdev.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > Reviewed-by: Hannes Reinecke Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich