From: Jens Axboe <axboe@fb.com>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-fsdevel@vger.kernel.org>,
<adilger@dilger.ca>, <david@fromorbit.com>
Subject: Re: [PATCH v2] Support for write stream IDs
Date: Tue, 5 May 2015 15:05:27 -0600 [thread overview]
Message-ID: <55493097.6040007@fb.com> (raw)
In-Reply-To: <x49k2wmiw8w.fsf@segfault.boston.devel.redhat.com>
On 05/05/2015 02:51 PM, Jeff Moyer wrote:
> Jens Axboe <axboe@fb.com> writes:
>
>> Hi,
>>
>> Changes since the last posting:
>>
>> - Added a specific per-file fadvise setting. POSIX_FADV_STREAMID sets
>> the inode and file stream ID, POSIX_FADV_STREAMID_FILE sets just the
>> file stream ID.
>>
>> - Addressed review comments.
>>
>> I've since run some testing with write streams. Test case was a RocksDB
>> overwrite benchmark, using 3 billion keys of 400B in size (numbers set
>> use the full size of the device). WAL/LOG was assigned to stream 1, and
>> each RocksDB compaction level used a separate stream. With streams
>> enabled, user write to device writes (write amplification) was at 2.33.
>> Without streams, the write amplification was 3.05. That is roughly 20%
>> less written NAND, and the streams test subsequently also had 20%
>> higher throughput.
>>
>> Unless there are any grave concerns here, I'd like to merge this for
>> 4.2.
>
> I have a few concerns. You've added POSIX_FADV_* definitions that do
> not exist in the SUS/POSIX spec. Do we care? We (poor reviewers) still
> have no idea what the driver side of this will look like. Do streams
> need to be opened and closed? Is that going to be handled transparently
> by the kernel, or exposed to userspace? If in the kernel, where in the
> kernel? You've also added a user-visible api without cc-ing linux-api.
Whether this should be fadvise, fcntl, or something else, that's the
primary review concern.
The driver side depends on the driver! The kernel patches deal only with
ensuring that the stream information gets passed down. If the device
requires explicit stream open/close actions, then that needs to be
handled on the side. There's no reason to include the kernel in that,
the kernel doesn't care.
> My preference would be to wait for the spec to finalize before pushing
> in changes that depend on it.
I think you are mixing up the write streams with the NVMe proposal. The
two aren't necessarily connected, and the kernel parts don't really care
what the NVMe proposal ends up looking like. It's just an interface to
assign an ID, and a transport for passing that ID down to a driver.
--
Jens Axboe
next prev parent reply other threads:[~2015-05-05 21:05 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-05 20:02 [PATCH v2] Support for write stream IDs Jens Axboe
2015-05-05 20:02 ` [PATCH 1/7] block: add support for carrying a stream ID in a bio Jens Axboe
2015-05-05 20:02 ` [PATCH 2/7] Add support for per-file/inode stream ID Jens Axboe
2015-05-05 20:09 ` Christoph Hellwig
2015-05-05 20:02 ` [PATCH 3/7] direct-io: add support for write stream IDs Jens Axboe
2015-05-05 20:02 ` [PATCH 4/7] Add stream ID support for buffered mpage/__block_write_full_page() Jens Axboe
2015-05-05 20:02 ` [PATCH 5/7] btrfs: add support for write stream IDs Jens Axboe
2015-05-05 20:03 ` [PATCH 6/7] xfs: add support for buffered writeback stream ID Jens Axboe
2015-05-05 20:03 ` [PATCH 7/7] ext4: add support for write stream IDs Jens Axboe
2015-05-05 20:07 ` [PATCH v2] Support " Christoph Hellwig
2015-05-05 20:12 ` Jens Axboe
2015-05-05 20:20 ` Christoph Hellwig
2015-05-05 20:31 ` Jens Axboe
2015-05-05 20:43 ` Christoph Hellwig
2015-05-05 20:50 ` Christoph Hellwig
2015-05-05 20:51 ` Jeff Moyer
2015-05-05 21:05 ` Jens Axboe [this message]
2015-05-05 21:39 ` Martin K. Petersen
2015-05-05 21:48 ` Jens Axboe
2015-05-05 22:09 ` Martin K. Petersen
2015-05-06 14:26 ` Peter Zijlstra
2015-05-06 17:25 ` Jens Axboe
2015-05-06 16:50 ` Boaz Harrosh
2015-05-06 17:21 ` Jens Axboe
2015-05-07 19:19 ` Martin K. Petersen
2015-05-08 18:48 ` Jens Axboe
2015-05-12 2:50 ` Martin K. Petersen
-- strict thread matches above, loose matches on Subject: below --
2015-04-18 20:03 Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55493097.6040007@fb.com \
--to=axboe@fb.com \
--cc=adilger@dilger.ca \
--cc=david@fromorbit.com \
--cc=jmoyer@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).