[PATCH v1 0/2] nvme: use local limits for namespace heads

Yao Sang <[email protected]>
Newsgroups org.infradead.lists.linux-nvme
Message-ID <[email protected]>
Hi everyone,

NVMe native multipath refreshes namespace-head queue limits whenever
namespace information is updated. The current path uses
queue_limits_stack_bdev(), then overrides selected NVMe configuration
fields afterwards.

queue_limits_stack_bdev() also applies offset and alignment handling
intended for stacked devices. An NVMe namespace head has a different
relationship with its underlying devices: every path reaches the same
namespace rather than a separately mapped lower device. Its limit update
therefore needs to refresh Identify-derived configuration, combine
path-dependent request limits conservatively, and retain user-set queue
limits.

This series makes that distinction explicit in two steps. Patch 1 moves
the existing namespace-head update into a local helper without changing
its behavior. Patch 2 then replaces the generic stacking operation with
NVMe-specific handling for configuration, features, and request limits.

Testing:

- blktests nvme/004, 005, 006, 008, 010, 012, 014, 016, 017, 018, 019,
  021, 022, 023, 025, 026, 027, 028, 029, 030, 031, 040, 041, 042, 043,
  044, 045, 049, 051, 052, 053, 054, 057, 058, 059,
  065, 067 and 068 passed.
- blktests zbd/001, 003, 004, 005, 006, 008, 009, 011, 012, and 013
  passed.
- blktests block/003, 004, and 012, and scsi/009 and 010 passed.
- xfstests xfs/643, xfs/646, generic/765, and generic/773 passed.

Changes since RFC:
- rebase from nvme-7.2 to nvme-7.3;
- keep the thread kernel-only

Link: https://lore.kernel.org/r/[email protected]

Thanks,
Yao

Yao Sang (2):
  nvme: factor namespace-head queue-limit update
  nvme: stop using queue_limits_stack_bdev for namespace heads

 drivers/nvme/host/core.c | 196 ++++++++++++++++++++++++++++-----------
 1 file changed, 143 insertions(+), 53 deletions(-)

-- 
2.25.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.