Ming, Below referred commit changes apply only for NVMe drives. Driver sets nomerges & virtual boundary under below if condition. And the driver sets MPT_TARGET_FLAGS_PCIE_DEVICE bit in sas_target_priv_data->flags only for NVMe drives. if (sas_target_priv_data->flags & MPT_TARGET_FLAGS_PCIE_DEVICE) { ... blk_queue_flag_set(QUEUE_FLAG_NOMERGES, sdev->request_queue); blk_queue_virt_boundary(sdev->request_queue, ioc->page_size - 1); } on my local setup, I have both SAS HDD and NVMe drives as shown below, [11:0:20:0] disk SEAGATE ST600MP0005 VS09 /dev/sdz [11:2:0:0] disk NVMe INTEL SSDPE2MW40 0174 /dev/sdab and default nomerge setting for these drives is as show below, /sys/devices/pci0000:80/0000:80:03.0/0000:85:00.0/host11/port-11:0/expander-11:0/port-11:0:19/end_device-11:0:19/target11:0:20/11:0:20:0/block/sdz/queue/nomerges:0 /sys/devices/pci0000:80/0000:80:03.0/0000:85:00.0/host11/target11:2:0/11:2:0:0/block/sdab/queue/nomerges:2 so, for SAS HDD drive default nomerge setting is zero and for NVMe drive the default nomerge setting is two. Thanks, Sreekanth On Thu, Jan 28, 2021 at 4:08 AM Ming Lei <ming.lei@xxxxxxxxxx> wrote: > > Hello Guys, > > The commit[1] is supposed for NVMe device only, but we found the change is > actually done on the following mpt3sas HDD. drive: > > #sginfo /dev/sdc > INQUIRY response (cmd: 0x12) > ---------------------------- > Device Type 0 > Vendor: SEAGATE > Product: ST16000NM002G > Revision level: E003) > > So NOMERGES is enabled, and virt boundary limit is applied on this HDD. > device, and performance drop is observed, can you take a look at the > issue? > > > [1] commit d1b01d14b7baa8a4bb4c11305c8cca73456b2f7c > Author: Suganath Prabu Subramani <suganath-prabu.subramani@xxxxxxxxxxxx> > Date: Tue Oct 31 18:02:33 2017 +0530 > > scsi: mpt3sas: Set NVMe device queue depth as 128 > > Sets nvme device queue depth, name and displays device capabilities > > > > Thanks, > Ming >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature