On Mon, Jul 08, 2019 at 06:29:57PM +0300, Konstantin Khlebnikov wrote:
> After commit 991f61fe7e1d ("Blk-throttle: reduce tail io latency when iops
> limit is enforced") wait time could be zero even if group is throttled and
> cannot issue requests right now. As a result throtl_select_dispatch() tu
Ping?
thanks,
liubo
On Thu, Jan 24, 2019 at 4:14 PM Liu Bo wrote:
>
> This set is to fix a hang case if blk-iolatency is in use.
>
> The 1st patch explains the hang problem with more details and provides
> a fix.
> The 2nd patch adds a warning for unexpected inflight counter.
On Thu, Jan 31, 2019 at 5:50 AM Jens Axboe wrote:
>
> On 1/31/19 2:26 AM, Jan Kara wrote:
> > Hi!
> >
> > On Thu 31-01-19 10:03:34, Xiaoguang Wang wrote:
> >>> Currently in blk_throtl_bio(), if one bio exceeds its throtl_grp's bps
> >>> or iops limit, this bio will be queued throtl_grp's throtl_se
On Wed, Jan 30, 2019 at 03:46:45AM +, Chaitanya Kulkarni wrote:
> Thanks for the test Liu, please see my inline comments.
>
> From: linux-block-ow...@vger.kernel.org
> on behalf of Liu Bo
> Sent: Tuesday, January 29, 2019 3:54 PM
> To: linux-block@vger.kernel.org
> Sub
On Fri, Jan 25, 2019 at 09:30:49AM +0100, Johannes Thumshirn wrote:
> On 25/01/2019 01:12, Liu Bo wrote:
> > In fact the hang can be easily reproduced by the below script,
> >
> > H=/sys/fs/cgroup/unified/
> > P=/sys/fs/cgroup/unified/test
> >
> > echo &quo
Add test for verifying io hang when enabling blk-iolatency after a few
IOs have been done.
This is a regression test for
"blk-iolatency: fix IO hang due to negative inflight counter".
Signed-off-by: Liu Bo
---
tests/block/022 | 42 ++
tests
As the prototype has been defined in "include/linux/blk-mq.h", the one
in "block/blk-mq.h" can be removed then.
Signed-off-by: Liu Bo
---
block/blk-mq.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/block/blk-mq.h b/block/blk-mq.h
index d943d46b0785..d0b3dd54ef8d 10
/dev/sdg
This fixes the problem by freezing the queue so that while
enabling/disabling iolatency, there is no inflight rq running.
Note that quiesce_queue is not needed as this only updating iolatency
configuration about which dispatching request_queue doesn'
This is to catch any unexpected negative value of inflight IO counter.
Signed-off-by: Liu Bo
---
block/blk-iolatency.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c
index 1893686a9c1f..2620baa1f699 100644
--- a/block/blk
.
Liu Bo (3):
blk-iolatency: fix IO hang due to negative inflight counter
Blk-iolatency: warn on negative inflight IO counter
blk-mq: remove duplicated definition of blk_mq_freeze_queue
block/blk-iolatency.c | 56 ---
block/blk-mq.h| 1 -
2
On Thu, Jan 24, 2019 at 10:11 AM Jens Axboe wrote:
>
> On 1/23/19 5:16 PM, Liu Bo wrote:
> > This set is to fix a hang case if blk-iolatency is in use.
> >
> > The 1st patch adds a warning for unexpected inflight counter.
> > The 2nd patch explains the hang problem
As the prototype has been defined in "include/linux/blk-mq.h", the one
in "block/blk-mq.h" can be removed then.
Signed-off-by: Liu Bo
---
block/blk-mq.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/block/blk-mq.h b/block/blk-mq.h
index d943d46b0785..d0b3dd54ef8d 10
This set is to fix a hang case if blk-iolatency is in use.
The 1st patch adds a warning for unexpected inflight counter.
The 2nd patch explains the hang problem with more details.
The 3nd patch is a cleanup of blk_mq_freeze_queue.
Liu Bo (3):
Blk-iolatency: warn on negative inflight IO counter
This is to catch any unexpected negative value of inflight IO counter.
Signed-off-by: Liu Bo
---
block/blk-iolatency.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/blk-iolatency.c b/block/blk-iolatency.c
index fc714ef402a6..7200f3189a84 100644
--- a/block/blk
/dev/sdg
This fixes the problem by freezing the queue do that while
enabling/disabling iolatency, there is no inflight rq running.
Note that quiesce_queue is not needed as this only updating iolatency
configuration about which dispatching request_queue doesn'
On Fri, Jan 18, 2019 at 5:51 PM Jens Axboe wrote:
>
> On 1/18/19 6:39 PM, Liu Bo wrote:
> > On Fri, Jan 18, 2019 at 8:43 AM Josef Bacik wrote:
> >>
> >> On Fri, Jan 18, 2019 at 09:28:06AM -0700, Jens Axboe wrote:
> >>> On 1/18/19 9:21 AM, Josef Bacik w
On Fri, Jan 18, 2019 at 8:43 AM Josef Bacik wrote:
>
> On Fri, Jan 18, 2019 at 09:28:06AM -0700, Jens Axboe wrote:
> > On 1/18/19 9:21 AM, Josef Bacik wrote:
> > > On Fri, Jan 18, 2019 at 05:58:18AM -0700, Jens Axboe wrote:
> > >> On 1/14/19 12:21 PM, Liu Bo wro
ping?
thanks,
liubo
On Mon, Jan 14, 2019 at 11:25 AM Liu Bo wrote:
>
> Our test reported the following stack, and vmcore showed that
> ->inflight counter is -1.
>
> [c9003fcc38d0] __schedule at 8173d95d
> [c9003fcc3958] schedule at 8173de2
o that
iolatency_grp became available when the IO did the endio.
3) the ->inflight counter is decreased from 0 to -1.
This uses atomic_dec_is_positive() instead to avoid the negative
inflight counter.
Signed-off-by: Liu Bo
---
block/blk-iolatency.c | 10 --
1 file changed, 8 inserti
On Mon, Dec 17, 2018 at 1:28 PM Dennis Zhou wrote:
>
> On Mon, Dec 17, 2018 at 11:42:28AM -0800, Liu Bo wrote:
> > On Mon, Dec 17, 2018 at 8:04 AM Dennis Zhou wrote:
> > >
> > > The blk-iolatency controller measures the time from rq_qos_throttle() to
> > >
On Mon, Dec 17, 2018 at 8:04 AM Dennis Zhou wrote:
>
> The blk-iolatency controller measures the time from rq_qos_throttle() to
> rq_qos_done_bio() and attributes this time to the first bio that needs
> to create the request. This means if a bio is plug-mergeable or
> bio-mergeable, it gets to byp
ping?
thanks,
liubo
On Mon, Aug 20, 2018 at 2:21 PM, Liu Bo wrote:
> As rbtree has native support of caching leftmost node,
> i.e. rb_root_cached, no need to do the caching by ourselves.
>
> Signed-off-by: Liu Bo
> ---
> block/b
As rbtree has native support of caching leftmost node,
i.e. rb_root_cached, no need to do the caching by ourselves.
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 41 +++--
1 file changed, 15 insertions(+), 26 deletions(-)
diff --git a/block/blk-throttle.c
99.50th=[11994], 99.90th=[12125], 99.95th=[12125],
| 99.99th=[12387]
Signed-off-by: Liu Bo
---
Rebase against branch for-4.19/block.
block/blk-throttle.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index caaabbe8a7a5..a3eed
On Thu, Aug 9, 2018 at 10:22 AM, Jens Axboe wrote:
> On 7/20/18 6:29 PM, Liu Bo wrote:
>> When an application's iops has exceeded its cgroup's iops limit, surely it
>> is throttled and kernel will set a timer for dispatching, thus IO latency
>> includes the del
ping?
On Fri, Jul 20, 2018 at 5:29 PM, Liu Bo wrote:
> When an application's iops has exceeded its cgroup's iops limit, surely it
> is throttled and kernel will set a timer for dispatching, thus IO latency
> includes the delay.
>
> However, the dispatch delay which i
99.50th=[11994], 99.90th=[12125], 99.95th=[12125],
| 99.99th=[12387]
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 26ddbe5286f8..3ca9a98748be 100644
--- a/block/blk-throttl
When only io.max is in use, tg->target_latency is set to the default
value, if that's the case, bad_bio_cnt is not checking at all, so it
makes no sense to check latency and do bad_bio_cnt counting in
blk_throtl_bio_endio().
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 5 +
tg_may_dispatch() uses @wait to retrieve how long the next bio can be
dispatched, but if it doesn't ask for that, it's OK for
tg_with_in_{bps,iops}_limit() to return immediately.
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 12
1 file changed, 8 insertions(+), 4
mbps knob can be reset
when power knob is off, e.g.
echo 0 > /config/nullb/a/power
echo 40 > /config/nullb/a/mbps
echo 1 > /config/nullb/a/power
So does other knobs under /config/nullb/a.
Signed-off-by: Liu Bo
---
drivers/block/null_blk.c | 1 +
1 file changed, 1 insertion(+)
dif
On Fri, Jun 29, 2018 at 02:46:27PM -0600, Jens Axboe wrote:
> On 6/29/18 2:43 PM, Liu Bo wrote:
> > On Fri, Jun 29, 2018 at 02:26:07PM -0600, Jens Axboe wrote:
> >> On 6/29/18 2:23 PM, Liu Bo wrote:
> >>> On Fri, Jun 29, 2018 at 02:00:01PM -0600, Jens Axboe wrote:
>
On Fri, Jun 29, 2018 at 02:26:07PM -0600, Jens Axboe wrote:
> On 6/29/18 2:23 PM, Liu Bo wrote:
> > On Fri, Jun 29, 2018 at 02:00:01PM -0600, Jens Axboe wrote:
> >> On 6/20/18 9:07 PM, Liu Bo wrote:
> >>> When a new tg is created, tg->bio_cnt_ret_time is 0, so if t
On Fri, Jun 29, 2018 at 02:00:01PM -0600, Jens Axboe wrote:
> On 6/20/18 9:07 PM, Liu Bo wrote:
> > When a new tg is created, tg->bio_cnt_ret_time is 0, so if the first
> > IO going thru this tg turns out to be a bad one, we fail to record it
> > in tg->bad_bio_
Hi Jens,
This one is kind of obvious, could you please also take it thru your tree?
thanks,
liubo
On Wed, Jun 20, 2018 at 8:07 PM, Liu Bo wrote:
> When a new tg is created, tg->bio_cnt_ret_time is 0, so if the first
> IO going thru this tg turns out to be a bad one, we fail to recor
Once one cgroup has io.low configured, @low_valid becomes true and other
cgroups won't switch it back whatsoever.
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 8bd5411
Since @blk_debugfs_root couldn't be configured dynamically, we can
save a few memory allocation if it's not there.
Signed-off-by: Liu Bo
---
kernel/trace/blktrace.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktra
When a new tg is created, tg->bio_cnt_ret_time is 0, so if the first
IO going thru this tg turns out to be a bad one, we fail to record it
in tg->bad_bio_cnt as
if (jiffies > bio_cnt_ret_time) {
tg->bad_bio_cnt /= 2;
}
Signed-off-by: Liu Bo
---
block/blk-throttle.c |
tg in throtl_select_dispatch is used first and then do check. Since tg
may be NULL, it has potential NULL pointer dereference risk. So fix
it.
Signed-off-by: Joseph Qi
Signed-off-by: Liu Bo
---
block/blk-throttle.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/blk
- The description of 'blocking' is missing in null_blk.txt
- The 'lightnvm' parameter has been removed in null_blk.c
This updates both in null_blk.txt.
Signed-off-by: Liu Bo
---
Documentation/block/null_blk.txt | 9 ++---
1 file changed, 6 insertions(+), 3 deleti
ounted, then it is split
> and resubmitted to the block throttle layer. It also has the flag
> BIO_THROTTLED but should not be counted again.
>
> So we add another flag BIO_THROTL_COUNTED to avoid double counted.
>
The patch looks good and safe to me.
Reviewed-by: Liu Bo
Tested-by: Liu Bo
Hi Jan,
On Thu, Jan 25, 2018 at 12:57:27PM +0100, Jan Kara wrote:
> Hello,
>
> this is about a problem I have identified last month and for which I still
> don't have good solution. Some discussion of the problem happened here [1]
> where also technical details are posted but culprit of the probl
Commit de1482974080
("blk-mq: introduce .get_budget and .put_budget in blk_mq_ops")
changes the function to return bool type, and then commit 1f460b63d4b3
("blk-mq: don't restart queue when .get_budget returns BLK_STS_RESOURCE")
changes it back to void, but the comment rem
duced in commit
9e0e252a048b ("badblocks: Add core badblock management code").
Signed-off-by: Liu Bo
Acked-by: Guoqing Jiang
---
block/badblocks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/badblocks.c b/block/badblocks.c
index 43c7116..91f7bcf 100
Hi Shaohua,
Given it's related to md, can you please take this thru your tree?
Thanks,
-liubo
On Wed, Sep 27, 2017 at 04:13:17PM -0600, Liu Bo wrote:
> MD's rdev_set_badblocks() expects that badblocks_set() returns 1 if
> badblocks are disabled, otherwise, rdev_set_badbloc
Please ignore this, I put the wrong ML.
Thanks,
-liubo
On Mon, Oct 09, 2017 at 11:38:09AM -0600, Liu Bo wrote:
> We've avoided data losing raid profile when doing balance, but it
> turns out that deleting a device could also result in the same
> problem.
>
> This fixes the
l the time
so their raid profile is persistent.
Reported-by: James Alandt
Signed-off-by: Liu Bo
---
fs/btrfs/volumes.c | 87 ++
1 file changed, 68 insertions(+), 19 deletions(-)
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 4a
On Thu, Sep 28, 2017 at 09:57:41AM +0800, Guoqing Jiang wrote:
>
>
> On 09/28/2017 06:13 AM, Liu Bo wrote:
> > MD's rdev_set_badblocks() expects that badblocks_set() returns 1 if
> > badblocks are disabled, otherwise, rdev_set_badblocks() will record
> > superblo
duced in commit
9e0e252a048b ("badblocks: Add core badblock management code").
Signed-off-by: Liu Bo
---
block/badblocks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/badblocks.c b/block/badblocks.c
index 43c7116..91f7bcf 100644
--- a/block/badblock
Hi,
While playing with btrfs on top of wb_throttle, an interesting thing
is that writeback from btrfs always falls into %rwb->wb_background
even if there're no other writers.
The peculiarity of btrfs is that, it owns the ability of mananging
disks so that it creates a private bdi stored in sb->s_
On Mon, Aug 28, 2017 at 11:45:31AM -0600, Liu Bo wrote:
> On Sun, Aug 27, 2017 at 11:14:20AM -0600, Jens Axboe wrote:
> > On 08/25/2017 06:14 PM, Liu Bo wrote:
> > > While using blk-wbt, sometimes sync writes are blocked by background
> > > writes, for example,
> &g
On Sun, Aug 27, 2017 at 11:14:20AM -0600, Jens Axboe wrote:
> On 08/25/2017 06:14 PM, Liu Bo wrote:
> > While using blk-wbt, sometimes sync writes are blocked by background
> > writes, for example,
> >
> > a) a background write reaches the (background) limit returned
ottled by the (max) limit returned by
get_limit().
Signed-off-by: Liu Bo
---
- Besides the above problem, it seems waitqueue_active() also requires
a smp_mb().
block/blk-wbt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index 6a9a0
On Wed, Aug 23, 2017 at 07:10:27PM +0200, Christoph Hellwig wrote:
> We won't have the struct block_device available in the bio soon, so switch
> to the numerical dev_t instead of the block_device pointer for looking up
> the check-integrity state.
Reviewed-by: Liu Bo
T
On Sat, Jul 15, 2017 at 06:35:05AM +0800, Ming Lei wrote:
> On Sat, Jul 15, 2017 at 4:54 AM, Liu Bo wrote:
> > On Fri, Jul 14, 2017 at 08:22:31AM -0600, Jens Axboe wrote:
> >> On 07/14/2017 07:47 AM, Ming Lei wrote:
> >> >> @@ -156,6 +156,9 @@ static inli
On Fri, Jul 14, 2017 at 08:22:31AM -0600, Jens Axboe wrote:
> On 07/14/2017 07:47 AM, Ming Lei wrote:
> >> @@ -156,6 +156,9 @@ static inline void *bio_data(struct bio *bio)
> >> /*
> >> * drivers should _never_ use the all version - the bio may have been
> >> split
> >> * before it got to the
iter(struct kiocb
> *iocb,
> inode_unlock(inode);
> return -EAGAIN;
> }
> - } else
> - inode_lock(inode);
> -
> - err = generic_write_checks(iocb, from);
> - if (err <= 0) {
> - inode_unlock(inode);
> - return err;
> }
>
> current->backing_dev_info = inode_to_bdi(inode);
Reviewed-by: Liu Bo
-liubo
vec() to retrieve the 1st bvec.
>
Looks good to me.
Reviewed-by: Liu Bo
-liubo
> Cc: Chris Mason
> Cc: Josef Bacik
> Cc: David Sterba
> Cc: linux-bt...@vger.kernel.org
> Cc: Liu Bo
> Signed-off-by: Ming Lei
> ---
> fs/btrfs/inode.c | 4 +++-
> 1 file changed, 3
On Tue, May 09, 2017 at 11:49:08AM -0400, Jeff Layton wrote:
> Nothing checks its return value.
Reviewed-by: Liu Bo
-liubo
>
> Signed-off-by: Jeff Layton
> ---
> fs/btrfs/disk-io.c | 6 +++---
> fs/btrfs/disk-io.h | 2 +-
> 2 files changed, 4 insertions(+), 4 deletions
On Thu, Feb 02, 2017 at 06:34:06PM +0100, Jan Kara wrote:
> Allocate struct backing_dev_info separately instead of embedding it
> inside superblock. This unifies handling of bdi among users.
Looks good.
Reviewed-by: Liu Bo
Thanks,
-liubo
>
> CC: Chris Mason
> CC: Josef Bac
On Fri, Feb 03, 2017 at 02:50:42PM +0100, Jan Kara wrote:
> On Thu 02-02-17 11:28:27, Liu Bo wrote:
> > Hi,
> >
> > On Thu, Feb 02, 2017 at 06:34:02PM +0100, Jan Kara wrote:
> > > Provide helper functions for setting up dynamically allocated
> > > backing_
Hi,
On Thu, Feb 02, 2017 at 06:34:02PM +0100, Jan Kara wrote:
> Provide helper functions for setting up dynamically allocated
> backing_dev_info structures for filesystems and cleaning them up on
> superblock destruction.
Just one concern, will this cause problems for multiple superblock cases
li
61 matches
Mail list logo