On Mon, Jun 26, 2017 at 02:27:24PM -0700, Omar Sandoval wrote:
[...]
> > +
> > + while kill -0 $! 2>/dev/null; do
> > + echo 0 > "/sys/bus/pci/devices/${pdev}/enable"
> > + sleep .2
> > + echo 1 > "/sys/bus/pci/devices/${pdev}/enable"
>
> Test looks good, but one qu
On Mon, Jun 26, 2017 at 08:09:59PM +0800, Ming Lei wrote:
> bio_for_each_segment_all(bvec, bio, i) {
> - org_vec = bio_orig->bi_io_vec + i + start;
> -
> - if (bvec->bv_page == org_vec->bv_page)
> - continue;
> + orig_vec = bio_iter_iove
> Il giorno 19 giu 2017, alle ore 13:43, Paolo Valente
> ha scritto:
>
> This commit fixes a bug triggered by a non-trivial sequence of
> events. These events are briefly described in the next two
> paragraphs. The impatiens, or those who are familiar with queue
> merging and splitting, can jum
On 06/26/2017 09:53 PM, Fengguang Wu wrote:
> Greetings,
>
> Sorry the report is a bit late, this bug looks still active:
>
First I've heard about it!
> [ 36.037364] sector 2, nr/cnr 0/2
> [ 36.037367] bio 88001af84e80, biotail 88001af84e80, len 0
> [ 36.037367] bio 880
Add a regression testing for loop device. when an unbound device
be close that take too long time. kernel will consume serveral orders
of magnitude more wall time than it does for a mounted device.
Signed-off-by: James Wang
---
tests/loop/002 | 63
On 06/27/2017 02:58 AM, Omar Sandoval wrote:
> Hi, James, thanks for sending this in. Sorry for the delay, I've been
> out of the office for a couple of weeks. A few comments below.
>
> On Thu, Jun 08, 2017 at 08:28:12PM +0800, James Wang wrote:
>> Add a regression testing for loop device. when a
On Mon, Jun 26 2017, Javier González wrote:
> Hi Matias,
>
> Here you have the pblk patchset for this window.
>
> Apart from small fixes for LightNVM core and pblk, there are three
> relevant changes:
>
> - Metadata for each line is no longer issued on a separate workqueue,
>but instead, al
On 06/26/2017 03:29 PM, Omar Sandoval wrote:
> On Mon, Jun 26, 2017 at 08:25:36AM -0600, Jens Axboe wrote:
>> On 06/26/2017 08:06 AM, Johannes Thumshirn wrote:
>>> On Fri, Jun 23, 2017 at 09:36:14AM -0600, Jens Axboe wrote:
On 06/23/2017 08:29 AM, Johannes Thumshirn wrote:
> From: Omar San
On Fri, Jun 23, 2017 at 04:29:50PM +0200, Johannes Thumshirn wrote:
> Add two helpers to check whether a device is attached via PCI and to get the
> PCI device from a TEST_DEV
>
> Signed-off-by: Johannes Thumshirn
> ---
> common/rc | 15 +++
> 1 file changed, 15 insertions(+)
>
> di
On Mon, Jun 26, 2017 at 08:25:36AM -0600, Jens Axboe wrote:
> On 06/26/2017 08:06 AM, Johannes Thumshirn wrote:
> > On Fri, Jun 23, 2017 at 09:36:14AM -0600, Jens Axboe wrote:
> >> On 06/23/2017 08:29 AM, Johannes Thumshirn wrote:
> >>> From: Omar Sandoval
> >>>
> >>> This test-case performs I/O w
On Fri, Jun 23, 2017 at 04:29:51PM +0200, Johannes Thumshirn wrote:
> From: Omar Sandoval
>
> This test-case performs I/O with fio while doing PCI disable/enable
> cycles.
>
> In the results we don't care for I/O errors but for hiccups in dmesg only.
>
> Signed-off-by: Johannes Thumshirn
> ---
On 06/26/2017 03:04 PM, Omar Sandoval wrote:
> On Mon, Jun 26, 2017 at 03:02:55PM -0600, Jens Axboe wrote:
>> On 06/26/2017 02:45 PM, Omar Sandoval wrote:
>>> On Wed, Jun 21, 2017 at 09:22:47AM -0600, Jens Axboe wrote:
Hi Omar,
Two changes here:
- block/006 wants to use the
On Mon, Jun 26, 2017 at 03:02:55PM -0600, Jens Axboe wrote:
> On 06/26/2017 02:45 PM, Omar Sandoval wrote:
> > On Wed, Jun 21, 2017 at 09:22:47AM -0600, Jens Axboe wrote:
> >> Hi Omar,
> >>
> >> Two changes here:
> >>
> >> - block/006 wants to use the iops results, but it isn't using _fio_perf.
> >
On 06/26/2017 02:45 PM, Omar Sandoval wrote:
> On Wed, Jun 21, 2017 at 09:22:47AM -0600, Jens Axboe wrote:
>> Hi Omar,
>>
>> Two changes here:
>>
>> - block/006 wants to use the iops results, but it isn't using _fio_perf.
>> - Add block/010 to test for shared vs non-shared tags performance.
>>
>>
>
On Mon, Jun 26, 2017 at 12:43:27PM -0400, Martin K. Petersen wrote:
>
> Christoph,
>
> > ping?
>
> Looks good to me. I'll queue it up for 4.13 as soon as Linus has pulled
> in the ata bits.
I can route it through libata tree w/ your ack if that's more convenient.
Thanks.
--
tejun
On Wed, Jun 21, 2017 at 09:22:47AM -0600, Jens Axboe wrote:
> Hi Omar,
>
> Two changes here:
>
> - block/006 wants to use the iops results, but it isn't using _fio_perf.
> - Add block/010 to test for shared vs non-shared tags performance.
>
>
> https://github.com/axboe/blktests.git axboe
>
>
On Fri, Jun 23, 2017 at 10:14:48AM +0200, Johannes Thumshirn wrote:
> Don't require scsi_debug but check if TEST_DEV is a SCSI device and use it
> instead.
>
> Signed-off-by: Johannes Thumshirn
> ---
> tests/sg/001 | 8 +++-
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a
On 06/26/2017 01:36 PM, Andreas Dilger wrote:
> On Jun 26, 2017, at 7:56 AM, Jens Axboe wrote:
>>
>> On 06/26/2017 03:59 AM, Christoph Hellwig wrote:
>>> Looks mostly good,
>>>
>>> but two nit-picks:
>>>
>>> - can we keep a module option to disable streams, or in fact for
>>> now maybe to explic
On Jun 26, 2017, at 7:56 AM, Jens Axboe wrote:
>
> On 06/26/2017 03:59 AM, Christoph Hellwig wrote:
>> Looks mostly good,
>>
>> but two nit-picks:
>>
>> - can we keep a module option to disable streams, or in fact for
>> now maybe to explicitly enable it? I expect this to be interesting
>>
Hi, James, thanks for sending this in. Sorry for the delay, I've been
out of the office for a couple of weeks. A few comments below.
On Thu, Jun 08, 2017 at 08:28:12PM +0800, James Wang wrote:
> Add a regression testing for loop device. when an unbound device
> be close that take too long time. ke
On Mon, Jun 26, 2017 at 01:58:32PM -0400, jlay...@redhat.com wrote:
> On Mon, 2017-06-26 at 08:22 -0700, Darrick J. Wong wrote:
> > On Fri, Jun 16, 2017 at 03:34:26PM -0400, Jeff Layton wrote:
> > > Just check and advance the data errseq_t in struct file before
> > > before returning from fsync on
On Mon, Jun 26, 2017 at 08:09:57PM +0800, Ming Lei wrote:
> Commit 17347cec15f919901c90(Btrfs: change how we iterate bios in endio)
> mentioned that for dio the submitted bio may be fast cloned, we
> can't access the bvec table directly for a cloned bio, so use
> bio_get_first_bvec() to retrieve th
On 06/26/2017 11:52 AM, Martin K. Petersen wrote:
>
> Christoph,
>
>> - can we keep a module option to disable streams, or in fact for
>>now maybe to explicitly enable it? I expect this to be interesting
>>at least for the first devices that implement it. Also given that
>>it needs
On Mon, 2017-06-26 at 08:22 -0700, Darrick J. Wong wrote:
> On Fri, Jun 16, 2017 at 03:34:26PM -0400, Jeff Layton wrote:
> > Just check and advance the data errseq_t in struct file before
> > before returning from fsync on normal files. Internal filemap_*
> > callers are left as-is.
> >
> > Signed
Christoph,
> - can we keep a module option to disable streams, or in fact for
>now maybe to explicitly enable it? I expect this to be interesting
>at least for the first devices that implement it. Also given that
>it needs to be explicitly enabled I would expect some overhead of
>
On 06/26/2017 06:09 AM, Ming Lei wrote:
> Hi,
>
> This patchset brings multipage bvec into block layer:
>
> 1) what is multipage bvec?
>
> Multipage bvecs means that one 'struct bio_bvec' can hold
> multiple pages which are physically contiguous instead
> of one single page used in linux kernel
On Mon, Jun 26, 2017 at 08:09:43PM +0800, Ming Lei wrote:
> btrfs: avoid access to .bi_vcnt directly
> btrfs: avoid to access bvec table directly for a cloned bio
> btrfs: comment on direct access bvec table
> btrfs: use bvec_get_last_page to get bio's last page
> fs/btrfs: convert to bio
Christoph,
> ping?
Looks good to me. I'll queue it up for 4.13 as soon as Linus has pulled
in the ata bits.
--
Martin K. Petersen Oracle Linux Engineering
On 06/26/2017 10:09 AM, Darrick J. Wong wrote:
> On Mon, Jun 26, 2017 at 07:55:27AM -0600, Jens Axboe wrote:
>> On 06/26/2017 03:51 AM, Christoph Hellwig wrote:
>>> Please document the userspace API (added linux-api and linux-man
>>> to CC for sugestions), especially including the odd effects of th
On Mon, Jun 26, 2017 at 07:55:27AM -0600, Jens Axboe wrote:
> On 06/26/2017 03:51 AM, Christoph Hellwig wrote:
> > Please document the userspace API (added linux-api and linux-man
> > to CC for sugestions), especially including the odd effects of the
> > per-inode settings.
>
> Of course, I'll sen
Reviewed-by: Andreas Dilger
Reviewed-by: Martin K. Petersen
Reviewed-by: Darrick J. Wong
Signed-off-by: Jens Axboe
---
fs/xfs/xfs_aops.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 76b6f988e2fa..ceb124bd8f80 100644
--- a/fs/xfs/xfs_aops.c
+
No functional changes in this patch, we just set aside 3 bits
in the bio/request flags, which can be used to hold a WRITE_LIFE_*
life time hint.
Ensure that we don't merge requests that have different life time
hints assigned to them.
Reviewed-by: Martin K. Petersen
Reviewed-by: Christoph Hellwi
This adds support for Directives in NVMe, particular for the Streams
directive. Support for Directives is a new feature in NVMe 1.3. It
allows a user to pass in information about where to store the data, so
that it the device can do so most effiently. If an application is
managing and writing data
Reviewed-by: Andreas Dilger
Signed-off-by: Chris Mason
Reviewed-by: Martin K. Petersen
Signed-off-by: Jens Axboe
---
fs/btrfs/extent_io.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 19eedf2e630b..fde09c6005fc 100644
--- a/fs/btrfs/exten
Reviewed-by: Andreas Dilger
Reviewed-by: Martin K. Petersen
Signed-off-by: Jens Axboe
---
fs/buffer.c | 14 +-
fs/mpage.c | 1 +
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c
index 306b720f7383..307b508c9d60 100644
--- a/fs/buffer.c
+++
Reviewed-by: Andreas Dilger
Reviewed-by: Martin K. Petersen
Signed-off-by: Jens Axboe
---
fs/block_dev.c | 2 ++
fs/direct-io.c | 2 ++
fs/iomap.c | 5 -
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index dd91c99e9ba0..30e1fb65c2fa 100644
A new iteration of this patchset, previously known as write streams.
As before, this patchset aims at enabling applications split up
writes into separate streams, based on the perceived life time
of the data written. This is useful for a variety of reasons:
- For NVMe, this feature is ratified and
Reviewed-by: Andreas Dilger
Reviewed-by: Martin K. Petersen
Signed-off-by: Jens Axboe
---
fs/ext4/page-io.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 930ca0fc9a0f..02e5a7b8d60b 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -350
Define a set of write life time hints:
RWH_WRITE_LIFE_NOT_SET No hint information set
RWH_WRITE_LIFE_NONE No hints about write life time
RWH_WRITE_LIFE_SHORTData written has a short life time
RWH_WRITE_LIFE_MEDIUM Data written has a medium life time
RWH_WRITE_LIFE_LONG Data written
Useful to verify that things are working the way they should.
Reading the file will return number of kb written with each
write hint. Writing the file will reset the statistics. No care
is taken to ensure that we don't race on updates.
Drivers will write to q->write_hints[] if they handle a given
On Fri, Jun 16, 2017 at 03:34:26PM -0400, Jeff Layton wrote:
> Just check and advance the data errseq_t in struct file before
> before returning from fsync on normal files. Internal filemap_*
> callers are left as-is.
>
> Signed-off-by: Jeff Layton
> ---
> fs/xfs/xfs_file.c | 15 +++
On Sat, 2017-06-24 at 09:16 -0400, Jeff Layton wrote:
> On Sat, 2017-06-24 at 04:59 -0700, Christoph Hellwig wrote:
> > On Tue, Jun 20, 2017 at 01:44:44PM -0400, Jeff Layton wrote:
> > > In order to query for errors with errseq_t, you need a previously-
> > > sampled point from which to check. When
On 06/26/2017 08:06 AM, Johannes Thumshirn wrote:
> On Fri, Jun 23, 2017 at 09:36:14AM -0600, Jens Axboe wrote:
>> On 06/23/2017 08:29 AM, Johannes Thumshirn wrote:
>>> From: Omar Sandoval
>>>
>>> This test-case performs I/O with fio while doing PCI disable/enable
>>> cycles.
>>>
>>> In the result
On 06/26/2017 03:56 AM, Christoph Hellwig wrote:
>> +ioend->io_bio->bi_opf |=
>> write_hint_to_opf(inode_write_hint(ioend->io_inode));
>
> Too long line again.
>
> I think simply adding an inode_hint_to_opf() flag would make the various
> opencoded versions of the above call a little easier
On 06/26/2017 03:55 AM, Christoph Hellwig wrote:
>> @@ -385,6 +385,8 @@ dio_bio_alloc(struct dio *dio, struct dio_submit *sdio,
>> else
>> bio->bi_end_io = dio_bio_end_io;
>>
>> +bio->bi_opf |= write_hint_to_opf(iocb_write_hint(dio->iocb));
>> +
>> sdio->bio = bio;
>>
On Fri, Jun 23, 2017 at 09:36:14AM -0600, Jens Axboe wrote:
> On 06/23/2017 08:29 AM, Johannes Thumshirn wrote:
> > From: Omar Sandoval
> >
> > This test-case performs I/O with fio while doing PCI disable/enable
> > cycles.
> >
> > In the results we don't care for I/O errors but for hiccups in d
On 06/26/2017 03:59 AM, Christoph Hellwig wrote:
> Looks mostly good,
>
> but two nit-picks:
>
> - can we keep a module option to disable streams, or in fact for
>now maybe to explicitly enable it? I expect this to be interesting
>at least for the first devices that implement it. Also
On 06/26/2017 03:51 AM, Christoph Hellwig wrote:
> Please document the userspace API (added linux-api and linux-man
> to CC for sugestions), especially including the odd effects of the
> per-inode settings.
Of course, I'll send in a diff for the fcntl(2) man page.
> Also I would highly recommend
On Fri, Jun 16, 2017 at 03:34:26PM -0400, Jeff Layton wrote:
> Just check and advance the data errseq_t in struct file before
> before returning from fsync on normal files. Internal filemap_*
> callers are left as-is.
>
Looks good.
Reviewed-by: Carlos Maiolino
> Signed-off-by: Jeff Layton
> -
Introduce BVEC_ITER_ALL_INIT for iterating one bio
from start to end.
Signed-off-by: Ming Lei
---
include/linux/bvec.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 89b65b82d98f..162ca7caf510 100644
--- a/include/linux/bvec.h
+++ b
We will support multipage bvec soon, so initialize bvec
table using the standardy way instead of writing the
talbe directly. Otherwise it won't work any more once
multipage bvec is enabled.
Cc: Shaohua Li
Cc: linux-r...@vger.kernel.org
Signed-off-by: Ming Lei
---
drivers/md/raid1.c | 27 +++
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
Cc: linux-bt...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/btrfs/compression.c | 4
fs/btrfs/inode.c | 12
2 files changed, 16 insertions(+)
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 2c0b7b5
Inside sync_request_write(), .bi_vcnt is written after this bio
is reseted, this way won't work any more after multipage bvec
is enabled.
So reset_bvec_table() is introduced for re-add these pages into
bio, then .bi_vcnt needn't to be touched any more.
Cc: Shaohua Li
Cc: linux-r...@vger.kernel.o
BTRFS uses bio->bi_vcnt to figure out page numbers, this
way becomes not correct once we start to enable multipage
bvec.
So use bio_for_each_segment_all() to do that instead.
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
Cc: linux-bt...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/btrfs
Commit 17347cec15f919901c90(Btrfs: change how we iterate bios in endio)
mentioned that for dio the submitted bio may be fast cloned, we
can't access the bvec table directly for a cloned bio, so use
bio_get_first_bvec() to retrieve the 1st bvec.
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
C
This patch clarifies the fact that even though both
bio_for_each_segment() and bio_for_each_segment_all()
are named as _segment/_segment_all, they still return
one page in each vector, instead of real segment(multipage bvec).
With comming multipage bvec, both the two helpers
are capable of returni
As we need to support multipage bvecs, so don't access bio->bi_io_vec
in copy_to_high_bio_irq(), and just use the standard iterator
to do that.
Signed-off-by: Ming Lei
---
block/bounce.c | 16 +++-
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/block/bounce.c b/block/
This patch introduces helpers which are suffixed with _mp
and _sp for the multipage bvec/segment support.
The helpers with _mp suffix are the interfaces for treating
one bvec/segment as real multipage one, for example, .bv_len
is the total length of the multipage segment.
The helpers with _sp suf
This patch implements singlepage version of the following
3 helpers:
- bvec_iter_offset_sp()
- bvec_iter_len_sp()
- bvec_iter_page_sp()
So that one multipage bvec can be splited to singlepage
bvec, and make users of current bvec iterator happy.
Signed-off-by: Ming Lei
---
This helper is used to iterate multipage bvec and it is
required in bio_clone().
Signed-off-by: Ming Lei
---
include/linux/bio.h | 39 ++-
include/linux/bvec.h | 37 -
2 files changed, 66 insertions(+), 10 deletions(-)
dif
It is enough to check and compute bio->bi_seg_front_size just
after the 1st segment is found, but current code checks that
for each bvec, which is inefficient.
This patch follows the way in __blk_recalc_rq_segments()
for computing bio->bi_seg_front_size, and it is more efficient
and code becomes
When merging one bvec into segment, if the bvec is too big
to merge, current policy is to move the whole bvec into another
new segment.
This patchset changes the policy into trying to maximize size of
front segments, that means in above situation, part of bvec
is merged into current segment, and t
Firstly it is more efficient to use bio_for_each_segment_mp()
in both blk_bio_segment_split() and __blk_recalc_rq_segments()
to compute how many segments there are in the bio.
Secondaly once bio_for_each_segment_mp() is used, the bvec
may need to be splitted because its length can be very long
and
Preparing for supporting multipage bvec.
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
Cc: linux-bt...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/btrfs/compression.c | 5 -
fs/btrfs/extent_io.c | 8 ++--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs
In bio_check_pages_dirty(), bvec->bv_page is used as flag
for marking if the page has been dirtied & released, and if
no, it will be dirtied in deferred workqueue.
With multipage bvec, we can't do that any more, so change
the logic into checking all pages in one mp bvec, and only
release all these
Cc: Shaohua Li
Cc: linux-r...@vger.kernel.org
Signed-off-by: Ming Lei
---
drivers/md/raid1.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 835c42396861..ca4b9ff8d39b 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@
The bio is always freed after running crypt_free_buffer_pages(),
so it isn't necessary to clear the bv->bv_page.
Cc: Mike Snitzer
Cc:dm-de...@redhat.com
Signed-off-by: Ming Lei
---
drivers/md/dm-crypt.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-cry
Cc: Steven Whitehouse
Cc: Bob Peterson
Cc: cluster-de...@redhat.com
Signed-off-by: Ming Lei
---
fs/gfs2/lops.c| 3 ++-
fs/gfs2/meta_io.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index d62939f00d53..294f1926d9be 100644
--- a/fs/g
Cc: Boaz Harrosh
Signed-off-by: Ming Lei
---
fs/exofs/ore.c | 3 ++-
fs/exofs/ore_raid.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
index 8bb72807e70d..38a7d8bfdd4c 100644
--- a/fs/exofs/ore.c
+++ b/fs/exofs/ore.c
@@ -406,8 +406,9
Signed-off-by: Ming Lei
---
fs/iomap.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/iomap.c b/fs/iomap.c
index c71a64b97fba..4319284c1fbd 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -696,8 +696,9 @@ static void iomap_dio_bio_end_io(struct bio *bio)
} else {
Cc: Jaegeuk Kim
Cc: Chao Yu
Cc: linux-f2fs-de...@lists.sourceforge.net
Signed-off-by: Ming Lei
---
fs/f2fs/data.c | 9 ++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 622c44a1be78..57d5a2760bf1 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2
Cc: linux-bca...@vger.kernel.org
Signed-off-by: Ming Lei
---
drivers/md/bcache/btree.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
index 3da595ae565b..74cbb7387dc5 100644
--- a/drivers/md/bcache/btree.c
+++ b/drivers/
Signed-off-by: Ming Lei
---
fs/crypto/bio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/crypto/bio.c b/fs/crypto/bio.c
index 6181e9526860..d5516ed19166 100644
--- a/fs/crypto/bio.c
+++ b/fs/crypto/bio.c
@@ -36,8 +36,9 @@ static void completion_pages(struct work_struct
Signed-off-by: Ming Lei
---
fs/direct-io.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/direct-io.c b/fs/direct-io.c
index c87077d1dc33..a139b3bbad8e 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -489,7 +489,9 @@ static blk_status_t dio_bio_complete(struct dio *
This patch pulls the trigger for multipage bvecs.
Now any request queue which supports queue cluster
will see multipage bvecs.
Signed-off-by: Ming Lei
---
block/bio.c | 13 +
1 file changed, 13 insertions(+)
diff --git a/block/bio.c b/block/bio.c
index c460888f14b5..436305cde045 10
Cc: Chris Mason
Cc: Josef Bacik
Cc: David Sterba
Cc: linux-bt...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/btrfs/compression.c | 3 ++-
fs/btrfs/disk-io.c | 3 ++-
fs/btrfs/extent_io.c | 12
fs/btrfs/inode.c | 6 --
fs/btrfs/raid56.c | 6 --
5 fil
Under some situations, such as block direct I/O, we can't use
bio_add_page() for merging pages into multipage bvec, so
a new function is implemented for converting page array into one
segment array, then these cases can benefit from multipage bvec
too.
Signed-off-by: Ming Lei
---
block/bio.c | 5
Cc: "Theodore Ts'o"
Cc: Andreas Dilger
Cc: linux-e...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/ext4/page-io.c | 3 ++-
fs/ext4/readpage.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 930ca0fc9a0f..0e59404fc530 100644
Cc: "Darrick J. Wong"
Cc: linux-...@vger.kernel.org
Signed-off-by: Ming Lei
---
fs/xfs/xfs_aops.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 11ef989b8629..621efe71c70a 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@
Signed-off-by: Ming Lei
---
fs/mpage.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/mpage.c b/fs/mpage.c
index 0da38f401564..bdb4692ae30c 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -46,9 +46,10 @@
static void mpage_end_io(struct bio *bio)
{
struct bio_vec *b
Signed-off-by: Ming Lei
---
fs/block_dev.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index a57c26bcb970..d82e43bd8e82 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -209,6 +209,7 @@ __blkdev_direct_IO_simple(struct kiocb *iocb,
Cc: Mike Snitzer
Cc:dm-de...@redhat.com
Signed-off-by: Ming Lei
---
drivers/md/dm-crypt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 664ba3504f48..0f2f44a73a32 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-cr
Signed-off-by: Ming Lei
---
block/bio.c | 17 +++--
block/blk-zoned.c | 5 +++--
block/bounce.c| 6 --
3 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/block/bio.c b/block/bio.c
index 22e5deec7ec7..c460888f14b5 100644
--- a/block/bio.c
+++ b/block/bio.c
Once multipage bvec is enabled, the last bvec may include
more than one page, this patch use bvec_get_last_page()
to truncate the bio.
Signed-off-by: Ming Lei
---
fs/buffer.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c
index 1910f539770b.
It is more efficient to use bio_for_each_segment_mp()
for mapping sg, meantime we have to consider splitting
multipage bvec as done in blk_bio_segment_split().
Signed-off-by: Ming Lei
---
block/blk-merge.c | 72 +++
1 file changed, 52 insertion
BTRFS and guard_bio_eod() need to get the last page, so introduce
this helper to make them happy.
Signed-off-by: Ming Lei
---
include/linux/bvec.h | 14 ++
1 file changed, 14 insertions(+)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 7addceea9828..6673e3c0b7eb 1006
This patches introduce bio_for_each_segment_all_sp() and
bio_for_each_segment_all_mp().
bio_for_each_segment_all_sp() is for replacing bio_for_each_segment_all()
in case that the returned bvec has to be single page bvec.
bio_for_each_segment_all_mp() is for replacing bio_for_each_segment_all()
in
This helper can be used to iterate each singlepage bvec
from one multipage bvec.
Signed-off-by: Ming Lei
---
include/linux/bvec.h | 14 ++
1 file changed, 14 insertions(+)
diff --git a/include/linux/bvec.h b/include/linux/bvec.h
index 5c51c58fe202..7addceea9828 100644
--- a/include/
In this case, 'sectors' can't be zero at all, so remove the check
and let the bio be splitted.
Signed-off-by: Ming Lei
---
block/blk-merge.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/block/blk-merge.c b/block/blk-merge.c
index bf7a0fa0199f..c6fcc49b9aea 100644
--- a/
We will support multipage bvecs in the future, so change to
iterator way for getting bv_page of bvec from original bio.
Signed-off-by: Ming Lei
---
block/bounce.c | 13 +++--
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/block/bounce.c b/block/bounce.c
index 916ee9a9a216.
For BIO based DM, some targets aren't ready for dealing with
bigger incoming bio than 1Mbyte, such as crypt target.
Cc: Mike Snitzer
Cc:dm-de...@redhat.com
Signed-off-by: Ming Lei
---
drivers/md/dm.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/md/dm.c
bio_iov_iter_get_pages() used unused bvec spaces for
storing page pointer array temporarily, and this patch
comments on this usage wrt. multipage bvec support.
Signed-off-by: Ming Lei
---
block/bio.c | 4
1 file changed, 4 insertions(+)
diff --git a/block/bio.c b/block/bio.c
index a5db117e
This patch adds comment on usage of bio_alloc_pages().
Signed-off-by: Ming Lei
---
block/bio.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/bio.c b/block/bio.c
index 89a51bd49ab7..a5db117e8dfa 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -972,7 +972,9 @@ EXPORT_S
Looks all are safe after multipage bvec is supported.
Cc: linux-bca...@vger.kernel.org
Signed-off-by: Ming Lei
---
drivers/md/bcache/btree.c | 1 +
drivers/md/bcache/super.c | 6 ++
drivers/md/bcache/util.c | 7 +++
3 files changed, 14 insertions(+)
diff --git a/drivers/md/bcache/btree
Cc: Jaegeuk Kim
Cc: Chao Yu
Cc: linux-f2fs-de...@lists.sourceforge.net
Signed-off-by: Ming Lei
---
fs/f2fs/data.c | 4
1 file changed, 4 insertions(+)
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 7697d03e8a98..622c44a1be78 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -56,6 +5
Cc: Andrew Morton
Cc: linux...@kvack.org
Signed-off-by: Ming Lei
---
mm/page_io.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/page_io.c b/mm/page_io.c
index b6c4ac388209..11c6f4a9a25b 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -43,6 +43,7 @@ static struct bio *get_swap_bio(gfp_
Signed-off-by: Ming Lei
---
fs/buffer.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/buffer.c b/fs/buffer.c
index 4d5d03b42e11..1910f539770b 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -3052,8 +3052,13 @@ static void end_bio_bh_io_sync(struct bio *bio)
void guar
Cc: "Rafael J. Wysocki"
Cc: linux...@vger.kernel.org
Signed-off-by: Ming Lei
---
kernel/power/swap.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 57d22571f306..aa52ccc03fcc 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -238
Signed-off-by: Ming Lei
---
drivers/block/loop.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 0de11444e317..88063ab17e9a 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -487,6 +487,11 @@ static int lo_rw_aio(struct loop
Hi,
This patchset brings multipage bvec into block layer:
1) what is multipage bvec?
Multipage bvecs means that one 'struct bio_bvec' can hold
multiple pages which are physically contiguous instead
of one single page used in linux kernel for long time.
2) why is multipage bvec introduced?
Kent
1 - 100 of 138 matches
Mail list logo