RE: VMware ESXi 5 and LIO target: "WRITE_SAME w/o UNMAP bit not supported for Block Discard Emulation"

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

 



Hallo Nicolas,

I have applied both patches you provided to a new kernel and re-tested with this new kernel.
This still results in the same behavior as before.

Nevertheless I receive the following information in the kernel log:

kernel: [  453.378652] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  453.379020] Unknown transport error for CDB 0x12: -22
kernel: [  453.386501] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  453.386660] Unknown transport error for CDB 0x12: -22
kernel: [  453.393735] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  453.396266] Unknown transport error for CDB 0x12: -22
kernel: [  579.765875] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  579.766215] Unknown transport error for CDB 0x12: -22
kernel: [  579.771046] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  579.771246] Unknown transport error for CDB 0x12: -22
kernel: [  579.773891] Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0
kernel: [  579.774054] Unknown transport error for CDB 0x12: -22
kernel: [  632.174298] WRITE_SAME w/o UNMAP bit not supported for Block Discard Emulation
kernel: [  632.187371] WRITE_SAME w/o UNMAP bit not supported for Block Discard Emulation

The last message is repeated approx. 65 times per second until the ESXi system is powered off
A LAN trace is available. Please let me know, if you need it.


Just for completeness, the target_core_cdb.c file changes used for the new kernel look as following:

target_emulate_evpd_b0(struct se_cmd *cmd, unsigned char *buf)
{
        struct se_device *dev = cmd->se_dev;
        int have_tp = 0;

        /*
         * Following sbc3r22 section 6.5.3 Block Limits VPD page, when
         * emulate_tpu=1 or emulate_tpws=1 we will be expect a
         * different page length for Thin Provisioning.
         */
        if (dev->se_sub_dev->se_dev_attrib.emulate_tpu || dev->se_sub_dev->se_dev_attrib.emulate_tpws)
                have_tp = 1;

        if (!have_tp) {
                pr_warn("Returning TCM_UNSUPPORTED_SCSI_OPCODE for have_tp=0\n");
                cmd->scsi_sense_reason = TCM_UNSUPPORTED_SCSI_OPCODE;
                return -EINVAL;
       }

        if (cmd->data_length < (0x10 + 4)) {
                pr_debug("Received data_length: %u"
                        " too small for EVPD 0xb0\n",
                        cmd->data_length);
                return -EINVAL;
        }

        if (have_tp && cmd->data_length < (0x3c + 4)) {
                pr_debug("Received data_length: %u"
                        " too small for TPE=1 EVPD 0xb0\n",
                        cmd->data_length);
                have_tp = 0;
        }

        buf[0] = dev->transport->get_device_type(dev);
        buf[3] = have_tp ? 0x3c : 0x10;

        /* Set WSNZ to 1 */
        buf[4] = 0x01;

        /*
         * Set OPTIMAL TRANSFER LENGTH GRANULARITY
         */
        if (have_tp)
                put_unaligned_be16(1, &buf[6]);
        /*
         * Set MAXIMUM TRANSFER LENGTH
         */
        put_unaligned_be32(dev->se_sub_dev->se_dev_attrib.max_sectors, &buf[8]);
... and so on


Best regards
Sven


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


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux