Incorrect maxXfer computation cause IO splits at PSA
search cancel

Incorrect maxXfer computation cause IO splits at PSA

book

Article ID: 321027

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
Incorrect maxXfer computation may lead to unnecessary IO splits at PSA impacting performance such as drop in IOPs/bandwidth etc.

Environment

VMware vSphere ESXi 7.0.0

Cause

This issue occurs because of the incorrect computation of maxXfer in PSA. This maxXfer is used in IO split later, and it leads to unnecessary splits and bounce buffering which may impact I/O performance.

Resolution

This issue is resolved in VMware ESXi 7.0 Update 1c, available at VMware Downloads.

Additional Information

If the PSA maxXfer is not set to min of (controller maxXfer, DMA maxXfer), it means the issue exists on the ESXi host.
  1. Log in as root through SSH on the ESXi host.
  2. To check the "Max Transfer Length" field in adapter DMA constraints which the driver is reporting, run the vsish -e get command:

    For example:

    vsish -e get /storage/scsifw/adapters/vmhba0/dmaConstraints | grep "Max Transfer size"
    Max Transfer size:2097152


    To check the maxXfer that the controller is reporting:

    For example:

    vsish -e get /storage/psa/transport/nvme/adapters/vmhba0/controllers/nqn.2014-08.org.nvmexpress_144d_Dell_Express_Flash_NVMe_PM1725_1.6TB_SFF______S2JPNA0J200550/info | grep "Max Transfer Length"
    Max Transfer Length:131072 


    To check what maxXfer PSA is using:

    For example:

    vsish -e get /storage/scsifw/paths/vmhba0:C0:T0:L0/info | grep "max IO Size"
    max IO Size:131072