From: sagig@dev.mellanox.co.il (Sagi Grimberg)
Subject: 4.5-rc iser issues
Date: Sun, 14 Feb 2016 16:02:18 +0200 [thread overview]
Message-ID: <56C088EA.1050901@dev.mellanox.co.il> (raw)
In-Reply-To: <56C066AF.6050901@dev.mellanox.co.il>
>> I'm bisecting now, there are a couple of patches from Ming in
>> the area of the bio splitting code...
>>
>> CC'ing Ming, Linux-block and Linux-nvme as iser is identical to nvme
>> wrt the virtual boundary so I think nvme will break as well.
>
> Bisection reveals that this one is the culprit:
>
> commit 52cc6eead9095e2faf2ec7afc013aa3af1f01ac5
> Author: Ming Lei <ming.lei at canonical.com>
> Date: Thu Sep 17 09:58:38 2015 -0600
>
> block: blk-merge: fast-clone bio when splitting rw bios
>
> biovecs has become immutable since v3.13, so it isn't necessary
> to allocate biovecs for the new cloned bios, then we can save
> one extra biovecs allocation/copy, and the allocation is often
> not fixed-length and a bit more expensive.
>
> For example, if the 'max_sectors_kb' of null blk's queue is set
> as 16(32 sectors) via sysfs just for making more splits, this patch
> can increase throught about ~70% in the sequential read test over
> null_blk(direct io, bs: 1M).
>
> Cc: Christoph Hellwig <hch at infradead.org>
> Cc: Kent Overstreet <kent.overstreet at gmail.com>
> Cc: Ming Lin <ming.l at ssi.samsung.com>
> Cc: Dongsu Park <dpark at posteo.net>
> Signed-off-by: Ming Lei <ming.lei at canonical.com>
>
> This fixes a performance regression introduced by commit 54efd50bfd,
> and allows us to take full advantage of the fact that we have
> immutable
> bio_vecs. Hand applied, as it rejected violently with commit
> 5014c311baa2.
>
> Signed-off-by: Jens Axboe <axboe at fb.com>
> --
Looks like there is a problem with bio_clone_fast()
This change makes the problem go away:
--
diff --git a/block/bio.c b/block/bio.c
index dbabd48..5e93733 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1791,7 +1791,7 @@ struct bio *bio_split(struct bio *bio, int sectors,
* Discards need a mutable bio_vec to accommodate the payload
* required by the DSM TRIM and UNMAP commands.
*/
- if (bio->bi_rw & REQ_DISCARD)
+ if (1 || bio->bi_rw & REQ_DISCARD)
split = bio_clone_bioset(bio, gfp, bs);
else
split = bio_clone_fast(bio, gfp, bs);
--
Any thoughts?
WARNING: multiple messages have this Message-ID (diff)
From: Sagi Grimberg <sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Ming Lin-SSI <ming.l-Vzezgt5dB6uUEJcrhfAQsw@public.gmane.org>,
"linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
Subject: Re: 4.5-rc iser issues
Date: Sun, 14 Feb 2016 16:02:18 +0200 [thread overview]
Message-ID: <56C088EA.1050901@dev.mellanox.co.il> (raw)
In-Reply-To: <56C066AF.6050901-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
>> I'm bisecting now, there are a couple of patches from Ming in
>> the area of the bio splitting code...
>>
>> CC'ing Ming, Linux-block and Linux-nvme as iser is identical to nvme
>> wrt the virtual boundary so I think nvme will break as well.
>
> Bisection reveals that this one is the culprit:
>
> commit 52cc6eead9095e2faf2ec7afc013aa3af1f01ac5
> Author: Ming Lei <ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
> Date: Thu Sep 17 09:58:38 2015 -0600
>
> block: blk-merge: fast-clone bio when splitting rw bios
>
> biovecs has become immutable since v3.13, so it isn't necessary
> to allocate biovecs for the new cloned bios, then we can save
> one extra biovecs allocation/copy, and the allocation is often
> not fixed-length and a bit more expensive.
>
> For example, if the 'max_sectors_kb' of null blk's queue is set
> as 16(32 sectors) via sysfs just for making more splits, this patch
> can increase throught about ~70% in the sequential read test over
> null_blk(direct io, bs: 1M).
>
> Cc: Christoph Hellwig <hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
> Cc: Kent Overstreet <kent.overstreet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> Cc: Ming Lin <ming.l-Vzezgt5dB6uUEJcrhfAQsw@public.gmane.org>
> Cc: Dongsu Park <dpark-VwIFZPTo/vqsTnJN9+BGXg@public.gmane.org>
> Signed-off-by: Ming Lei <ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
>
> This fixes a performance regression introduced by commit 54efd50bfd,
> and allows us to take full advantage of the fact that we have
> immutable
> bio_vecs. Hand applied, as it rejected violently with commit
> 5014c311baa2.
>
> Signed-off-by: Jens Axboe <axboe-b10kYP2dOMg@public.gmane.org>
> --
Looks like there is a problem with bio_clone_fast()
This change makes the problem go away:
--
diff --git a/block/bio.c b/block/bio.c
index dbabd48..5e93733 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1791,7 +1791,7 @@ struct bio *bio_split(struct bio *bio, int sectors,
* Discards need a mutable bio_vec to accommodate the payload
* required by the DSM TRIM and UNMAP commands.
*/
- if (bio->bi_rw & REQ_DISCARD)
+ if (1 || bio->bi_rw & REQ_DISCARD)
split = bio_clone_bioset(bio, gfp, bs);
else
split = bio_clone_fast(bio, gfp, bs);
--
Any thoughts?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-02-14 14:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-14 7:41 4.5-rc iser issues Christoph Hellwig
[not found] ` <20160214074119.GA24558-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2016-02-14 9:02 ` Sagi Grimberg
2016-02-14 9:59 ` Sagi Grimberg
2016-02-14 9:59 ` Sagi Grimberg
2016-02-14 11:36 ` Sagi Grimberg
2016-02-14 11:36 ` Sagi Grimberg
2016-02-14 14:02 ` Sagi Grimberg [this message]
2016-02-14 14:02 ` Sagi Grimberg
2016-02-14 15:22 ` Christoph Hellwig
2016-02-14 15:22 ` Christoph Hellwig
2016-02-14 16:20 ` Ming Lei
2016-02-14 16:20 ` Ming Lei
2016-02-14 16:29 ` Sagi Grimberg
2016-02-14 16:29 ` Sagi Grimberg
2016-02-14 16:39 ` Ming Lei
2016-02-14 16:39 ` Ming Lei
2016-02-15 7:11 ` Ming Lei
2016-02-15 7:11 ` Ming Lei
2016-02-15 7:45 ` Sagi Grimberg
2016-02-15 7:45 ` Sagi Grimberg
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=56C088EA.1050901@dev.mellanox.co.il \
--to=sagig@dev.mellanox.co.il \
/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.