Re: [Lsf-pc] [LSF/MM/BPF TOPIC] Implementing the NFS v4.2 WRITE_SAME operation: VFS or NFS ioctl() ?

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

 



Hi Chuck!

> The purpose of WRITE_SAME is to demark the database blocks with
> sentinels on each end of the database block containing a time
> stamp or hash.

SCSI WRITE SAME writes a contiguous range of logical blocks. Each block
will be filled with the contents of the single logical block data buffer
provided as payload.

So with SCSI WRITE SAME it's not possible to write a 512-byte sentinel,
followed by 15KB of zeroes, followed by a 512-byte sentinel in a single
operation. You'd have to do a 16KB WRITE SAME with a zeroed payload
followed by a two individual WRITEs for the sentinels. Or fill the
entire 16KB application block with the same repeating 512-byte pattern.

I'm not familiar with NFS v4.2 WRITE SAME. But it sounds like it allows
the application to define a block larger than the logical block size of
the underlying storage. Is that correct?

If so, there would not be a direct mapping between NFS WRITE SAME and
SCSI ditto. As Christoph pointed out, NVMe doesn't have WRITE SAME. And
we removed support in the block layer a while back.

That doesn't prevent implementing WRITE SAME capability in NFS, of
course. It just sounds like the NFS semantics are different enough that
aligning to SCSI is not applicable.

-- 
Martin K. Petersen	Oracle Linux Engineering




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux