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 13570D41C27 for ; Wed, 13 Nov 2024 09:59:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 962C96B00AD; Wed, 13 Nov 2024 04:59:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 912386B00AE; Wed, 13 Nov 2024 04:59:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7B4FA6B00B3; Wed, 13 Nov 2024 04:59:11 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 5ABD36B00AD for ; Wed, 13 Nov 2024 04:59:11 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 042B2C093F for ; Wed, 13 Nov 2024 09:59:10 +0000 (UTC) X-FDA: 82780622484.12.72AF82D Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf01.hostedemail.com (Postfix) with ESMTP id 7E78540007 for ; Wed, 13 Nov 2024 09:58:35 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Bb8esX97; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ziKQf3u8; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Bb8esX97; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ziKQf3u8; spf=pass (imf01.hostedemail.com: domain of hare@suse.de designates 195.135.223.130 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=1731491755; 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=qpEmq55StDkj8VQx4RwABnWj7GLEWSpaSNtQkbHJD6w=; b=ppNb83gs+Y2GWm0eR3cpCruuHUhLL9TnAFCDSfM9Q3dyOjHiDbIZK7Sn+xiRnfgV6B8nwo ManavFJFEWMzeMh/QiC2ZAemkiBSQsoYVgumedp3Qzamgo74TWOyHCri2PSg5s7BjwkLx7 Zhpg387o2xdLQbcw8PDcoZacgGproIA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Bb8esX97; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ziKQf3u8; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=Bb8esX97; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=ziKQf3u8; spf=pass (imf01.hostedemail.com: domain of hare@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=hare@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731491755; a=rsa-sha256; cv=none; b=qn3cgP76LapDE2aC60hDev3M4XinvjBhZ8rsy3XKcz7K2pbUmrRhp61qk9zi4VG11y1s42 IliRf3Sa3b56+ID68UiAszsoOamCK8mbV78N7PhAsq1IPbyGdHsF0L7phsMw2nyZm6L0iU P4VhIOVcAWlSuFuu73wi+uaJvrjlD+E= Received: from imap1.dmz-prg2.suse.org (unknown [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-out1.suse.de (Postfix) with ESMTPS id 6A9C3211D6; Wed, 13 Nov 2024 09:59:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1731491947; 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=qpEmq55StDkj8VQx4RwABnWj7GLEWSpaSNtQkbHJD6w=; b=Bb8esX97JwuIMX2YJlCS7CVormU5IIcXtw2nPEF5ErtlCSRBCIgp5mOjTfJJk8DFnX0rhj G9JR0YYFoik3WjwKjkpHUnCC6vyLSSfbapiDDfLCfP3QoVFt7If86nPNK3Jw5y6ZmzlOt9 vO7WBGeOHBO02sHxELOWQWqJmGM++5k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1731491947; 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=qpEmq55StDkj8VQx4RwABnWj7GLEWSpaSNtQkbHJD6w=; b=ziKQf3u87aHHgnbkE6avHiQcSBD6yzrrucdKFYag9bmcIUVI858+75cA3MEZdtXzHFRXLf MhYlH1d0DQP6NBDA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1731491947; 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=qpEmq55StDkj8VQx4RwABnWj7GLEWSpaSNtQkbHJD6w=; b=Bb8esX97JwuIMX2YJlCS7CVormU5IIcXtw2nPEF5ErtlCSRBCIgp5mOjTfJJk8DFnX0rhj G9JR0YYFoik3WjwKjkpHUnCC6vyLSSfbapiDDfLCfP3QoVFt7If86nPNK3Jw5y6ZmzlOt9 vO7WBGeOHBO02sHxELOWQWqJmGM++5k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1731491947; 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=qpEmq55StDkj8VQx4RwABnWj7GLEWSpaSNtQkbHJD6w=; b=ziKQf3u87aHHgnbkE6avHiQcSBD6yzrrucdKFYag9bmcIUVI858+75cA3MEZdtXzHFRXLf MhYlH1d0DQP6NBDA== 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 0AD6613A6E; Wed, 13 Nov 2024 09:59:07 +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 tZ5AAmt4NGd3GgAAD6G6ig (envelope-from ); Wed, 13 Nov 2024 09:59:07 +0000 Message-ID: <25631870-851f-44bd-b214-8d7d451cb8a5@suse.de> Date: Wed, 13 Nov 2024 10:59:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 8/8] bdev: use bdev_io_min() for statx block size To: Luis Chamberlain , willy@infradead.org, hch@lst.de, david@fromorbit.com, djwong@kernel.org Cc: john.g.garry@oracle.com, ritesh.list@gmail.com, kbusch@kernel.org, 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: <20241113094727.1497722-1-mcgrof@kernel.org> <20241113094727.1497722-9-mcgrof@kernel.org> Content-Language: en-US From: Hannes Reinecke In-Reply-To: <20241113094727.1497722-9-mcgrof@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7E78540007 X-Stat-Signature: 3g5t6eas7rm17y7p8ze5p6r9y8df7b8q X-Rspam-User: X-HE-Tag: 1731491915-578423 X-HE-Meta: U2FsdGVkX19L7WjcTdBAaBFRqMKFwpyoYqt84sBOKkgNSNN0f1HjDktg19thy+WVEbqA+8fPNPXc+mhlQ0WI3W/3md1hdxoLX3kNg2ACIBhRioluRHSAF64x/tOt65jbzs/g8BcopHrJsoNSErKUxvBejTh4MW24bxQyP0YXw23bja3uZ1BrJ6DKJs7ojnr22gfQVlytcEeaK4MCkCDksM0CiyA096N9TCgF9ZqMkOSTXetnWhYXIKwD7m93aLXwCRPEPDOiiabQ8XEtGYJhDfegv2hPzJMaeYS2ph1B0iKU+f97yqY7jgqp1XOwpnLMFVWwFgpVy3mqtJdjrhaVMd9cShuWobTTHhowte4sUXZf1joXPpYj9okkEecvaqyLZ/jVNXZmxuza2ZaK2iLYOT1VMhf6TXqDiP4cPx4i/OG+hDrUBYhRjO1Nn/HCT3hz4sVAOyRX1pRTv9OfSEHDU/uf8rWmeX2omNM18hKqabFbNgEKRkxg5Gms9A8VOkpBTahzeRoWiQ5LHXNYs7ScyGlZq0I3nQ08uvS5/GJb1aH91MZ0yP9K9gzC4T/X53AnUNtncRNOAhPCrnZdkHmHsbSUQ70qIbSplJglmZaoLxn7AhUTFJX0Gj2q1Mi7W7GY6BvZNGvRWGjm1Y2qoSXcTuQ5Z7N71dEauM7M9S+inVi1H3qKR+uc2ZlHFwBQuOXSiHWIyhK5hcC276afjL6DzGspNS2Pj4O5dQ/ZyJUd1MacoPCHaxtAynYpXonqsP5y8+6IcHExMEyuD11VBHjMoTHrwAX6oHm7OmUiul2IiuunbpGLyK2MVYqUEIxCvqnWO287z/+H4/Df58M9/09y21FG2xhJc1ZhiE1Uk27psV2SkXNSUEwGaEQ4sBJeAyViPwTAFferv/OKsyR1Zd4yfk+jOwc8ijXvaTWrksZKDuOTqEFYIacEz3cFYRA+sNEwu+ueeeGN3auJoybc5Rs 4nwChqIZ Fxc945NR+/2lzw0iqoELFwj+uu0UL55z4RPvbs+4jxW6iWv8MyHowHGg15yflx/E4uog7QPsLHkxTQxSWJeS6p1JNm2Ra2ZhhrHPHCTovTAWeQIXvzBtnz//HesgutWW+FOKuqez1cYdpLTT5T7tvPGZPvpePU+IgU1y+xwNb2GsB3XjZh/FEl6XJSDd7Aj/u+WqMtlwMFDYCh1iASYBeSm/eZw/gOTB6mJL152TqTPIvtfMXbp91K7uF9sBYFjAJtSvujFycqhs3gLcKHYoVqvmIe6bo3Ow7DyXmVtIsoYJMtrJMX9nzjGRIqv7uFqMoyBR7c1ltuLBuxl2XKZN64rt5oZ7ze/9QOxVFBnngy72y3IMgRSroGdl3zuugBEAPCVcUJWKF3vDU6STIeblij7lvHQMGowyp+IvW4RTMgRUCkml/6wdcriVwdvqC3zZP3abT13IF+F+OqveXKWACpGEV7zKzsrixvDut 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 11/13/24 10:47, 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 | 1 + > fs/stat.c | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > 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