Thread (6 messages) 6 messages, 4 authors, 2015-02-13

RE: [RESEND] [PATCH] block: create ioctl to discard-or-zeroout a range of blocks

flat view

From: Elliott, Robert (Server Storage) <hidden>
Date: 2015-01-29 16:28:13
Also in: linux-fsdevel, lkml

-----Original Message-----
From: linux-kernel-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [mailto:linux-kernel-
owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org] On Behalf Of Arnd Bergmann
Sent: Thursday, 29 January, 2015 4:03 AM
To: Darrick J. Wong
Cc: Jens Axboe; Christoph Hellwig; linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-
fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; Jeff Layton; J. Bruce
Fields
Subject: Re: [RESEND] [PATCH] block: create ioctl to discard-or-zeroout a
range of blocks

On Wednesday 28 January 2015 18:00:25 Darrick J. Wong wrote:
quoted
Create a new ioctl to expose the block layer's newfound ability to
issue either a zeroing discard, a WRITE SAME with a zero page, or a
regular write with the zero page.  This BLKZEROOUT2 ioctl takes
{start, length, flags} as parameters.  So far, the only flag available
is to enable the zeroing discard part -- without it, the call invokes
the old BLKZEROOUT behavior.  start and length have the same meaning
as in BLKZEROOUT.

Furthermore, because BLKZEROOUT2 issues commands directly to the
storage device, we must invalidate the page cache (as a regular
O_DIRECT write would do) to avoid returning stale cache contents at a
later time.

This patch depends on "block: Add discard flag to
blkdev_issue_zeroout() function" in Jens' for-3.20/core branch.

Signed-off-by: Darrick J. Wong <redacted>
Would this work ok for devices that fill discarded areas with all-ones
instead of all-zeroes? I believe SD cards can do either.

	Arnd
RAID software stacks need predictable data, and 0 is a lot easier to
deal with than 0xff in Galois field (XOR-based) math.

The SCSI and ATA standards both define bits to report if the device is
designed to return 0 after discard; they don't have a way to report
that any other particular non-zero value is returned.

---
Rob Elliott    HP Server Storage
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help