• Christoph Hellwig's avatar
    target: stop splitting commands into multiple tasks · bebe2fdc
    Christoph Hellwig authored
    From hch:
    
    The high-performance backends (iblock and rd) support tasks of unlimited
    size.  With that there is no reason to keep a complex infrastructure for
    splitting up commands in place.  Stop doing so and only submit a single
    task per data direction.  Once this is in place we can slowly remove fields
    from the task that duplicate things in the command, or move other fields
    into the command.
    
    From nab:
    
    The benefit to IBLOCK performance by removing the additional
    fast-path allocation overhead + SGL mapping to se_task->task_sg[] is now
    greater than transparently supporting an received CDB I/O length that
    exceeds what is allowed by backend pSCSI LLD hardware max_sectors, that
    was originally supported for all backend export cases.
    
    This change may effect some users of pSCSI users on legacy hardware, but
    I think most folks are now using TYPE_DISK struct scsi_device export
    with IBLOCK.  The only other place where this may can issues that cannot
    be resolved with IBLOCK TYPE_DISK is using TYPE_ROM, TYPE_TAPE or other
    pSCSI non TYPE_DISK export with an SCSI LLDs using a smaller
    max_sectors.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    bebe2fdc
target_core_cdb.c 32.9 KB