> -----Original Message----- > From: [email protected] [mailto:linux-kernel- > [email protected]] On Behalf Of Arnd Bergmann > Sent: Thursday, 29 January, 2015 4:03 AM > To: Darrick J. Wong > Cc: Jens Axboe; Christoph Hellwig; [email protected]; linux- > [email protected]; [email protected]; 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: > > 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 <[email protected]> > > > > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

