Re: [PATCH] target/qla2xxx: Honor max_data_sg_nents I/O transfer limit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2015-08-19 at 17:48 -0700, Arun Easi wrote:
> Hi nab,
> 
> On Thu, 13 Aug 2015, 1:45am -0700, Nicholas A. Bellinger wrote:
> 
> > From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx>
> >
> > Hi Arun, Roland & Co,
> >
> > Based upon the feedback from last week, here is a proper
> > patch for target-core to honor a fabric provided SGL limit
> > using residual count plus underflow response bit.
> >
> > Everything appears to be working as expected with tcm-loop
> > LUNs with basic I/O and sg_raw to test CDB underflow, but
> > still needs to be verified on real qla2xxx hardware over
> > the next days for v4.2.0 code.
> >
> > Please review + test.
> 
> Changes look good. I could not test the changes, though. I have requested 
> internally to test this patch. Himanshu (copied) will get back with the 
> test results (Thanks Himanshu).
> 

Thanks for the update.  Btw, this patch has been pushed to
refs/heads/queue, atop the other recent v4.2-rc fixes here:

https://git.kernel.org/cgit/linux/kernel/git/nab/target-pending.git/commit/?h=queue

Just an FYI for Himanshu, for testing against Linux hosts that do honor
EVPD block-limits, you'll want to include the following small hack to
report a larger block-limits value so the new residual handling can
actually get invoked.

diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index 01421e9..f02767b 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -523,6 +523,7 @@ spc_emulate_evpd_b0(struct se_cmd *cmd, unsigned char *buf)
        if (cmd->se_tfo->max_data_sg_nents) {
                mtl = (cmd->se_tfo->max_data_sg_nents * PAGE_SIZE) /
                       dev->dev_attrib.block_size;
+               mtl *= 2;
        }
        put_unaligned_be32(min_not_zero(mtl, dev->dev_attrib.hw_max_sectors), &buf[8]);

Also for testing, I'd recommend lowering tcm_qla2xxx's max_data_sg_nents
to something arbitrarily small to exercise the new code.

Craig, have you had a chance to test the new logic on your setup with
hosts that don't honor EVPD block-limits..?

--nab 




--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux