All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Andreas Dilger <adilger@dilger.ca>
Cc: Martin Petersen <martin.petersen@oracle.com>,
	Christoph Hellwig <hch@infradead.org>,
	fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-block <linux-block@vger.kernel.org>
Subject: Re: [PATCHSET v2] Add support for write life time hints
Date: Wed, 14 Jun 2017 21:57:51 -0600	[thread overview]
Message-ID: <d83b67c8-e4d6-d450-5cc2-4f0f56961443@kernel.dk> (raw)
In-Reply-To: <48A74D71-9765-4881-B337-761FE66757BB@dilger.ca>

On 06/14/2017 09:53 PM, Andreas Dilger wrote:
> On Jun 14, 2017, at 9:26 PM, Jens Axboe <axboe@kernel.dk> wrote:
>> On Wed, Jun 14, 2017 at 5:39 PM, Andreas Dilger <adilger@dilger.ca> wrote:
>>> On Jun 14, 2017, at 10:04 AM, Martin K. Petersen <martin.petersen@oracle.com> wrote:
>>>> Christoph,
>>>>
>>>>> I think what Martin wants (or at least what I'd want him to want) is
>>>>> to define a few REQ_* bits that mirror the RWF bits, use that to
>>>>> transfer the information down the stack, and then only translate it
>>>>> to stream ids in the driver.
>>>>
>>>> Yup. If we have enough space in the existing flags that's perfect (I
>>>> lost count after your op/flag shuffle).
>>>
>>> Just to clarify, does this mean that Jens' "lifetime" hints are going to
>>> be independent of separate "stream ID" values in the future (needing a
>>> similar, but independent, set of fields for stream IDs, or will they
>>> both be implemented using a common transport in the kernel (i.e. both
>>> share a single set of fields in the inode/bio/etc?
>>
>> There's no reason they can't coexist. Now that bio->bi_stream is gone
>> and we just have the flags, if we want to expose separate "real" stream
>> IDs, then we could later re-introduce that. It'd be pretty trivial to
>> just use the most pertinent information on the driver side.
>>
>> From my perspective, all I really care about is the 4 hints. It's a
>> simple enough interface that applications can understand and use it, and
>> we don't need any management of actual stream IDs. I think that has the
>> highest chance of success. Modifying an application to use it is
>> trivial, even something like RocksDB (if you havehad to make changes
>> to RocksDB, you'll get this).
> 
> If this is really to be only flags, rather than a hybrid of flags and IDs
> (as I had thought), then it probably makes sense to limit the inode usage
> to a few bits in i_flags using S_LIFETIME_* values rather than a separate
> 16-bit i_stream field, which can be used for the actual stream IDs later.

Christoph alluded to that as well. And yes, if we are contemplating
something else later on, then that does make more sense. I'll make that
change.

-- 
Jens Axboe

  reply	other threads:[~2017-06-15  3:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-14  4:01 [PATCHSET v2] Add support for write life time hints Jens Axboe
2017-06-14  4:01 ` [PATCH 01/10] block: add support for carrying stream information in a bio Jens Axboe
2017-06-14  4:01 ` [PATCH 02/10] blk-mq: expose stream write stats through debugfs Jens Axboe
2017-06-14  4:07   ` Andreas Dilger
2017-06-14  4:01 ` [PATCH 03/10] fs: add support for an inode to carry stream related data Jens Axboe
2017-06-14  4:01 ` [PATCH 04/10] fs: add support for allowing applications to pass in write life time hints Jens Axboe
2017-06-14  4:06   ` Andreas Dilger
2017-06-14  4:01 ` [PATCH 05/10] fs: add O_DIRECT support for sending down bio stream information Jens Axboe
2017-06-14  4:01 ` [PATCH 06/10] fs: add support for buffered writeback to pass down " Jens Axboe
2017-06-14  4:01 ` [PATCH 07/10] ext4: add support for passing in stream information for buffered writes Jens Axboe
2017-06-14  4:01 ` [PATCH 08/10] xfs: " Jens Axboe
2017-06-14  4:01 ` [PATCH 09/10] btrfs: " Jens Axboe
2017-06-14  4:01 ` [PATCH 10/10] nvme: add support for streams and directives Jens Axboe
2017-06-14  4:10   ` Andreas Dilger
2017-06-14 15:45 ` [PATCHSET v2] Add support for write life time hints Martin K. Petersen
2017-06-14 15:53   ` Jens Axboe
2017-06-14 16:00     ` Martin K. Petersen
2017-06-14 16:03       ` Jens Axboe
2017-06-14 16:01     ` Christoph Hellwig
2017-06-14 16:02       ` Jens Axboe
2017-06-14 16:04       ` Martin K. Petersen
2017-06-14 16:26         ` Jens Axboe
2017-06-14 17:22         ` Jens Axboe
2017-06-14 23:39         ` Andreas Dilger
2017-06-15  3:26           ` Jens Axboe
2017-06-15  3:53             ` Andreas Dilger
2017-06-15  3:57               ` Jens Axboe [this message]
2017-06-15  4:38                 ` Jens Axboe
2017-06-16 13:58             ` Christoph Hellwig
2017-06-16 14:40               ` Jens Axboe
2017-06-16 15:52                 ` Christoph Hellwig
2017-06-16 15:55                   ` 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=d83b67c8-e4d6-d450-5cc2-4f0f56961443@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=adilger@dilger.ca \
    --cc=hch@infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.