Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-15 Thread Martin K. Petersen
> "Tom" == Tom Yan writes: Tom, Tom> The thing is, as of ACS-4, blocks that carry DSM/TRIM LBA Range Tom> Entries are always 512-byte. Lovely. And SAT conveniently ignores this entirely. Tom> Honestly, I have no idea how that would work on a 4Kn SSD, if it is Tom> / will ever be a thing.

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-14 Thread Tom Yan
On 13 August 2016 at 04:56, Martin K. Petersen wrote: >> "Tom" == Tom Yan writes: > > Tom, > >>> put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM / (sector_size / 512), >>> &rbuf[36]); > > How many 8-byte ranges fit in a 4096-byte sector? The thing is, as of ACS-4, blocks that carry DSM/TRIM LB

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-12 Thread Martin K. Petersen
> "Shaun" == Shaun Tancheff writes: Shaun, Shaun> Ah, I think I am understanding now. When the sector size is 4K Shaun> the minimum page sent with WRITE SAME will be 4K. Correct. We'll always transfer one logical block of data as required by the spec. -- Martin K. Petersen Oracle Lin

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-12 Thread Shaun Tancheff
On Fri, Aug 12, 2016 at 3:56 PM, Martin K. Petersen wrote: >> "Tom" == Tom Yan writes: > > Tom, > >>> put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM / (sector_size / 512), >>> &rbuf[36]); > > How many 8-byte ranges fit in a 4096-byte sector? > > Tom> So were you trying to pointing out somethin

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-12 Thread Martin K. Petersen
> "Tom" == Tom Yan writes: Tom, >> put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM / (sector_size / 512), >> &rbuf[36]); How many 8-byte ranges fit in a 4096-byte sector? Tom> So were you trying to pointing out something I am still missing, or Tom> were you merely confirming I was right? I

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-11 Thread Tom Yan
On 12 August 2016 at 09:34, Martin K. Petersen wrote: >> "Tom," == tom ty89 writes: > > Tom, > > + put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM / > + (sector_size / 512), &rbuf[36]); > > MAXIMUM WRITE SAME LENGTH is in units of the device's logic

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-11 Thread Martin K. Petersen
> "Tom," == tom ty89 writes: Tom, + put_unaligned_be64(65535 * ATA_MAX_TRIM_RNUM / + (sector_size / 512), &rbuf[36]); MAXIMUM WRITE SAME LENGTH is in units of the device's logical block size. -- Martin K. Petersen Oracle Linux Engineerin

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-11 Thread Tom Yan
The patch isn't about how the request from the block layer will be processed (to form the SCSI commands). What it addresses is blk_queue_max_write_same_sectors() and blk_queue_max_discard_sectors() that are called in the SCSI disk driver. You can see that they are called with an input of the Maxim

Re: [RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-11 Thread Shaun Tancheff
On Thu, Aug 11, 2016 at 3:26 AM, wrote: > From: Tom Yan > > Currently we advertise Maximum Write Same Length based on the > maximum number of sectors that one-block TRIM payload can cover. > The field are used to derived discard_max_bytes and > write_same_max_bytes limits in the block layer, whi

[RFC] libata-scsi: make sure Maximum Write Same Length is not too large

2016-08-11 Thread tom . ty89
From: Tom Yan Currently we advertise Maximum Write Same Length based on the maximum number of sectors that one-block TRIM payload can cover. The field are used to derived discard_max_bytes and write_same_max_bytes limits in the block layer, which currently can at max be 0x (32-bit). Howe