RE: [PATCH] megaraid_sas: Re-enable WRITE SAME

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

 



> -----Original Message-----
> From: Martin K. Petersen [mailto:martin.petersen@xxxxxxxxxx]
> Sent: Thursday, February 22, 2018 9:52 AM
> To: Shivasharan S <shivasharan.srikanteshwara@xxxxxxxxxxxx>
> Cc: linux-scsi@xxxxxxxxxxxxxxx; kashyap.desai@xxxxxxxxxxxx;
> sumit.saxena@xxxxxxxxxxxx
> Subject: Re: [PATCH] megaraid_sas: Re-enable WRITE SAME
>
>
> Hi Shivasharan!
>
> > For MegaRAID controller we want to support WRITE SAME for non-raid
> > volumes.  Because of host wide "no_write_same = 1" settings, we are
> > not able to use provision mode.
>
> The no_write_same flag gates whether the WRITE SAME(10/16) commands
> are
> used to zero block ranges. It does not influence whether WRITE SAME with
> the UNMAP bit set is used to deallocate block ranges on devices which
> support logical block provisioning.

Hi Martin,

Thanks for this clarification. I checked further to understand difference
between
zeroout block ranges and deallocation (unmap) of block ranges using WRITE
SAME
command and impact of setting no_write_same flag.
So my understanding is when driver sets no_write_same flag, it is only
disabling
BLKZEROOUT/write_zeroes requests from using WRITE SAME command.
Instead individual writes are sent to zero the blocks (if
BLKDEV_ZERO_NOFALLBACK flag is not set).

>
> > Virtual Disk will not enable WRITE SAME feature providing correct VPD
> > block limit page.
>
> This wasn't always the case.
>
> If you want to enable WRITE SAME you'll have to provide some sort of
> heuristic to avoid breaking things on firmware versions and controllers
> that predate correct reporting.
>
Our inhouse driver code did not set the no_write_same flag.
And so far we have not seen any issues in this area with inhouse driver.
I am running tests now to check firmware behavior you mentioned.
Will get back to you with the results.

Are you aware of any issue that led to this change?

> > Virtual Disk in MegaRAID provides below values in VPD page 0xb0 which
> > will disable WRITE SAME commands.
>
> A value of 0 in
>
>   Maximum write same length: 0x0 blocks
>
> means the maximum length is not reported. It does not mean that WRITE
> SAME isn't supported.
>

Ok. With latest firmware, for virtual disks we do not set write same/unmap
support
in the logical block provisioning VPD page.
Will check behavior with older firmware versions also and get back.

Logical block provisioning VPD page (SBC):
  Unmap command supported (LBPU): 0
 Write same (16) with unmap bit supported (LBWS): 0
  Write same (10) with unmap bit supported (LBWS10): 0
  Logical block provisioning read zeros (LBPRZ): 0
  Anchored LBAs supported (ANC_SUP): 0
  Threshold exponent: 0
  Descriptor present (DP): 0
  Minimum percentage: 0
  Provisioning type: 0
  Threshold percentage: 0

Thanks,
Shivasharan

> --
> Martin K. Petersen	Oracle Linux Engineering



[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