Spdk/lib/scsi
Swapnil Ingle 6cebe9d06b nvmf: Support physical block size if exposed by bdev
(Note: this patch was previously applied as b32cfc46 and then reverted
as 63642bef.)

Today the in-guest nvme device shows physical_block_size=512 even though
the backend iSCSI bdev supports physical_block_size=4K

iSCSI targets exposes physical block size using
logical_block_per_physical_block_exponent in READ_CAPACITY_16

NPWG is one of the way to let Linux nvme driver set
physical_block_size of the nvme block device.

This patch adds spdk_bdev.phys_blocklen which is updated if the iSCSI
backend exposes physical_block_size.
Later phys_blocklen is used in nvmf to set NPWG and NAWUPF to report
back during NS identity.
Linux driver uses min(nawupf, npwg) to set physical_block_size.

Similarly in scsi_bdev fill lbppbe in READ_CAP16 response
based on spdk_bdev.phys_blocklen.

Fixes #1884

Signed-off-by: Swapnil Ingle <swapnil.ingle@nutanix.com>
Change-Id: I0b6c81f1937e346d448f49c927eda8c79d2d75c0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7739
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-05-06 07:14:40 +00:00
..
dev.c lib/scsi: Pass bdev_name instead of bdev to scsi_lun_construct() 2020-10-08 13:11:15 +00:00
lun.c lib/scsi: Pass bdev_name instead of bdev to scsi_lun_construct() 2020-10-08 13:11:15 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
port.c lib/scsi: Remove spdk_ prefix from internal APIs 2020-04-16 08:09:14 +00:00
scsi_bdev.c nvmf: Support physical block size if exposed by bdev 2021-05-06 07:14:40 +00:00
scsi_internal.h log: remove internal log.h header 2020-10-15 08:23:39 +00:00
scsi_pr.c scsi: return scsi error status for invalid SCSI CDB 2021-04-15 20:25:28 +00:00
scsi_rpc.c lib/scsi: Remove spdk prefix from private functions 2020-04-16 08:09:14 +00:00
scsi.c log: simplify SPDK_LOG_REGISTER_COMPONENT 2020-10-14 08:00:35 +00:00
spdk_scsi.map scsi: add bdev resize callback support 2020-09-28 08:33:18 +00:00
task.c scsi: relax spdk_scsi_task_gather_data assert 2021-03-09 08:53:21 +00:00