From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f100.google.com (mail-ot1-f100.google.com [209.85.210.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37FAB29C338 for ; Fri, 20 Feb 2026 03:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.100 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771558099; cv=none; b=CAAjO/IRCIH1/Ua8tSRGPqVC/+6TLztdQqUtH7njGidJPkWL3v4AWdl07KTX464V6ycbPibKvpClwT0Qf1POuE9p+yDhnpUZpgney8yUAWRsPwWZSRsxAl+sEYdRO2zBpBD8CtQ1MhDERyGWr/pjpkF+JGiiFpL3oPw5EZgTzEk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771558099; c=relaxed/simple; bh=n1JR47VET7QF6gyJEvxISGV6Bia7YRxq5Sbj9QhdAI0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=TXCavDy6X0Tx12Q/6lNcQJ7tABP5nBtuAYN9RBJZWQOmCe7MPU5ovnpWU7EoxgMTR3kuDPcwcigvUhJvUJ9vkLZoXmwpi6tNZnWzyb2FyZ1NAuXvQupEa0x8/CB7Q9ta3ZX8UNaVdukISXtIyH+uW5lfOemV7SZ75QHOEr4WjSM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com; spf=fail smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=Tciyj35D; arc=none smtp.client-ip=209.85.210.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="Tciyj35D" Received: by mail-ot1-f100.google.com with SMTP id 46e09a7af769-7d4f340b5f4so286277a34.0 for ; Thu, 19 Feb 2026 19:28:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1771558097; x=1772162897; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=NOgVdASCtfEdZpu2pyEPIB/X7jO6X9UX5H0tHLp8bxA=; b=Tciyj35DtLNkjq9aHV1P782fl4+sOYrWVF4Ft/b3wSASfJR+mU8lacc2S4NxJxsHPB vEkfwkIq6y4kCzSBrNQyUIGAXtD5OBOj9/72+9z90bAlVIG8LKRzlDUtV5xGo2YlpjYz sK/9TJDZgMy5wxpXAVpIc5EO/nWzqji7GiaW5hDCYjKVi+WkO8ZS9+pXT4XTOoealhUt tQCTTYfgc1a5DKuu6zblv346jJ5IAbOJ8gyzSXVI9bGdws8dzMQhkbIKrtHx6DKI5n4/ aYHPYlBYxJ5+eZEp5rd1TArgvkw1EGj0qkjdhcXthE8Q6TxNY2RryeVZBYrn7+rIc32Y O+lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771558097; x=1772162897; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NOgVdASCtfEdZpu2pyEPIB/X7jO6X9UX5H0tHLp8bxA=; b=sdq0Ip3b0S+kMzCfafFDo3IO6/ADixpAf5oDKiqkMGxsNPs7oHnKtQhyZyjECIosDI cUsu6HO0sKLz/Yi9K4IZgwo5G9BOVFWhi70woK6IO8XR4XnxDlRymRAehyoX39jcudl6 mPupHI1W/tKfflyqaCRVu9WKqgvTsTY+LhTR+UfQc7mCPQImDk1jxBhy1jqpROPjW8QI rLpdVAsM9xC6o/XR5ToZI5YV1FzUBiXMJ7NwIJOPfOrm7hFFFTrvYMr6PpDwLMu5tPYF ORdfQyG1zaDt4lBUgjRTFA9oLl5HCBbmLsaM/avT4k7akx4kU7mG8K17batDLK2935Ub A0bA== X-Forwarded-Encrypted: i=1; AJvYcCWwR1GbfZC5QWXIe40koWUWC4S4qc+fG4hJsXXMJupd+OWvV8pdDm8EefK+MI8EuXpeA901WuFZeRkta/0=@vger.kernel.org X-Gm-Message-State: AOJu0YxHfzpz+E1pUqkdpcIZRVpEzviDLGqiRQFszZ8gJszkf55AJ7iH A44/V+JORkY9Pja0r77StFfZ7m+7ZfsgkEF9QKqW3Rj3qJos969qDk6ZpaAEIAXGkrfpUrm/KZG gTHFBJrCpIN/u+2UHnginn1CUzjzEO1sY1Hu72HB5lKkS7RE5Rx+Y X-Gm-Gg: AZuq6aKz+XGFUvhD4+tjgkk34gu0g5EdOtHqXeE5V62R5uP8HrS5UAFota/pyZSI895 ZHVgXfi155Srf9exxeUAcXUIzP8tCioUqZ7+8Pwsz5gj9Z2Lk/NMVRIwIoFr/7ebQzcOBklNoCo Y2PQ4zefwm3xp5MbmH2OzqObRf4KSGTtqlI5djSylR+QZopPawSbmDfkp/q9/7aWPZPEt3mx1P/ VDnYZX7h6k8IjgYHsP+sVTQFdOejv+GfljL3XywrXgR5hNCRba2/wL3PlvlRrdmQTJwTliTHWax YQZUka27e/utmSwVZw5N6687lrVvpV8otT59JTBNVCHqzIttrwmghlhnqVSotIGg4oKAL6yT19d m1EaPhFOBCyIh8tJ6Q3OC9ekbg4GYcvIL2YE9qe4= X-Received: by 2002:a05:6870:c1c6:b0:3e1:739d:4540 with SMTP id 586e51a60fabf-40eeeb309efmr9967541fac.6.1771558097039; Thu, 19 Feb 2026 19:28:17 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id 586e51a60fabf-40eaee45d28sm4640795fac.1.2026.02.19.19.28.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 19:28:17 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.112.29.101]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id BA11D3400C7; Thu, 19 Feb 2026 20:28:15 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id ABA93E420F8; Thu, 19 Feb 2026 20:28:15 -0700 (MST) From: Caleb Sander Mateos To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni Cc: linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 0/6] nvme: improve discard_granularity spec compliance Date: Thu, 19 Feb 2026 20:28:03 -0700 Message-ID: <20260220032809.758089-1-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit NVMe block devices always report the logical block size for the discard_granularity queue limit. However, more accurate values may be available in the NPDG/NPDA fields of the Identify Namespace structure or the NPDGL/NPDAL fields of the NVM Command Set Specific Identify Namespace structure. So use these values to compute discard_granularity. Also fix the use of the OPTPERF field to better comply with version 2.1 of the NVMe spec. Update the target side to report NPDGL and NPDAL as wel, in case the discard granularity doesn't fit in the 16-bit NPDG and NPDA fields. Caleb Sander Mateos (6): nvme: add preferred I/O size fields to struct nvme_id_ns_nvm nvme: update nvme_id_ns OPTPERF constants nvme: always issue I/O Command Set specific Identify Namespace nvme: set discard_granularity from NPDG/NPDA nvmet: use NVME_NS_FEAT_OPTPERF_SHIFT nvmet: report NPDGL and NPDAL drivers/nvme/host/core.c | 21 ++++++++++++++++----- drivers/nvme/target/admin-cmd.c | 2 ++ drivers/nvme/target/io-cmd-bdev.c | 19 +++++++++++++++---- drivers/nvme/target/nvmet.h | 2 ++ include/linux/nvme.h | 10 ++++++++-- 5 files changed, 43 insertions(+), 11 deletions(-) -- 2.45.2