From: Jens Axboe <axboe@kernel.dk>
To: linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org
Cc: adilger@dilger.ca, hch@infradead.org, martin.petersen@oracle.com,
Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 05/11] block: add helpers for setting/checking stream validity
Date: Wed, 14 Jun 2017 13:05:28 -0600 [thread overview]
Message-ID: <1497467134-6323-6-git-send-email-axboe@kernel.dk> (raw)
In-Reply-To: <1497467134-6323-1-git-send-email-axboe@kernel.dk>
We map the RWF_WRITE_* life time flags to the internal flags.
Drivers can then, in turn, map those flags to a suitable stream
type.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
---
block/bio.c | 16 ++++++++++++++++
include/linux/bio.h | 1 +
include/linux/blk_types.h | 5 +++++
3 files changed, 22 insertions(+)
diff --git a/block/bio.c b/block/bio.c
index 888e7801c638..25ea7c365aac 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -2082,6 +2082,22 @@ void bio_clone_blkcg_association(struct bio *dst, struct bio *src)
#endif /* CONFIG_BLK_CGROUP */
+static const unsigned int rwf_write_to_opf_flag[] = {
+ 0, REQ_WRITE_SHORT, REQ_WRITE_MEDIUM, REQ_WRITE_LONG, REQ_WRITE_EXTREME
+};
+
+/*
+ * 'stream_flags' is one of RWF_WRITE_LIFE_* values
+ */
+void bio_set_streamid(struct bio *bio, unsigned int rwf_flags)
+{
+ if (WARN_ON_ONCE(rwf_flags >= ARRAY_SIZE(rwf_write_to_opf_flag)))
+ return;
+
+ bio->bi_opf |= rwf_write_to_opf_flag[rwf_flags];
+}
+EXPORT_SYMBOL_GPL(bio_set_streamid);
+
static void __init biovec_init_slabs(void)
{
int i;
diff --git a/include/linux/bio.h b/include/linux/bio.h
index d1b04b0e99cf..a1b3145020ad 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -443,6 +443,7 @@ extern struct bio *bio_copy_kern(struct request_queue *, void *, unsigned int,
gfp_t, int);
extern void bio_set_pages_dirty(struct bio *bio);
extern void bio_check_pages_dirty(struct bio *bio);
+extern void bio_set_streamid(struct bio *bio, unsigned int rwf_flags);
void generic_start_io_acct(int rw, unsigned long sectors,
struct hd_struct *part);
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 57d1eb530799..06c8c35f0288 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -323,4 +323,9 @@ struct blk_rq_stat {
u64 batch;
};
+static inline bool blk_stream_valid(unsigned int opf)
+{
+ return (opf & REQ_WRITE_LIFE_MASK) != 0;
+}
+
#endif /* __LINUX_BLK_TYPES_H */
--
2.7.4
next prev parent reply other threads:[~2017-06-14 19:05 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-14 19:05 [PATCHSET v3] Add support for write life time hints Jens Axboe
2017-06-14 19:05 ` [PATCH 01/11] block: add support for carrying stream information in a bio Jens Axboe
2017-06-14 20:37 ` Christoph Hellwig
2017-06-14 20:44 ` Jens Axboe
2017-06-14 19:05 ` [PATCH 02/11] blk-mq: expose stream write stats through debugfs Jens Axboe
2017-06-14 19:05 ` [PATCH 03/11] fs: add support for an inode to carry stream related data Jens Axboe
2017-06-14 20:25 ` Christoph Hellwig
2017-06-14 20:37 ` Jens Axboe
2017-06-14 19:05 ` [PATCH 04/11] fs: add support for allowing applications to pass in write life time hints Jens Axboe
2017-06-14 20:26 ` Christoph Hellwig
2017-06-14 20:37 ` Jens Axboe
2017-06-14 19:05 ` Jens Axboe [this message]
2017-06-14 20:28 ` [PATCH 05/11] block: add helpers for setting/checking stream validity Christoph Hellwig
2017-06-14 20:39 ` Jens Axboe
2017-06-14 19:05 ` [PATCH 06/11] fs: add O_DIRECT support for sending down bio stream information Jens Axboe
2017-06-14 19:05 ` [PATCH 07/11] fs: add support for buffered writeback to pass down " Jens Axboe
2017-06-14 19:05 ` [PATCH 08/11] ext4: add support for passing in stream information for buffered writes Jens Axboe
2017-06-14 19:05 ` [PATCH 09/11] xfs: " Jens Axboe
2017-06-14 19:05 ` [PATCH 10/11] btrfs: " Jens Axboe
2017-06-15 1:31 ` Chris Mason
2017-06-14 19:05 ` [PATCH 11/11] nvme: add support for streams and directives Jens Axboe
2017-06-14 20:32 ` Christoph Hellwig
2017-06-14 20:43 ` 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=1497467134-6323-6-git-send-email-axboe@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 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).