Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1227107 > unrolled thread
| Started by | Jens Axboe <axboe@kernel.dk> |
|---|---|
| First post | 2015-09-17 17:20 +0200 |
| Last post | 2015-09-17 18:00 +0200 |
| Articles | 5 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios Jens Axboe <axboe@kernel.dk> - 2015-09-17 17:20 +0200
Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios Jens Axboe <axboe@kernel.dk> - 2015-09-17 18:00 +0200
Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios Jens Axboe <axboe@kernel.dk> - 2015-09-17 18:10 +0200
Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios Ming Lei <ming.lei@canonical.com> - 2015-09-17 18:10 +0200
Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios Ming Lei <ming.lei@canonical.com> - 2015-09-17 18:00 +0200
| From | Jens Axboe <axboe@kernel.dk> |
|---|---|
| Date | 2015-09-17 17:20 +0200 |
| Subject | Re: [PATCH] block: blk-merge: fast-clone bio when splitting rw bios |
| Message-ID | <q9J8C-7rl-21@gated-at.bofh.it> |
On 09/17/2015 09:13 AM, Ming Lei wrote: > 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). I'd be curious how this compares to before we did the splitting, not exceeding the limits through bio_add_page() instead? -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Jens Axboe <axboe@kernel.dk> |
|---|---|
| Date | 2015-09-17 18:00 +0200 |
| Message-ID | <q9JLk-8c4-11@gated-at.bofh.it> |
| In reply to | #1227107 |
On 09/17/2015 09:50 AM, Ming Lei wrote: > On Thu, Sep 17, 2015 at 11:19 PM, Jens Axboe <axboe@kernel.dk> wrote: >> On 09/17/2015 09:13 AM, Ming Lei wrote: >>> >>> 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). >> >> >> I'd be curious how this compares to before we did the splitting, not >> exceeding the limits through bio_add_page() instead? > > Let me show these test results: > > ---------------------------------------------------------------------------------- > kernel | throught > ---------------------------------------------------------------------------------- > 4.3.0-rc1-next-20150916 | bw=12227MB/s, iops=12227 > ---------------------------------------------------------------------------------- > 4.3.0-rc1-next-20150916 with patch | bw=21011MB/s, iops=21011 > ---------------------------------------------------------------------------------- > v4.2 | > bw=18959MB/s, iops=18958 > ---------------------------------------------------------------------------------- > > So from the above, looks this patch is kind of fix for performance regression > introduced by 54efd50bfd(block: make generic_make_request handle > arbitrarily sized bios), :-) So that's 1MB user IO, and 16KB device limit, correct? If that is the case, then the results make sense. And looks like we're still ahead of the older bio_add_page() approach, which is what I mostly cared about. Thanks! I'll apply this for -rc2. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jens Axboe <axboe@kernel.dk> |
|---|---|
| Date | 2015-09-17 18:10 +0200 |
| Message-ID | <q9JV0-bo-11@gated-at.bofh.it> |
| In reply to | #1227156 |
On 09/17/2015 09:55 AM, Jens Axboe wrote: > On 09/17/2015 09:50 AM, Ming Lei wrote: >> On Thu, Sep 17, 2015 at 11:19 PM, Jens Axboe <axboe@kernel.dk> wrote: >>> On 09/17/2015 09:13 AM, Ming Lei wrote: >>>> >>>> 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). >>> >>> >>> I'd be curious how this compares to before we did the splitting, not >>> exceeding the limits through bio_add_page() instead? >> >> Let me show these test results: >> >> ---------------------------------------------------------------------------------- >> >> kernel | throught >> ---------------------------------------------------------------------------------- >> >> 4.3.0-rc1-next-20150916 | bw=12227MB/s, iops=12227 >> ---------------------------------------------------------------------------------- >> >> 4.3.0-rc1-next-20150916 with patch | bw=21011MB/s, iops=21011 >> ---------------------------------------------------------------------------------- >> >> v4.2 | >> bw=18959MB/s, iops=18958 >> ---------------------------------------------------------------------------------- >> >> >> So from the above, looks this patch is kind of fix for performance >> regression >> introduced by 54efd50bfd(block: make generic_make_request handle >> arbitrarily sized bios), :-) > > So that's 1MB user IO, and 16KB device limit, correct? If that is the > case, then the results make sense. And looks like we're still ahead of > the older bio_add_page() approach, which is what I mostly cared about. > Thanks! I'll apply this for -rc2. Hand applied, as it didn't apply with the blk-merge.c warning fix at all (against for-linus). Please double check: http://git.kernel.dk/cgit/linux-block/commit/?h=for-linus&id=52cc6eead9095e2faf2ec7afc013aa3af1f01ac5 -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Ming Lei <ming.lei@canonical.com> |
|---|---|
| Date | 2015-09-17 18:10 +0200 |
| Message-ID | <q9JV2-bo-63@gated-at.bofh.it> |
| In reply to | #1227156 |
On Thu, Sep 17, 2015 at 11:55 PM, Jens Axboe <axboe@kernel.dk> wrote: > On 09/17/2015 09:50 AM, Ming Lei wrote: >> >> On Thu, Sep 17, 2015 at 11:19 PM, Jens Axboe <axboe@kernel.dk> wrote: >>> >>> On 09/17/2015 09:13 AM, Ming Lei wrote: >>>> >>>> >>>> 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). >>> >>> >>> >>> I'd be curious how this compares to before we did the splitting, not >>> exceeding the limits through bio_add_page() instead? >> >> >> Let me show these test results: >> >> >> ---------------------------------------------------------------------------------- >> kernel | throught >> >> ---------------------------------------------------------------------------------- >> 4.3.0-rc1-next-20150916 | bw=12227MB/s, iops=12227 >> >> ---------------------------------------------------------------------------------- >> 4.3.0-rc1-next-20150916 with patch | bw=21011MB/s, iops=21011 >> >> ---------------------------------------------------------------------------------- >> v4.2 | >> bw=18959MB/s, iops=18958 >> >> ---------------------------------------------------------------------------------- >> >> So from the above, looks this patch is kind of fix for performance >> regression >> introduced by 54efd50bfd(block: make generic_make_request handle >> arbitrarily sized bios), :-) > > > So that's 1MB user IO, and 16KB device limit, correct? If that is the case, Yes, exactly, just for showing 'improvement' from the patch by setting the limit, ;-) > then the results make sense. And looks like we're still ahead of the older > bio_add_page() approach, which is what I mostly cared about. Thanks! I'll > apply this for -rc2. > > -- > Jens Axboe > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Ming Lei <ming.lei@canonical.com> |
|---|---|
| Date | 2015-09-17 18:00 +0200 |
| Message-ID | <q9JLk-8c4-13@gated-at.bofh.it> |
| In reply to | #1227107 |
On Thu, Sep 17, 2015 at 11:19 PM, Jens Axboe <axboe@kernel.dk> wrote: > On 09/17/2015 09:13 AM, Ming Lei wrote: >> >> 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). > > > I'd be curious how this compares to before we did the splitting, not > exceeding the limits through bio_add_page() instead? Let me show these test results: ---------------------------------------------------------------------------------- kernel | throught ---------------------------------------------------------------------------------- 4.3.0-rc1-next-20150916 | bw=12227MB/s, iops=12227 ---------------------------------------------------------------------------------- 4.3.0-rc1-next-20150916 with patch | bw=21011MB/s, iops=21011 ---------------------------------------------------------------------------------- v4.2 | bw=18959MB/s, iops=18958 ---------------------------------------------------------------------------------- So from the above, looks this patch is kind of fix for performance regression introduced by 54efd50bfd(block: make generic_make_request handle arbitrarily sized bios), :-) Thanks, -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web