RE: Thin device provisioning

Knight, Frederick
2008-08-09T17:12:44Z

You are free to create a single pair API between your filesystems and
drivers and send SCSI commands one LBA/length pair at a time. However,
I'm afraid the voting members of T10 (representing a number of other
operating systems and their multitude of filesystems) preferred the list
approach.

We would welcome your input at the T10 meetings.
http://www.t10.org/meeting.htm - based on the input from the last
meeting, a revised proposal will be on the September Agenda in Colorado
Springs.

Fred

-----Original Message-----
From: Matthew Wilcox [mailto:matthew@wil.cx]
Sent: Saturday, August 09, 2008 12:46 PM
To: Knight, Frederick
Cc: David Woodhouse; ricwheeler@gmail.com;
linux-fsdevel@vger.kernel.org; Christoph Hellwig
Subject: Re: Thin device provisioning

I've spoken with a few Linux filesystem people. They find it
significantly easier to send a single LBA/length pair at a time.
Modern filesystems try quite hard to keep fragmentation to a minimum, so
they don't expect a performance hit from sending multiple commands.
They're non-blocking writes, and the IO elevators can take care of
sending more important reads first.

On Fri, Aug 08, 2008 at 05:58:15PM -0400, Knight, Frederick wrote:
> Thank you for your input. Yes, this was discussed. Most filesystems
> do not create fully contiguous files, and therefore when a file is
> deleted, some number of discontiguous extents must be
> punched/discarded. This is the reason for the list of LBA/length
pairs.
>
> The alternative is that the filesystem must create 1 unique request to

> the driver for each extent, and the driver must create 1 CDB for each
> extent, and the filesystem must then iterate through the entire file
> for each discontiguous range. It was felt that this would be a
> problem for filesystems and drivers to do this type of operation, and
> it was preferred to simply supply a list.
>
> Thanks again for the input,
>
> Fred Knight
> SAN Standards Technologist
> NetApp
>
>
>
> -----Original Message-----
> From: Matthew Wilcox [mailto:matthew@wil.cx]
> Sent: Friday, August 08, 2008 9:15 AM
> To: Knight, Frederick
> Cc: David Woodhouse; ricwheeler@gmail.com
> Subject: Thin device provisioning
>
> * From the T10 Reflector (t10@t10.org), posted by:
> * Matthew Wilcox <matthew@wil.cx>
> *
> Good morning Fred,
>
> I've been looking at your 08-149r0.pdf with a view to using the
'PUNCH'
> command to implement the Linux 'DISCARD' command. It's a little
> over-specified for what we need and this causes the implementation to
> be a little more complex than I would like. The excess capability is
> the ability to do multiple punches in a single command. Do you really

> need to be able to add/remove lots of ranges atomically, or could you
> use a command specified like this:
>
> 0 0x9F
> 1 service action
> 2-9 LBA
> 10-13 length
> 14 reserved
> 15 control
>
> and send one command for each range?
>
> Apologies if this has already been covered in a T10 discussion; I'm
> not a member and though I've searched the archives, I may have missed
> a discussion.
>
> --
> Intel are signing my paycheques ... these opinions are still mine
> "Bill, look, we understand that you're interested in selling us this
> operating system, but compare it to ours. We can't possibly take such

> a retrograde step."
>
> *
> * For T10 Reflector information, send a message with
> * 'info t10' (no quotes) in the message body to majordomo@t10.org

--
Intel are signing my paycheques ... these opinions are still mine "Bill,
look, we understand that you're interested in selling us this operating
system, but compare it to ours. We can't possibly take such a
retrograde step."