All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	martin.petersen@oracle.com
Subject: Re: [PATCH 1/9] fs: add fcntl() interface for setting/getting write life time hints
Date: Tue, 27 Jun 2017 17:16:21 +0200	[thread overview]
Message-ID: <20170627151621.GA27962@lst.de> (raw)
In-Reply-To: <ec6ab0fa-60d7-3aa5-aa7c-81c105bdd488@kernel.dk>

On Tue, Jun 27, 2017 at 09:09:48AM -0600, Jens Axboe wrote:
> On 06/27/2017 08:42 AM, Christoph Hellwig wrote:
> > The API looks ok, but the code could use some cleanups.  What do
> > you think about the incremental patch below:
> > 
> > It refactors various manipulations, and stores the write hint right
> > in the iocb as there is a 4 byte hole (this will need some minor
> > adjustments in the next patches):
> 
> How's this? Fixes for compile, and also squeeze an enum rw_hint into
> a hole in the inode structure.
> 
> I'll refactor around this and squeeze into bio/rq holes as well, then
> re-test it.

Looks good, minor nitpick below:

> index 4574121f4746..4587a181162e 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -265,6 +265,20 @@ struct page;
>  struct address_space;
>  struct writeback_control;
>  
> +#include <linux/fcntl.h>

I didn't seem to need the move.  But if you want to move it can
we keep all the includes together at the very top?

> +static inline enum rw_hint __inode_write_hint(struct inode *inode)
> +{
> +	return inode->i_write_hint;
> +}
> +
> +static inline enum rw_hint inode_write_hint(struct inode *inode)
> +{
> +	enum rw_hint ret = __inode_write_hint(inode);
> +	if (ret != WRITE_LIFE_NOT_SET)
> +		return ret;
> +	return WRITE_LIFE_NONE;
> +}
> +
> +static inline enum rw_hint __file_write_hint(struct file *file)
> +{
> +	if (file->f_write_hint != WRITE_LIFE_NOT_SET)
> +		return file->f_write_hint;
> +
> +	return __inode_write_hint(file_inode(file));
> +}
> +
> +static inline enum rw_hint file_write_hint(struct file *file)
> +{
> +	enum rw_hint ret = __file_write_hint(file);
> +	if (ret != WRITE_LIFE_NOT_SET)
> +		return ret;
> +	return WRITE_LIFE_NONE;
> +}

I'd say kill all these helpers and just treat both WRITE_LIFE_NONE
and WRITE_LIFE_NOT_SET special all the way down in NVMe.

  reply	other threads:[~2017-06-27 15:16 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-26 15:37 [PATCHSET v10] Add support for write life time hints Jens Axboe
2017-06-26 15:37 ` [PATCH 1/9] fs: add fcntl() interface for setting/getting " Jens Axboe
2017-06-27 14:42   ` Christoph Hellwig
2017-06-27 14:52     ` Christoph Hellwig
2017-06-27 14:55     ` Jens Axboe
2017-06-27 14:57       ` Christoph Hellwig
2017-06-27 14:58         ` Jens Axboe
2017-06-27 15:09     ` Jens Axboe
2017-06-27 15:16       ` Christoph Hellwig [this message]
2017-06-27 15:18         ` Jens Axboe
2017-06-26 15:37 ` [PATCH 2/9] block: add support for write hints in a bio Jens Axboe
2017-06-26 15:37 ` [PATCH 3/9] blk-mq: expose write hints through debugfs Jens Axboe
2017-06-27 15:17   ` Christoph Hellwig
2017-06-27 15:20     ` Jens Axboe
2017-06-26 15:37 ` [PATCH 4/9] fs: add O_DIRECT support for sending down write life time hints Jens Axboe
2017-06-27 14:53   ` Christoph Hellwig
2017-06-26 15:37 ` [PATCH 5/9] fs: add support for buffered writeback to pass down write hints Jens Axboe
2017-06-26 15:37 ` [PATCH 6/9] ext4: add support for passing in write hints for buffered writes Jens Axboe
2017-06-26 15:37 ` [PATCH 7/9] xfs: " Jens Axboe
2017-06-26 15:37 ` [PATCH 8/9] btrfs: " Jens Axboe
2017-06-26 15:38 ` [PATCH 9/9] nvme: add support for streams and directives Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2017-06-21  0:21 [PATCHSET v9] Add support for write life time hints Jens Axboe
2017-06-21  0:21 ` [PATCH 1/9] fs: add fcntl() interface for setting/getting " Jens Axboe
2017-06-21  0:21   ` Jens Axboe
2017-06-26  9:51   ` Christoph Hellwig
2017-06-26  9:51     ` Christoph Hellwig
2017-06-26  9:51     ` Christoph Hellwig
2017-06-26 13:55     ` Jens Axboe
2017-06-26 13:55       ` Jens Axboe
2017-06-26 13:55       ` Jens Axboe
2017-06-26 16:09       ` Darrick J. Wong
2017-06-26 16:09         ` Darrick J. Wong
2017-06-26 16:09         ` Darrick J. Wong
2017-06-26 16:29         ` Jens Axboe
2017-06-26 16:29           ` Jens Axboe
2017-06-26 16:29           ` Jens Axboe
2017-06-19 17:04 [PATCHSET v8] Add support for " Jens Axboe
2017-06-19 17:04 ` [PATCH 1/9] fs: add fcntl() interface for setting/getting " Jens Axboe
2017-06-19 17:04   ` Jens Axboe
2017-06-20 23:09   ` Bart Van Assche
2017-06-20 23:09     ` Bart Van Assche
2017-06-20 23:09     ` Bart Van Assche
2017-06-20 23:49     ` Jens Axboe
2017-06-20 23:49       ` 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=20170627151621.GA27962@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --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.